* [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write()
@ 2026-07-06 17:54 Krzysztof Wilczyński
2026-07-08 10:56 ` Magnus Lindholm
2026-07-10 20:32 ` Bjorn Helgaas
0 siblings, 2 replies; 3+ messages in thread
From: Krzysztof Wilczyński @ 2026-07-06 17:54 UTC (permalink / raw)
To: Richard Henderson
Cc: Magnus Lindholm, Matt Turner, Ivan Kokshaysky, Jesse Barnes,
Bjorn Helgaas, Bjorn Helgaas, linux-alpha, linux-pci,
linux-kernel
pci_legacy_write() in arch/alpha/kernel/pci-sysfs.c passes its arguments
to outb(), outw() and outl() in the wrong order:
outb(port, val);
The Alpha I/O accessors in arch/alpha/include/asm/io.h take the value
first and the port second:
extern void outb(u8 b, unsigned long port);
So the port number is written as data to the I/O address taken from the
user-supplied value, and the intended write to the requested port never
happens.
The arguments have been reversed since the file was added, and the
function returns the access size regardless, so the caller sees success
while the requested port is left untouched.
Fixes: 10a0ef39fbd1 ("PCI/alpha: pci sysfs resources")
Tested-by: Magnus Lindholm <linmag7@gmail.com>
Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
---
Changes in v2:
https://lore.kernel.org/linux-pci/20260612232400.585195-1-kwilczynski@kernel.org/
- Collected Reviewed-by and Tested-by tags from Magnus Lindholm.
arch/alpha/kernel/pci-sysfs.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c
index 94dbc470cd6c..7050f0f7fe3d 100644
--- a/arch/alpha/kernel/pci-sysfs.c
+++ b/arch/alpha/kernel/pci-sysfs.c
@@ -224,17 +224,17 @@ int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t size)
switch(size) {
case 1:
- outb(port, val);
+ outb(val, port);
return 1;
case 2:
if (port & 1)
return -EINVAL;
- outw(port, val);
+ outw(val, port);
return 2;
case 4:
if (port & 3)
return -EINVAL;
- outl(port, val);
+ outl(val, port);
return 4;
}
return -EINVAL;
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write()
2026-07-06 17:54 [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write() Krzysztof Wilczyński
@ 2026-07-08 10:56 ` Magnus Lindholm
2026-07-10 20:32 ` Bjorn Helgaas
1 sibling, 0 replies; 3+ messages in thread
From: Magnus Lindholm @ 2026-07-08 10:56 UTC (permalink / raw)
To: Krzysztof Wilczyński
Cc: Richard Henderson, Matt Turner, Ivan Kokshaysky, Jesse Barnes,
Bjorn Helgaas, Bjorn Helgaas, linux-alpha, linux-pci,
linux-kernel
On Mon, Jul 6, 2026 at 7:54 PM Krzysztof Wilczyński
<kwilczynski@kernel.org> wrote:
>
> pci_legacy_write() in arch/alpha/kernel/pci-sysfs.c passes its arguments
> to outb(), outw() and outl() in the wrong order:
>
> outb(port, val);
>
> The Alpha I/O accessors in arch/alpha/include/asm/io.h take the value
> first and the port second:
>
> extern void outb(u8 b, unsigned long port);
>
> So the port number is written as data to the I/O address taken from the
> user-supplied value, and the intended write to the requested port never
> happens.
>
> The arguments have been reversed since the file was added, and the
> function returns the access size regardless, so the caller sees success
> while the requested port is left untouched.
>
> Fixes: 10a0ef39fbd1 ("PCI/alpha: pci sysfs resources")
> Tested-by: Magnus Lindholm <linmag7@gmail.com>
> Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
> Cc: stable@vger.kernel.org
> Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
> ---
> Changes in v2:
> https://lore.kernel.org/linux-pci/20260612232400.585195-1-kwilczynski@kernel.org/
>
> - Collected Reviewed-by and Tested-by tags from Magnus Lindholm.
>
> arch/alpha/kernel/pci-sysfs.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c
> index 94dbc470cd6c..7050f0f7fe3d 100644
> --- a/arch/alpha/kernel/pci-sysfs.c
> +++ b/arch/alpha/kernel/pci-sysfs.c
> @@ -224,17 +224,17 @@ int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t size)
>
> switch(size) {
> case 1:
> - outb(port, val);
> + outb(val, port);
> return 1;
> case 2:
> if (port & 1)
> return -EINVAL;
> - outw(port, val);
> + outw(val, port);
> return 2;
> case 4:
> if (port & 3)
> return -EINVAL;
> - outl(port, val);
> + outl(val, port);
> return 4;
> }
> return -EINVAL;
> --
> 2.55.0
>
Thanks for doing this, this is just me acking the v2 version of this patch,
please go ahead and take this through your tree.
Acked-by: Magnus Lindholm <linmag7@gmail.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write()
2026-07-06 17:54 [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write() Krzysztof Wilczyński
2026-07-08 10:56 ` Magnus Lindholm
@ 2026-07-10 20:32 ` Bjorn Helgaas
1 sibling, 0 replies; 3+ messages in thread
From: Bjorn Helgaas @ 2026-07-10 20:32 UTC (permalink / raw)
To: Krzysztof Wilczyński
Cc: Richard Henderson, Magnus Lindholm, Matt Turner, Ivan Kokshaysky,
Jesse Barnes, Bjorn Helgaas, linux-alpha, linux-pci, linux-kernel
On Mon, Jul 06, 2026 at 05:54:23PM +0000, Krzysztof Wilczyński wrote:
> pci_legacy_write() in arch/alpha/kernel/pci-sysfs.c passes its arguments
> to outb(), outw() and outl() in the wrong order:
>
> outb(port, val);
>
> The Alpha I/O accessors in arch/alpha/include/asm/io.h take the value
> first and the port second:
>
> extern void outb(u8 b, unsigned long port);
>
> So the port number is written as data to the I/O address taken from the
> user-supplied value, and the intended write to the requested port never
> happens.
>
> The arguments have been reversed since the file was added, and the
> function returns the access size regardless, so the caller sees success
> while the requested port is left untouched.
>
> Fixes: 10a0ef39fbd1 ("PCI/alpha: pci sysfs resources")
> Tested-by: Magnus Lindholm <linmag7@gmail.com>
> Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
> Cc: stable@vger.kernel.org
> Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Applied to pci/sysfs for v7.3, thank you!
> ---
> Changes in v2:
> https://lore.kernel.org/linux-pci/20260612232400.585195-1-kwilczynski@kernel.org/
>
> - Collected Reviewed-by and Tested-by tags from Magnus Lindholm.
>
> arch/alpha/kernel/pci-sysfs.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c
> index 94dbc470cd6c..7050f0f7fe3d 100644
> --- a/arch/alpha/kernel/pci-sysfs.c
> +++ b/arch/alpha/kernel/pci-sysfs.c
> @@ -224,17 +224,17 @@ int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t size)
>
> switch(size) {
> case 1:
> - outb(port, val);
> + outb(val, port);
> return 1;
> case 2:
> if (port & 1)
> return -EINVAL;
> - outw(port, val);
> + outw(val, port);
> return 2;
> case 4:
> if (port & 3)
> return -EINVAL;
> - outl(port, val);
> + outl(val, port);
> return 4;
> }
> return -EINVAL;
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-10 20:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 17:54 [PATCH v2] alpha/PCI: Fix I/O port accessor argument order in pci_legacy_write() Krzysztof Wilczyński
2026-07-08 10:56 ` Magnus Lindholm
2026-07-10 20:32 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox