From: sashiko-bot@kernel.org
To: "Juergen Gross" <jgross@suse.com>
Cc: linux-ide@vger.kernel.org, dlemoal@kernel.org, cassel@kernel.org
Subject: Re: [PATCH 20/32] drivers/ata: Stop using 32-bit MSR interfaces
Date: Mon, 29 Jun 2026 06:23:57 +0000 [thread overview]
Message-ID: <20260629062359.61A821F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260629060526.3638272-21-jgross@suse.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Critical] The change to `wrmsrq()` in `cs5535_set_piomode` introduces a critical sign-extension bug, writing `0xFFFFFFFF` to the upper 32 bits of the MSR.
- [Low] The commit message is incomplete and truncated mid-sentence.
--
commit 9a4c6821b4ef60316ec2b36e0f505f4148809966
Author: Juergen Gross <jgross@suse.com>
drivers/ata: Stop using 32-bit MSR interfaces
The 32-bit MSR interfaces rdmsr() and wrmsr() are planned to be removed.
This patch switches the pata_cs5535 and pata_cs5536 drivers to use the
64-bit variants instead.
> In drivers/ata/pata_cs5536.c don't redefine rdmsr() and wrmsr() as
> empty macros for avoiding misuse, but guard the affected code via
[Severity: Low]
This isn't a bug, but the commit message appears to be truncated mid-sentence.
> diff --git a/drivers/ata/pata_cs5535.c b/drivers/ata/pata_cs5535.c
> index d793fc441b467..da98390cc49e8 100644
> --- a/drivers/ata/pata_cs5535.c
> +++ b/drivers/ata/pata_cs5535.c
> @@ -102,16 +102,16 @@ static void cs5535_set_piomode(struct ata_port *ap, struct ata_device *adev)
> cmdmode = min(mode, pairmode);
> /* Write the other drive timing register if it changed */
> if (cmdmode < pairmode)
> - wrmsr(ATAC_CH0D0_PIO + 2 * pair->devno,
> - pio_cmd_timings[cmdmode] << 16 | pio_timings[pairmode], 0);
> + wrmsrq(ATAC_CH0D0_PIO + 2 * pair->devno,
> + pio_cmd_timings[cmdmode] << 16 | pio_timings[pairmode]);
> }
> /* Write the drive timing register */
> - wrmsr(ATAC_CH0D0_PIO + 2 * adev->devno,
> - pio_cmd_timings[cmdmode] << 16 | pio_timings[mode], 0);
> + wrmsrq(ATAC_CH0D0_PIO + 2 * adev->devno,
> + pio_cmd_timings[cmdmode] << 16 | pio_timings[mode]);
[Severity: Critical]
Will these wrmsrq() calls write 0xFFFFFFFF into the upper 32 bits of the
MSR for PIO mode 0?
Because pio_cmd_timings contains u16 values, C integer promotion rules will
promote pio_cmd_timings[cmdmode] to a signed 32-bit int before the shift.
For PIO mode 0 (0xF7F4), the shift results in a negative 32-bit integer
(0xF7F40000).
Since wrmsrq() takes a u64 parameter, this negative 32-bit int is implicitly
sign-extended to 64 bits (0xFFFFFFFFF7F4XXXX). This corrupts the upper
32 bits of the timing registers, which could trigger a General Protection
Fault.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260629060526.3638272-1-jgross@suse.com?part=20
next prev parent reply other threads:[~2026-06-29 6:23 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 6:04 [PATCH 00/32] x86/msr: Drop 32-bit MSR interfaces Juergen Gross
2026-06-29 6:04 ` Juergen Gross
2026-06-29 6:04 ` [PATCH 01/32] thermal/intel: Stop using " Juergen Gross
2026-07-02 9:31 ` Ingo Molnar
2026-07-02 11:18 ` Jürgen Groß
2026-07-03 11:22 ` [PATCH v2 " Juergen Gross
2026-07-06 12:47 ` Rafael J. Wysocki (Intel)
2026-06-29 6:04 ` [PATCH 02/32] powercap: " Juergen Gross
2026-06-29 11:25 ` Ingo Molnar
2026-06-29 11:33 ` Jürgen Groß
2026-06-29 12:31 ` Ingo Molnar
2026-06-29 12:52 ` Jürgen Groß
2026-07-06 12:48 ` Rafael J. Wysocki (Intel)
2026-06-29 6:04 ` [PATCH 03/32] edac: " Juergen Gross
2026-06-30 1:50 ` Zhuo, Qiuxu
2026-07-02 10:15 ` [tip: x86/msr] EDAC: " tip-bot2 for Juergen Gross
2026-06-29 6:04 ` [PATCH 04/32] acpi: " Juergen Gross
2026-06-30 12:30 ` Rafael J. Wysocki (Intel)
2026-06-30 12:42 ` Jürgen Groß
2026-07-02 9:17 ` Ingo Molnar
2026-07-02 11:33 ` Rafael J. Wysocki (Intel)
2026-07-04 8:26 ` Ingo Molnar
2026-07-06 12:50 ` Rafael J. Wysocki (Intel)
2026-06-29 6:04 ` [PATCH 05/32] x86/mtrr: " Juergen Gross
2026-06-29 11:33 ` Ingo Molnar
2026-06-29 11:41 ` Jürgen Groß
2026-06-29 12:27 ` Ingo Molnar
2026-06-29 13:04 ` Jürgen Groß
2026-07-02 9:15 ` Ingo Molnar
2026-07-03 11:23 ` [PATCH v2 " Juergen Gross
2026-06-29 6:04 ` [PATCH 06/32] x86/msr: Stop using 32-bit MSR interfaces in lib/msr-smp.c Juergen Gross
2026-07-02 10:16 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:04 ` [PATCH 07/32] x86/msr: Remove wrmsr_safe() Juergen Gross
2026-06-29 6:04 ` [PATCH 08/32] x86/mce: Stop using 32-bit MSR interfaces Juergen Gross
2026-07-02 10:16 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-07-03 10:55 ` [PATCH] x86/mce: Fix build warning after MSR-interface switch Juergen Gross
2026-06-29 6:05 ` [PATCH 09/32] KVM/x86: Stop using 32-bit MSR interfaces Juergen Gross
2026-06-29 6:05 ` [PATCH 10/32] x86/hygon: " Juergen Gross
2026-07-02 10:16 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 11/32] x86/pci: " Juergen Gross
2026-06-29 6:19 ` sashiko-bot
2026-07-02 10:16 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-07-02 10:25 ` sashiko-bot
2026-06-29 6:05 ` [PATCH 12/32] x86/amd: " Juergen Gross
2026-07-02 10:16 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 13/32] x86/featctl: " Juergen Gross
2026-07-02 9:39 ` Ingo Molnar
2026-07-02 11:19 ` Jürgen Groß
2026-07-03 11:24 ` [PATCH v2 " Juergen Gross
2026-06-29 6:05 ` [PATCH 14/32] x86/tsc: " Juergen Gross
2026-07-02 10:15 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 15/32] x86/msr: Remove rdmsr_safe() Juergen Gross
2026-06-29 6:05 ` [PATCH 16/32] cpufreq: Stop using 32-bit MSR interfaces Juergen Gross
2026-06-29 14:55 ` Zhongqiu Han
2026-06-30 6:38 ` Juergen Gross
2026-07-03 11:24 ` [PATCH v2 " Juergen Gross
2026-07-05 4:51 ` Zhongqiu Han
2026-06-29 6:05 ` [PATCH 17/32] x86/resctrl: " Juergen Gross
2026-07-01 16:49 ` Reinette Chatre
2026-07-02 10:15 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 18/32] x86/apic: " Juergen Gross
2026-07-02 10:15 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 19/32] x86/cpu: " Juergen Gross
2026-07-02 10:15 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-07-03 21:48 ` Borislav Petkov
2026-07-06 8:30 ` Juergen Gross
2026-07-06 14:26 ` Borislav Petkov
2026-07-06 14:39 ` Jürgen Groß
2026-06-29 6:05 ` [PATCH 20/32] drivers/ata: " Juergen Gross
2026-06-29 6:23 ` sashiko-bot [this message]
2026-06-29 7:28 ` Jürgen Groß
2026-07-03 11:25 ` [PATCH v2 " Juergen Gross
2026-06-29 6:05 ` [PATCH 21/32] agp/nvidia: " Juergen Gross
2026-06-29 6:25 ` sashiko-bot
2026-06-29 6:05 ` [PATCH 22/32] fbdev/geode: " Juergen Gross
2026-06-29 6:05 ` [PATCH 23/32] hw_random/via-rng: " Juergen Gross
2026-06-29 6:05 ` [PATCH 24/32] drivers/gpio: " Juergen Gross
2026-06-29 10:33 ` Bartosz Golaszewski
2026-07-01 8:13 ` Linus Walleij
2026-07-01 8:32 ` Juergen Gross
2026-06-29 6:05 ` [PATCH 25/32] drivers/misc: " Juergen Gross
2026-06-29 6:05 ` [PATCH 26/32] x86/msr: Remove wrmsr() Juergen Gross
2026-06-29 6:05 ` [PATCH 27/32] x86/hyperv: Stop using 32-bit MSR interfaces Juergen Gross
2026-07-03 9:39 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 28/32] x86/olpc: " Juergen Gross
2026-07-03 9:39 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 29/32] hwmon: " Juergen Gross
2026-06-29 6:25 ` sashiko-bot
2026-06-29 15:05 ` Guenter Roeck
2026-07-03 9:39 ` [tip: x86/msr] " tip-bot2 for Juergen Gross
2026-06-29 6:05 ` [PATCH 30/32] x86/msr: Remove rdmsr() Juergen Gross
2026-06-29 6:05 ` [PATCH 31/32] treewide: convert rdmsrq() from a macro to an inline function Juergen Gross
2026-06-29 6:05 ` Juergen Gross
2026-06-29 6:24 ` sashiko-bot
2026-06-29 6:05 ` [PATCH 32/32] x86/msr: Simplify some rdmsrq() use cases Juergen Gross
2026-06-29 6:52 ` [PATCH 00/32] x86/msr: Drop 32-bit MSR interfaces Arnd Bergmann
2026-06-29 6:52 ` Arnd Bergmann
2026-06-29 7:01 ` Jürgen Groß
2026-06-29 7:01 ` Jürgen Groß
2026-06-29 8:06 ` Arnd Bergmann
2026-06-29 8:06 ` Arnd Bergmann
2026-06-29 8:15 ` Jürgen Groß
2026-06-29 8:15 ` Jürgen Groß
2026-06-29 8:30 ` Jan Beulich
2026-06-29 8:38 ` Arnd Bergmann
2026-06-29 8:38 ` Arnd Bergmann
2026-06-30 20:06 ` H. Peter Anvin
2026-06-30 20:06 ` H. Peter Anvin
2026-06-29 11:19 ` Ingo Molnar
2026-06-29 11:19 ` Ingo Molnar
2026-06-30 18:59 ` Sean Christopherson
2026-06-30 18:59 ` Sean Christopherson
2026-07-01 8:33 ` Jürgen Groß
2026-07-01 8:33 ` Jürgen Groß
2026-07-02 10:07 ` Ingo Molnar
2026-07-02 10:07 ` Ingo Molnar
2026-07-02 11:03 ` Juergen Gross
2026-07-02 11:03 ` Juergen Gross
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260629062359.61A821F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=cassel@kernel.org \
--cc=dlemoal@kernel.org \
--cc=jgross@suse.com \
--cc=linux-ide@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.