Commit e2378e61 authored by David Laight's avatar David Laight Committed by Bjorn Helgaas
Browse files

PCI: Use max() instead of max_t() to ease static analysis



In this code:

  used_buses = max_t(unsigned int, available_buses,
                     pci_hotplug_bus_size - 1);

max_t() casts the 'unsigned long' pci_hotplug_bus_size (either 32 or 64
bits) to 'unsigned int' (32 bits) result type, so there's a potential of
discarding significant bits.

Instead, use max(a, b), which casts 'unsigned int' to 'unsigned long' and
cannot discard significant bits.

In this case, pci_hotplug_bus_size is constrained to <= 0xff by pci_setup()
so this doesn't fix a bug, but it makes static analysis easier.

Signed-off-by: default avatarDavid Laight <david.laight.linux@gmail.com>
[bhelgaas: commit log]
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20251119224140.8616-26-david.laight.linux@gmail.com
parent 3a866087
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -3170,8 +3170,7 @@ static unsigned int pci_scan_child_bus_extend(struct pci_bus *bus,
	 * bus number if there is room.
	 */
	if (bus->self && bus->self->is_hotplug_bridge) {
		used_buses = max_t(unsigned int, available_buses,
				   pci_hotplug_bus_size - 1);
		used_buses = max(available_buses, pci_hotplug_bus_size - 1);
		if (max - start < used_buses) {
			max = start + used_buses;