mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 05:04:02 +02:00
PCI: Fix 32-bit config write in Intel PCH Root Port MPC ACS quirk
pci_quirk_enable_intel_rp_mpc_acs() reads a 32-bit DWORD from the MPC
register, sets bit 26 (INTEL_MPC_REG_IRBNCE), but it writes it back using
pci_write_config_word().
Because bit 26 resides in the upper 16 bits of the 32-bit register, a
16-bit write drops the newly set bit. The quirk logs that it is enabling
IRBNCE, but the hardware never actually receives the command.
Use pci_write_config_dword() to ensure the full 32-bit value is written
back to the hardware.
Fixes: d99321b63b ("PCI: Enable quirks for PCIe ACS on Intel PCH root ports")
Signed-off-by: Mohamad Raizudeen <raizudeen.kerneldev@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260723171203.4892-1-raizudeen.kerneldev@gmail.com
This commit is contained in:
parent
062fb7f816
commit
23d7eed597
|
|
@ -5361,7 +5361,7 @@ static void pci_quirk_enable_intel_rp_mpc_acs(struct pci_dev *dev)
|
|||
if (!(mpc & INTEL_MPC_REG_IRBNCE)) {
|
||||
pci_info(dev, "Enabling MPC IRBNCE\n");
|
||||
mpc |= INTEL_MPC_REG_IRBNCE;
|
||||
pci_write_config_word(dev, INTEL_MPC_REG, mpc);
|
||||
pci_write_config_dword(dev, INTEL_MPC_REG, mpc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user