Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1305e918 authored by Adrian Bunk's avatar Adrian Bunk Committed by Greg Kroah-Hartman
Browse files

[PATCH] PCI: cpqphp_ctrl.c: board_replaced(): remove dead code



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.

This patch removes the unreachable code in this function fixing kernel
Bugzilla #6073.

Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0cccd0c2
Loading
Loading
Loading
Loading
+14 −62
Original line number Diff line number Diff line
@@ -1282,9 +1282,7 @@ static u32 board_replaced(struct pci_func *func, struct controller *ctrl)
	u8 hp_slot;
	u8 temp_byte;
	u8 adapter_speed;
	u32 index;
	u32 rc = 0;
	u32 src = 8;

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

@@ -1368,7 +1366,6 @@ static u32 board_replaced(struct pci_func *func, struct controller *ctrl)

			rc = cpqhp_configure_board(ctrl, func);

			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
@@ -1392,52 +1389,7 @@ static u32 board_replaced(struct pci_func *func, struct controller *ctrl)
				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. */

				mutex_lock(&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);

				mutex_unlock(&ctrl->crit_sect);

				return rc;
			}
			/* Done configuring so turn LED on full time */

			mutex_lock(&ctrl->crit_sect);

			green_LED_on (ctrl, hp_slot);

			set_SOGO(ctrl);

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

			mutex_unlock(&ctrl->crit_sect);
			rc = 0;
		} else {
			/* Something is wrong