[PATCH] Fix kfree usage in various mtd map remove functions

Phil Endecott spam_from_linux_mtd at chezphil.org
Mon May 21 13:09:46 EDT 2007


The other issue that I noticed was the use of release_resource() 
instead of release_mem_region().  I'm not at all sure what should be 
going on here, but as far as I can see from kernel/resource.c these 
functions are not equivalent, and the "Linux Device Drivers" book shows 
release_mem_region() used to reverse the effect of 
request_mem_region().  I think that release_resource() should be called 
when (for example) a hotpluggable device is unplugged and the resource 
goes away, whereas release_mem_region() should be called when a driver 
no longer needs use of that area of memory.  It's complex to understand 
the source because the same 'struct resource' is used to describe a 
physical resource and also a reservation/allocation of a portion of a 
physical resource to a driver.

I could submit a patch that replaces the release_resource() calls with 
release_mem_region(), but I would not be happy doing so unless someone 
with a bit more of a clue than me said it was the right thing to do.

Does anyone know of any documentation for any of these 'resource' functions?

See for example:
   drivers/mtd/maps/ixp4xx.c function int ixp4xx_flash_remove


Phil.








More information about the linux-mtd mailing list