Re: [PATCH, RFC] sysfs: only allow one scheduled removal callback per kobj

Tejun Heo
2009-03-11T07:20:41Z

Alex Chiang wrote:
> * Greg KH <gregkh@suse.de>:
>> On Tue, Mar 10, 2009 at 05:20:27PM -0600, Alex Chiang wrote:
>>> Hi Vegard, sysfs folks,
>>>
>>> Vegard was nice enough to test my PCI remove/rescan patches under
>>> kmemcheck. Maybe "torture" is a more appropriate term. ;)
>>>
>>> My patch series introduces a sysfs "remove" attribute for PCI
>>> devices, which will remove that device (and child devices).
>>>
>>> http://thread.gmane.org/gmane.linux.kernel.pci/3495
>>>
>>> Vegard decided that he wanted to do something like:
>>>
>>> # while true ; do echo 1 > /sys/bus/pci/devices/.../remove ; done
>>>
>>> which caused a nasty oops in my code. You can see the results of
>>> his testing in the thread I referenced above.
>>>
>>> After looking at my code for a bit, I decided that maybe it
>>> wasn't completely my fault. ;) See, I'm using device_schedule_callback()
>> why? Are you really in interrupt context here to need to do the remove
>> at a later time?
>
> What other interface can I use to remove objects from sysfs?

I haven't read your code yet but I seem to recall doing something
similar. Ah.. okay, this one didn't get in and I forgot about this.

http://thread.gmane.org/gmane.linux.kernel/582130

But, yeah, committing suicide is currently quite hariy. I tought SCSI
did it correctly with all the grab/release dances. Does SCSI have the
problem too?

Thanks.

--
tejun