Re: [PATCH V3 5/5] PCI: pciehp: Clear stale 14-Bit Tag Requester Enable on hot add
From: Lukas Wunner
Date: Sat Aug 15 2026 - 03:24:22 EST
On Sat, Aug 15, 2026 at 01:46:21AM +0530, Vidya Sagar wrote:
> +++ b/drivers/pci/hotplug/pciehp_hpc.c
> @@ -302,6 +302,14 @@ int pciehp_check_link_status(struct controller *ctrl)
> if (ctrl->inband_presence_disabled)
> pcie_wait_for_presence(pdev);
>
> + /*
> + * The link is up, but a newly inserted card may have trained it in a
> + * different mode than the card that was removed left it in. Drop a
> + * now stale 14-Bit Tag Requester Enable on the Port before the first
> + * config read below, which the Port issues as the requester.
> + */
> + pci_bridge_refresh_14bit_tag(pdev);
> +
> found = pci_bus_check_dev(ctrl->pcie->port->subordinate,
> PCI_DEVFN(0, 0));
pciehp_check_link_status() should only do what its name implies,
i.e. return whether the link is up. It should not have side effects
like mutating register state.
I instead suggest clearing 10-Bit and 14-Bit enablement in
pciehp_unconfigure_device(), i.e. on removal.
Thanks,
Lukas