Hi Kenji-san,
Thanks for doing this work.
I tested your patches, but found a problem with refcounting in
your 02/03, and the slot directories in sysfs remained, even
after rmmod of all drivers.
I decided that things are getting too complicated with all these
new interfaces, so I got rid of them and updated the
pci_create_slot API instead, to take a 'rename' parameter. That
way, creating a slot and overriding its name can become an atomic
operation.
That should make the race conditions go away, and the code is
much easier to understand as well.
This is a good patch by itself. I think you should submit it to
Jesse. I did not need it after reworking to my new design.
I had to stare at this patch for a long time to understand it,
and finally saw that you were changing the rename logic to detect
if we were trying to rename an existing slot.
Unfortunately, it had some problem with the refcounting, and in
this scenario:
- pci_slot loaded
- fakephp dup_slots=1 loaded
- pci_slot unloaded
The slots claimed by pci_slot (but _not_ by fakephp) were never
released.
By the time I got this far, I was already thinking about a
redesign, so I did not try and debug further...
Not needed, since I re-designed the approach.
Again, thank you very much for all the review and hard work, and
sorry for causing so much churn. :-/
I'll be sending out the new patch series shortly.
/ac
--