mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 09:02:06 +00:00
sparc: _sparc_find_resource() should check for exact matches
The address that's passed to _sparc_find_resource() should always be the start address of a resource: - iounmap() passes a page-aligned virtual address, while the original address was created by adding the in-page offset to the resource's start address, - sbus_free_coherent() and pci32_free_coherent() should be passed an address obtained from sbus_alloc_coherent() resp. pci32_alloc_coherent(), which is always a resource's start address. Hence replace the range check by a check for an exact match. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1dad6c7bd7
commit
88efd0bbc0
1 changed files with 2 additions and 2 deletions
|
@ -723,12 +723,12 @@ static const struct file_operations sparc_io_proc_fops = {
|
||||||
* This probably warrants some sort of hashing.
|
* This probably warrants some sort of hashing.
|
||||||
*/
|
*/
|
||||||
static struct resource *_sparc_find_resource(struct resource *root,
|
static struct resource *_sparc_find_resource(struct resource *root,
|
||||||
unsigned long hit)
|
unsigned long start)
|
||||||
{
|
{
|
||||||
struct resource *tmp;
|
struct resource *tmp;
|
||||||
|
|
||||||
for (tmp = root->child; tmp != 0; tmp = tmp->sibling) {
|
for (tmp = root->child; tmp != 0; tmp = tmp->sibling) {
|
||||||
if (tmp->start <= hit && tmp->end >= hit)
|
if (tmp->start == start)
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue