This series of patches aims at extending SED Opal support: 1. Generalizing write data to any opal table 2. Add an IOCTL for reading/writing any Opal Table with Admin-1 authority 3. Introduce Opal Datastore UID, which can be accessed using above ioctl Datastore feature described in: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_Feature_Set-Additional_DataStore_Tables_v1_00_r1_00_Final.pdf Opal Application Note: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Opal_SSC_Application_Note_1-00_1-00-Final.pdf This feature has been successfully tested on OPAL Datastore and MBR table using internal tools with an Intel SSD and an Intel Optane. Changes from v2: 1. Drop a patch which exposes UIDs in UAPI. 2. Fix coding styles wherever required based on LKML feedbacks. 3. Eliminate a few redundant assignments in the code. 4. Add a break under copy_from_user error condition in generic_table_write_data func. 5. A few refactoring/cleanups in both the patches. 6. Introduce a new patch which introduces Opal Datastore table UID. Changes from v1: 1. Fix the spelling mistake in the commit message. 2. Introduce a length check condition before Copy To User in opal_read_table function to facilitate user with easy debugging. 3. Introduce switch cases in the opal_generic_read_write_table ioctl function. 4. Move read/write table opal_step to discrete functions to reduce the load on the ioctl function. 5. Introduce 'opal table operations' enumeration in uapi. 6. Remove tabs before the #defines in opal_read_write_table structure to improve the code readability. 7. Drop a patch which exposes UIDs in UAPI. 8. Eliminate a few redundant assignments in the code. 9. Add a break under copy_from_user error condition in generic_table_write_data func. 10. A few refactoring/cleanups in both the patches 11. Introduce a new patch which introduces Opal Datastore table UID. Revanth Rajashekar (3): block: sed-opal: Generalizing write data to any opal table block: sed-opal: Add support to read/write opal tables generically block: sed-opal: Introduce Opal Datastore UID block/opal_proto.h | 2 +- block/sed-opal.c | 312 +++++++++++++++++++++++++++------- include/linux/sed-opal.h | 1 + include/uapi/linux/sed-opal.h | 20 +++ 4 files changed, 270 insertions(+), 65 deletions(-) -- 2.17.1