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

Commit 1d2e8b1c authored by Alex Chiang's avatar Alex Chiang Committed by Jesse Barnes
Browse files

PCI Hotplug: cpqphp: refactor cpqhp_save_config



Handle an empty slot at the top of the loop, and continue early.

This allows us to un-indent the rest of the function by one level.

Signed-off-by: default avatarAlex Chiang <achiang@hp.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 4aabb58e
Loading
Loading
Loading
Loading
+91 −91
Original line number Diff line number Diff line
@@ -361,7 +361,25 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)
		ID = 0xFFFFFFFF;
		rc = pci_bus_read_config_dword(ctrl->pci_bus, PCI_DEVFN(device, 0), PCI_VENDOR_ID, &ID);

		if (ID != 0xFFFFFFFF) {	  /* device in slot */
		if (ID == 0xFFFFFFFF) {
			if (is_hot_plug) {
				/* Setup slot structure with entry for empty
				 * slot
				 */
				new_slot = cpqhp_slot_create(busnumber);
				if (new_slot == NULL)
					return 1;

				new_slot->bus = (u8) busnumber;
				new_slot->device = (u8) device;
				new_slot->function = 0;
				new_slot->is_a_board = 0;
				new_slot->presence_save = 0;
				new_slot->switch_save = 0;
			}
			continue;
		}

		rc = pci_bus_read_config_byte(ctrl->pci_bus, PCI_DEVFN(device, 0), 0x0B, &class_code);
		if (rc)
			return rc;
@@ -409,9 +427,8 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)
			if (!new_slot) {
				/* Setup slot structure. */
				new_slot = cpqhp_slot_create(busnumber);

				if (new_slot == NULL)
						return(1);
					return 1;
			}

			new_slot->bus = (u8) busnumber;
@@ -436,12 +453,12 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)
			/* this loop skips to the next present function
			 * reading in Class Code and Header type.
			 */

			while ((function < max_functions) && (!stop_it)) {
				rc = pci_bus_read_config_dword(ctrl->pci_bus, PCI_DEVFN(device, function), PCI_VENDOR_ID, &ID);
					if (ID == 0xFFFFFFFF) {	 /* nothing there. */
				if (ID == 0xFFFFFFFF) {
					function++;
					} else {  /* Something there */
					continue;
				}
				rc = pci_bus_read_config_byte(ctrl->pci_bus, PCI_DEVFN(device, function), 0x0B, &class_code);
				if (rc)
					return rc;
@@ -452,28 +469,11 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)

				stop_it++;
			}
				}

		} while (function < max_functions);
		}		/* End of IF (device in slot?) */
		else if (is_hot_plug) {
			/* Setup slot structure with entry for empty slot */
			new_slot = cpqhp_slot_create(busnumber);

			if (new_slot == NULL) {
				return(1);
			}

			new_slot->bus = (u8) busnumber;
			new_slot->device = (u8) device;
			new_slot->function = 0;
			new_slot->is_a_board = 0;
			new_slot->presence_save = 0;
			new_slot->switch_save = 0;
		}
	}			/* End of FOR loop */

	return(0);
	return 0;
}