]> www.infradead.org Git - users/hch/misc.git/commit
cdrom: Avoid barrier_nospec() in cdrom_ioctl_media_changed()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Thu, 17 Oct 2024 22:09:02 +0000 (15:09 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 18 Oct 2024 01:47:15 +0000 (19:47 -0600)
commitb0bf1afde7c34698cf61422fa8ee60e690dc25c3
treedaf137964c811abb93b2a981a03309c6155a824a
parentde7007e9e6fe08dc7b45693d7e8cef41f9499854
cdrom: Avoid barrier_nospec() in cdrom_ioctl_media_changed()

The barrier_nospec() after the array bounds check is overkill and
painfully slow for arches which implement it.

Furthermore, most arches don't implement it, so they remain exposed to
Spectre v1 (which can affect pretty much any CPU with branch
prediction).

Instead, clamp the user pointer to a valid range so it's guaranteed to
be a valid array index even when the bounds check mispredicts.

Fixes: 8270cb10c068 ("cdrom: Fix spectre-v1 gadget")
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/1d86f4d9d8fba68e5ca64cdeac2451b95a8bf872.1729202937.git.jpoimboe@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/cdrom/cdrom.c