]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
scsi: move scsi_scan() call out of scsi_get_blk_by_uuid()
authorDavid Lechner <dlechner@baylibre.com>
Thu, 26 Mar 2026 22:59:26 +0000 (17:59 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 8 Apr 2026 17:07:07 +0000 (11:07 -0600)
Move scsi_scan() call out of scsi_get_blk_by_uuid().

The only caller, env_scsi_get_part(), should be managing this call since
it may also want to use different ways to get the partition information
in the future.

Signed-off-by: David Lechner <dlechner@baylibre.com>
drivers/scsi/scsi-uclass.c
env/scsi.c
include/scsi.h

index e7870d7f831926a60b566bb3e6c007835db86756..39b4c7476d45ca15528325a0f35789488a5f7ba0 100644 (file)
@@ -29,15 +29,9 @@ int scsi_get_blk_by_uuid(const char *uuid,
                         struct blk_desc **blk_desc_ptr,
                         struct disk_partition *part_info_ptr)
 {
-       static int is_scsi_scanned;
        struct blk_desc *blk;
        int i, ret;
 
-       if (!is_scsi_scanned) {
-               scsi_scan(false /* no verbose */);
-               is_scsi_scanned = 1;
-       }
-
        for (i = 0; i < blk_find_max_devnum(UCLASS_SCSI) + 1; i++) {
                ret = blk_get_desc(UCLASS_SCSI, i, &blk);
                if (ret)
index f376f7318706106dce80d5ae90fa58a1bac17580..1787dcca92ab43ea321ad6c9d1f2e1a2c974284f 100644 (file)
@@ -33,8 +33,14 @@ static struct env_scsi_info env_part;
 
 static inline struct env_scsi_info *env_scsi_get_part(void)
 {
+       static bool is_scsi_scanned;
        struct env_scsi_info *ep = &env_part;
 
+       if (!is_scsi_scanned) {
+               scsi_scan(false /* no verbose */);
+               is_scsi_scanned = true;
+       }
+
        if (scsi_get_blk_by_uuid(CONFIG_ENV_SCSI_PART_UUID, &ep->blk, &ep->part))
                return NULL;
 
index c244120c28395006749adc17b5056d654f0c08c2..2520a8b8fe63640e76559f9670c22744d32a3a11 100644 (file)
@@ -356,6 +356,8 @@ int scsi_scan_dev(struct udevice *dev, bool verbose);
 /**
  * scsi_get_blk_by_uuid() - Provides SCSI partition information.
  *
+ * scsi_scan() must have been called before calling this function.
+ *
  * @uuid:              UUID of the partition for fetching its info
  * @blk_desc_ptr:      Provides the blk descriptor
  * @part_info_ptr:     Provides partition info