[PATCH v2 00/16] block: sed-opal: support shadow MBR done flag and write

From: David Kozub
Date: Thu Jan 17 2019 - 16:32:41 EST

This patch series extends OPAL support: it adds IOCTL for setting the shadow
MBR done flag which can be useful for unlocking an OPAL disk on boot and it adds
IOCTL for writing to the shadow MBR. Also included are some minor fixes and

This series is based on the original work done by Jonas Rabenstein which was
submitted in March 2018.[1] I tried to apply suggestions made in review on the
list and do some further improvements.

The most contentious issue in the original series was the IOCTL for shadow MBR
write but I think no better approach was found[2] so this was not changed. I'm
open to suggestions.

There is a fork of sed-opal-temp that can use these new IOCTLs.[3] I tested
these on Samsung 840 EVO and 850 EVO drives, on x86-64 and arm64 systems.

The series applies on v5.0-rc2.

I'm resending this as v2 because I sent the first attempt incorrectly. I
apologize for the noise.

[1] https://lore.kernel.org/lkml/cover.1521482295.git.jonas.rabenstein@xxxxxxxxxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/lkml/20180405203443.ye4gnw5aey2exlkn@sbauer-Z170X-UD5/
[3] https://github.com/ghostav/sed-opal-temp

David Kozub (8):
block: sed-opal: fix typos and formatting
block: sed-opal: close parameter list in cmd_finalize
block: sed-opal: unify cmd start
block: sed-opal: unify error handling of responses
block: sed-opal: reuse response_get_token to decrease code duplication
block: sed-opal: pass steps via argument rather than via opal_dev
block: sed-opal: don't repeat opal_discovery0 in each steps array
block: sed-opal: rename next to execute_steps

Jonas Rabenstein (8):
block: sed-opal: use correct macro for method length
block: sed-opal: unify space check in add_token_*
block: sed-opal: print failed function address
block: sed-opal: split generation of bytestring header and content
block: sed-opal: add ioctl for done-mark of shadow mbr
block: sed-opal: ioctl for writing to shadow mbr
block: sed-opal: unify retrieval of table columns
block: sed-opal: check size of shadow mbr

block/opal_proto.h | 18 +
block/sed-opal.c | 843 +++++++++++++++++-----------------
include/linux/sed-opal.h | 2 +
include/uapi/linux/sed-opal.h | 9 +
4 files changed, 449 insertions(+), 423 deletions(-)