Re: drivers/pci/hotplug/cpqphp_ctrl.c: board_replaced: dead code

From: Rolf Eike Beer
Date: Fri Mar 25 2005 - 06:34:02 EST


Adrian Bunk wrote:
> The Coverity checker correctly noted, that in function board_replaced in
> drivers/pci/hotplug/cpqphp_ctrl.c, the variable src always has the
> value 8, and therefore much code after the
>
> ...
> if (rc || src) {
> ...
> if (rc)
> return rc;
> else
> return 1;
> }
> ...
>
>
> can never be called.

Yes, this is the only use of src in the whole function. If this is not a bug
than this patch removes all the dead code.

Eike

Signed-off-by: Rolf Eike Beer <eike-hotplug@xxxxxxxxx>

--- linux-2.6.11/drivers/pci/hotplug/cpqphp_ctrl.c 2005-03-02 08:37:55.000000000 +0100
+++ linux-2.6.12-rc1/drivers/pci/hotplug/cpqphp_ctrl.c 2005-03-24 19:01:23.000000000 +0100
@@ -1284,7 +1284,6 @@ static u32 board_replaced(struct pci_fun
u8 adapter_speed;
u32 index;
u32 rc = 0;
- u32 src = 8;

hp_slot = func->device - ctrl->slot_device_offset;

@@ -1367,98 +1366,25 @@ static u32 board_replaced(struct pci_fun
/* It must be the same board */

rc = cpqhp_configure_board(ctrl, func);
+ }
+ /* If configuration fails, turn it off
+ * Get slot won't work for devices behind
+ * bridges, but in this case it will always be
+ * called for the "base" bus/dev/func of an
+ * adapter. */

- if (rc || src) {
- /* If configuration fails, turn it off
- * Get slot won't work for devices behind
- * bridges, but in this case it will always be
- * called for the "base" bus/dev/func of an
- * adapter. */
-
- down(&ctrl->crit_sect);
-
- amber_LED_on (ctrl, hp_slot);
- green_LED_off (ctrl, hp_slot);
- slot_disable (ctrl, hp_slot);
-
- set_SOGO(ctrl);
-
- /* Wait for SOBS to be unset */
- wait_for_ctrl_irq (ctrl);
-
- up(&ctrl->crit_sect);
-
- if (rc)
- return rc;
- else
- return 1;
- }
-
- func->status = 0;
- func->switch_save = 0x10;
-
- index = 1;
- while (((func = cpqhp_slot_find(func->bus, func->device, index)) != NULL) && !rc) {
- rc |= cpqhp_configure_board(ctrl, func);
- index++;
- }
-
- if (rc) {
- /* If configuration fails, turn it off
- * Get slot won't work for devices behind
- * bridges, but in this case it will always be
- * called for the "base" bus/dev/func of an
- * adapter. */
-
- down(&ctrl->crit_sect);
-
- amber_LED_on (ctrl, hp_slot);
- green_LED_off (ctrl, hp_slot);
- slot_disable (ctrl, hp_slot);
-
- set_SOGO(ctrl);
-
- /* Wait for SOBS to be unset */
- wait_for_ctrl_irq (ctrl);
-
- up(&ctrl->crit_sect);
-
- return rc;
- }
- /* Done configuring so turn LED on full time */
-
- down(&ctrl->crit_sect);
-
- green_LED_on (ctrl, hp_slot);
-
- set_SOGO(ctrl);
-
- /* Wait for SOBS to be unset */
- wait_for_ctrl_irq (ctrl);
-
- up(&ctrl->crit_sect);
- rc = 0;
- } else {
- /* Something is wrong
-
- * Get slot won't work for devices behind bridges, but
- * in this case it will always be called for the "base"
- * bus/dev/func of an adapter. */
-
- down(&ctrl->crit_sect);
-
- amber_LED_on (ctrl, hp_slot);
- green_LED_off (ctrl, hp_slot);
- slot_disable (ctrl, hp_slot);
+ down(&ctrl->crit_sect);

- set_SOGO(ctrl);
+ amber_LED_on(ctrl, hp_slot);
+ green_LED_off(ctrl, hp_slot);
+ slot_disable(ctrl, hp_slot);

- /* Wait for SOBS to be unset */
- wait_for_ctrl_irq (ctrl);
+ set_SOGO(ctrl);

- up(&ctrl->crit_sect);
- }
+ /* Wait for SOBS to be unset */
+ wait_for_ctrl_irq(ctrl);

+ up(&ctrl->crit_sect);
}
return rc;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/