On Thursday, April 18, 2013 3:37 AM, Ian Abbott wrote:
> On 2013-04-17 19:16, H Hartley Sweeten wrote:
>> This function is intended to be used by the comedi legacy (ISA) drivers
>> either directly as the (*detach) function or as a helper in the drivers
>> private (*detach) function.
>>
>> Modify the __comedi_request_region() helper so that it stores the first
>> struct resource returned by request_region() in the comedi_device.
>>
>> The comedi_legacy_detach() function will then automatically release the
>> region during the detach of the driver.
>>
>> Signed-off-by: H Hartley Sweeten <[email protected]>
>> Cc: Ian Abbott <[email protected]>
>> Cc: Greg Kroah-Hartman <[email protected]>

<snip>

> An alternative implementation would be to leave 
> __comedi_request_region() alone, but change comedi_request_region() to 
> record the length in a new member dev->iolen at the same time that it 
> records the start address in dev->iobase.  Then your 
> comedi_legacy_detach() could do something like:
>
>       if (dev->iolen) {
>               release_region(dev->iobase, dev->iolen);
>               dev->iolen = 0;
>       }
>
> I think it seems slightly simpler and shouldn't affect your other 
> patches.  Any thoughts?

I feel its cleaner to save the actual resource that was allocated by
request_resource(), it's less error prone.

But, I could change __comedi_request_region() so it returns the
allocated resource instead of an errno. Then comedi_request_resource()
can save it in the comedi_device. Any drivers that request additional
resources could so the same and use the saved resource when detaching.
Also, comedi_request_resource() could (should?) sanity check the
saved resource to make sure a driver does not call it multiple times.

I can either modify this series to work that way or submit a patch
after this.

Regards,
Hartley
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to