On Fri, 2008-10-31 at 10:05 -0600, Matthew Wilcox wrote: > On Fri, Oct 31, 2008 at 05:41:00PM +1100, Michael Ellerman wrote: > > On Fri, 2008-10-31 at 14:48 +1100, Vincent Rizza wrote: > > > Michael raised the issue of dev->stop() calling pci_disable_msi() > > > on ifconfig down. The rtnl_lock eliminates that problem. > > > > I did, but that's only one example of something that can call > > pci_disable_msi(). It needs to be robust against anything that might > > call it, eg. a hotplug disk controller or something. > > > > So I think using list_for_each_entry_safe() is the right option, using > > rtnl_lock() definitely isn't. > > Um, list_for_each_entry_safe() is only safe against _you_ deleting > entries, not against _other people_ deleting entries. You'd want to > switch over to RCU for this. Duh, right. For some reason I thought it did the RCU fu for you, though obviously that makes no sense. And the doco didn't set me straight: "iterate over list of given type safe against removal of list entry". Sorry for the bum steer Vincent. cheers -- Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person
Attachment:
signature.asc
Description: This is a digitally signed message part