sed-opal: add helper to get multiple columns at once.
authorOndrej Kozina <okozina@redhat.com>
Wed, 5 Apr 2023 11:12:22 +0000 (13:12 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 5 Apr 2023 13:46:26 +0000 (07:46 -0600)
Refactors current code querying single column to use the
new helper. Real multi column usage will be added later.

Signed-off-by: Ondrej Kozina <okozina@redhat.com>
Tested-by: Luca Boccassi <bluca@debian.org>
Tested-by: Milan Broz <gmazyland@gmail.com>
Acked-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20230405111223.272816-5-okozina@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/sed-opal.c

index 38cc02b708ac7ba24f9f22a6f632e2da697b0f20..b95560d9c5eb432e2426dc67f854904422250e0b 100644 (file)
@@ -1149,12 +1149,8 @@ static int finalize_and_send(struct opal_dev *dev, cont_fn cont)
        return opal_send_recv(dev, cont);
 }
 
-/*
- * request @column from table @table on device @dev. On success, the column
- * data will be available in dev->resp->tok[4]
- */
-static int generic_get_column(struct opal_dev *dev, const u8 *table,
-                             u64 column)
+static int generic_get_columns(struct opal_dev *dev, const u8 *table,
+                              u64 start_column, u64 end_column)
 {
        int err;
 
@@ -1164,12 +1160,12 @@ static int generic_get_column(struct opal_dev *dev, const u8 *table,
 
        add_token_u8(&err, dev, OPAL_STARTNAME);
        add_token_u8(&err, dev, OPAL_STARTCOLUMN);
-       add_token_u64(&err, dev, column);
+       add_token_u64(&err, dev, start_column);
        add_token_u8(&err, dev, OPAL_ENDNAME);
 
        add_token_u8(&err, dev, OPAL_STARTNAME);
        add_token_u8(&err, dev, OPAL_ENDCOLUMN);
-       add_token_u64(&err, dev, column);
+       add_token_u64(&err, dev, end_column);
        add_token_u8(&err, dev, OPAL_ENDNAME);
 
        add_token_u8(&err, dev, OPAL_ENDLIST);
@@ -1180,6 +1176,16 @@ static int generic_get_column(struct opal_dev *dev, const u8 *table,
        return finalize_and_send(dev, parse_and_check_status);
 }
 
+/*
+ * request @column from table @table on device @dev. On success, the column
+ * data will be available in dev->resp->tok[4]
+ */
+static int generic_get_column(struct opal_dev *dev, const u8 *table,
+                             u64 column)
+{
+       return generic_get_columns(dev, table, column, column);
+}
+
 /*
  * see TCG SAS 5.3.2.3 for a description of the available columns
  *