TODO (7ae9fb1b7ecbb5d85d07857943f677fd1a559b18) | TODO (e6e9a9a455fd19f00250634bc0405e69396bd522) |
---|---|
1Contributions are solicited in particular to remedy the following issues: 2 3cpcihp: 4 5* There are no implementations of the ->hardware_test, ->get_power and 6 ->set_power callbacks in struct cpci_hp_controller_ops. Why were they 7 introduced? Can they be removed from the struct? 8 | 1Contributions are solicited in particular to remedy the following issues: 2 3cpcihp: 4 5* There are no implementations of the ->hardware_test, ->get_power and 6 ->set_power callbacks in struct cpci_hp_controller_ops. Why were they 7 introduced? Can they be removed from the struct? 8 |
9* Returned code from pci_hp_add_bridge() is not checked. 10 |
|
9cpqphp: 10 11* The driver spawns a kthread cpqhp_event_thread() which is woken by the 12 hardirq handler cpqhp_ctrl_intr(). Convert this to threaded IRQ handling. 13 The kthread is also woken from the timer pushbutton_helper_thread(), 14 convert it to call irq_wake_thread(). Use pciehp as a template. 15 16* A large portion of cpqphp_ctrl.c and cpqphp_pci.c concerns resource 17 management. Doesn't this duplicate functionality in the core? 18 | 11cpqphp: 12 13* The driver spawns a kthread cpqhp_event_thread() which is woken by the 14 hardirq handler cpqhp_ctrl_intr(). Convert this to threaded IRQ handling. 15 The kthread is also woken from the timer pushbutton_helper_thread(), 16 convert it to call irq_wake_thread(). Use pciehp as a template. 17 18* A large portion of cpqphp_ctrl.c and cpqphp_pci.c concerns resource 19 management. Doesn't this duplicate functionality in the core? 20 |
21* Returned code from pci_hp_add_bridge() is not checked. 22 |
|
19ibmphp: 20 21* Implementations of hotplug_slot_ops callbacks such as get_adapter_present() 22 in ibmphp_core.c create a copy of the struct slot on the stack, then perform 23 the actual operation on that copy. Determine if this overhead is necessary, 24 delete it if not. The functions also perform a NULL pointer check on the 25 struct hotplug_slot, this seems superfluous. 26 --- 11 unchanged lines hidden (view full) --- 38* The various slot data structures are difficult to follow and need to be 39 simplified. A lot of functions are too large and too complex, they need 40 to be broken up into smaller, manageable pieces. Negative examples are 41 ebda_rsrc_controller() and configure_bridge(). 42 43* A large portion of ibmphp_res.c and ibmphp_pci.c concerns resource 44 management. Doesn't this duplicate functionality in the core? 45 | 23ibmphp: 24 25* Implementations of hotplug_slot_ops callbacks such as get_adapter_present() 26 in ibmphp_core.c create a copy of the struct slot on the stack, then perform 27 the actual operation on that copy. Determine if this overhead is necessary, 28 delete it if not. The functions also perform a NULL pointer check on the 29 struct hotplug_slot, this seems superfluous. 30 --- 11 unchanged lines hidden (view full) --- 42* The various slot data structures are difficult to follow and need to be 43 simplified. A lot of functions are too large and too complex, they need 44 to be broken up into smaller, manageable pieces. Negative examples are 45 ebda_rsrc_controller() and configure_bridge(). 46 47* A large portion of ibmphp_res.c and ibmphp_pci.c concerns resource 48 management. Doesn't this duplicate functionality in the core? 49 |
50* Returned code from pci_hp_add_bridge() is not checked. 51 |
|
46sgi_hotplug: 47 48* Several functions access the pci_slot member in struct hotplug_slot even 49 though pci_hotplug.h declares it private. See sn_hp_destroy() for an 50 example. Either the pci_slot member should no longer be declared private 51 or sgi_hotplug should store a pointer to it in struct slot. Probably the 52 former. 53 54shpchp: 55 56* There is only a single implementation of struct hpc_ops. Can the struct be 57 removed and its functions invoked directly? This has already been done in 58 pciehp with commit 82a9e79ef132 ("PCI: pciehp: remove hpc_ops"). Clarify 59 if there was a specific reason not to apply the same change to shpchp. 60 61* The hardirq handler shpc_isr() queues events on a workqueue. It can be 62 simplified by converting it to threaded IRQ handling. Use pciehp as a 63 template. | 52sgi_hotplug: 53 54* Several functions access the pci_slot member in struct hotplug_slot even 55 though pci_hotplug.h declares it private. See sn_hp_destroy() for an 56 example. Either the pci_slot member should no longer be declared private 57 or sgi_hotplug should store a pointer to it in struct slot. Probably the 58 former. 59 60shpchp: 61 62* There is only a single implementation of struct hpc_ops. Can the struct be 63 removed and its functions invoked directly? This has already been done in 64 pciehp with commit 82a9e79ef132 ("PCI: pciehp: remove hpc_ops"). Clarify 65 if there was a specific reason not to apply the same change to shpchp. 66 67* The hardirq handler shpc_isr() queues events on a workqueue. It can be 68 simplified by converting it to threaded IRQ handling. Use pciehp as a 69 template. |