Page MenuHomeFreeBSD

Convert pci_delete_child() to a bus_child_deleted() method.
ClosedPublic

Authored by jhb on Apr 5 2016, 12:28 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Aug 18, 1:10 AM
Unknown Object (File)
Mon, Jul 29, 3:00 PM
Unknown Object (File)
May 11 2024, 11:29 AM
Unknown Object (File)
May 10 2024, 7:25 AM
Unknown Object (File)
May 10 2024, 1:30 AM
Unknown Object (File)
Dec 20 2023, 12:35 AM
Unknown Object (File)
Nov 22 2023, 12:41 PM
Unknown Object (File)
Oct 19 2023, 10:46 PM
Subscribers
None

Details

Summary

Convert pci_delete_child() to a bus_child_deleted() method.

Instead of providing a wrapper around device_delete_child() that the PCI
bus and child bus drivers must call explicitly, move the bulk of the logic
from pci_delete_child() into a bus_child_deleted() method
(pci_child_deleted()). This allows PCI devices to be safely deleted via
device_delete_child().

  • Add a bus_child_deleted method to the ACPI PCI bus which clears the device_t associated with the corresponding ACPI handle in addition to the normal PCI bus cleanup.
  • Change cardbus_detach_card to call device_delete_children() and move CardBus-specific delete logic into a new cardbus_child_deleted() method.
  • Use device_delete_child() instead of pci_delete_child() in the SRIOV code.
  • Add a bus_child_deleted method to the OpenFirmware PCI bus drivers which frees the OpenFirmware device info for each PCI device.

This is a stepping stone as part of the PCI-express hotplug patches.
Note that I have not booted powerpc or sparc64 and am still waiting for
a tinderbox build to complete to verify the ofw changes compile.

Test Plan
  • Tested booting on amd64 and tested insertion and removal of a cardbus adapter.
  • Tested hotplug insertion/removal with out-of-tree PCI-e hotplug patches which tested the ACPI PCI bus case.
  • Tested manual deletion of PCI devices via out-of-tree patches to add a 'devctl delete' command.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb retitled this revision from to Convert pci_delete_child() to a bus_child_deleted() method..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
jhb added reviewers: imp, nwhitehorn, marius.
imp edited edge metadata.

I like this

This revision is now accepted and ready to land.Apr 5 2016, 9:56 PM
This revision was automatically updated to reflect the committed changes.