No description
Find a file
Damien Le Moal 5ea81a2bb6 scsi: sd: Fix TCG OPAL unlock on system resume
commit 0c76106cb9 upstream.

Commit 3cc2ffe5c1 ("scsi: sd: Differentiate system and runtime start/stop
management") introduced the manage_system_start_stop scsi_device flag to
allow libata to indicate to the SCSI disk driver that nothing should be
done when resuming a disk on system resume. This change turned the
execution of sd_resume() into a no-op for ATA devices on system
resume. While this solved deadlock issues during device resume, this change
also wrongly removed the execution of opal_unlock_from_suspend().  As a
result, devices with TCG OPAL locking enabled remain locked and
inaccessible after a system resume from sleep.

To fix this issue, introduce the SCSI driver resume method and implement it
with the sd_resume() function calling opal_unlock_from_suspend(). The
former sd_resume() function is renamed to sd_resume_common() and modified
to call the new sd_resume() function. For non-ATA devices, this result in
no functional changes.

In order for libata to explicitly execute sd_resume() when a device is
resumed during system restart, the function scsi_resume_device() is
introduced. libata calls this function from the revalidation work executed
on devie resume, a state that is indicated with the new device flag
ATA_DFLAG_RESUMING. Doing so, locked TCG OPAL enabled devices are unlocked
on resume, allowing normal operation.

Fixes: 3cc2ffe5c1 ("scsi: sd: Differentiate system and runtime start/stop management")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218538
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20240319071209.1179257-1-dlemoal@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-03 15:32:45 +02:00
arch hexagon: vmlinux.lds.S: handle attributes section 2024-04-03 15:32:39 +02:00
block block: Do not force full zone append completion in req_bio_endio() 2024-04-03 15:32:40 +02:00
certs
crypto Revert "crypto: pkcs7 - remove sha1 support" 2024-04-03 15:32:31 +02:00
Documentation x86/Kconfig: Remove CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT 2024-04-03 15:32:32 +02:00
drivers scsi: sd: Fix TCG OPAL unlock on system resume 2024-04-03 15:32:45 +02:00
fs btrfs: fix extent map leak in unexpected scenario at unpin_extent_cache() 2024-04-03 15:32:44 +02:00
include scsi: sd: Fix TCG OPAL unlock on system resume 2024-04-03 15:32:45 +02:00
init init: open /initrd.image with O_LARGEFILE 2024-04-03 15:32:37 +02:00
io_uring io_uring/waitid: always remove waitid entry for cancel all 2024-04-03 15:32:24 +02:00
ipc
kernel ring-buffer: Make wake once of ring_buffer_wait() more robust 2024-04-03 15:32:44 +02:00
lib pci_iounmap(): Fix MMIO mapping leak 2024-04-03 15:32:02 +02:00
LICENSES
mm mm: cachestat: fix two shmem bugs 2024-04-03 15:32:39 +02:00
net Bluetooth: hci_sync: Fix not checking error on hci_cmd_sync_cancel_sync 2024-04-03 15:32:43 +02:00
rust Rust changes for v6.8 2024-01-11 13:05:41 -08:00
samples work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
scripts kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1 2024-04-03 15:32:18 +02:00
security lsm: handle the NULL buffer case in lsm_fill_user_ctx() 2024-04-03 15:32:22 +02:00
sound ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs 2024-04-03 15:32:44 +02:00
tools selftests/mm: fix ARM related issue with fork after pthread_create 2024-04-03 15:32:40 +02:00
usr Kbuild updates for v6.8 2024-01-18 17:57:07 -08:00
virt KVM: Always flush async #PF workqueue when vCPU is being destroyed 2024-04-03 15:32:03 +02:00
.clang-format
.cocciconfig
.editorconfig Add .editorconfig file for basic formatting 2023-12-28 16:22:47 +09:00
.get_maintainer.ignore
.gitattributes
.gitignore Add .editorconfig file for basic formatting 2023-12-28 16:22:47 +09:00
.mailmap drm fixes for 6.8 final 2024-03-08 12:44:56 -08:00
.rustfmt.toml
COPYING
CREDITS MAINTAINERS: supplement of zswap maintainers update 2024-01-25 23:52:21 -08:00
Kbuild
Kconfig
MAINTAINERS drm fixes for 6.8 final 2024-03-08 12:44:56 -08:00
Makefile Linux 6.8.2 2024-03-26 18:23:34 -04:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.