Messages in this thread Patch in this message | | | Date | Wed, 23 Jan 2008 09:46:39 -0800 | From | Greg KH <> | Subject | Re: [RESEND][PATCH-2.6.24-rc8] Fix fakephp deadlock |
| |
On Tue, Jan 22, 2008 at 02:28:08PM +0000, Ian Abbott wrote: > #include <linux/init.h> > #include <linux/string.h> > #include <linux/slab.h> > +#include <linux/workqueue.h> > #include "../pci.h" > #if !defined(MODULE) > @@ -63,10 +64,13 @@ struct dummy_slot { > struct list_head node; > struct hotplug_slot *slot; > struct pci_dev *dev; > + struct work_struct remove_work; > + unsigned long removed;
You are treating "removed" as an atomic value, so why not just make it an atomic_t?
And what is protecting the fact that the flag could be set right after it gets checked? I don't see a lock here :)
thanks,
greg k-h
| |