| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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.
|