52 lines · 2.0 KB · Text
RawDownload
Contributions are solicited in particular to remedy the following issues: cpcihp: * Returned code from pci_hp_add_bridge() is not checked. cpqphp: * The driver spawns a kthread cpqhp_event_thread() which is woken by the  hardirq handler cpqhp_ctrl_intr().  Convert this to threaded IRQ handling.  The kthread is also woken from the timer pushbutton_helper_thread(),  convert it to call irq_wake_thread().  Use pciehp as a template. * A large portion of cpqphp_ctrl.c and cpqphp_pci.c concerns resource  management.  Doesn't this duplicate functionality in the core? * Returned code from pci_hp_add_bridge() is not checked. ibmphp: * Implementations of hotplug_slot_ops callbacks such as get_adapter_present()  in ibmphp_core.c create a copy of the struct slot on the stack, then perform  the actual operation on that copy.  Determine if this overhead is necessary,  delete it if not.  The functions also perform a NULL pointer check on the  struct hotplug_slot, this seems superfluous. * Several functions access the pci_slot member in struct hotplug_slot even  though pci_hotplug.h declares it private.  See get_max_bus_speed() for an  example.  Either the pci_slot member should no longer be declared private  or ibmphp should store a pointer to its bus in struct slot.  Probably the  former. * ibmphp_init_devno() takes a struct slot **, it could instead take a  struct slot *. * The return value of pci_hp_register() is not checked. * The various slot data structures are difficult to follow and need to be  simplified.  A lot of functions are too large and too complex, they need  to be broken up into smaller, manageable pieces.  Negative examples are  ebda_rsrc_controller() and configure_bridge(). * A large portion of ibmphp_res.c and ibmphp_pci.c concerns resource  management.  Doesn't this duplicate functionality in the core? * Returned code from pci_hp_add_bridge() is not checked. shpchp: * The hardirq handler shpc_isr() queues events on a workqueue.  It can be  simplified by converting it to threaded IRQ handling.  Use pciehp as a  template.