]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
misc: fs_loader: Fix alignment of fs_loader driver
authorSean Anderson <seanga2@gmail.com>
Sat, 30 Sep 2023 20:45:46 +0000 (16:45 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 11 Oct 2023 17:22:32 +0000 (13:22 -0400)
DM_DRIVER_GET will redeclare the fs_loader driver without the correct
alignment. This causes GCC to use the default section alignment of 32
bytes. This in turn creates a gap in the linker list due to the padding
required to achieve the correct alignment, corrupting all further entries.
Use DM_DRIVER_REF instead, which doesn't redeclare anything.

Fixes: 0998a20cfc6 ("misc: fs_loader: Add function to get the chosen loader")
Signed-off-by: Sean Anderson <seanga2@gmail.com>
drivers/misc/fs_loader.c

index ccf5c7a803714b0947774500afb18957ce67f66b..1ffc199ba1e4939b737feb83f3208d00b6339bfc 100644 (file)
@@ -316,7 +316,7 @@ int get_fs_loader(struct udevice **dev)
                return ret;
 
        /* Just create a new device */
-       ret = device_bind(dm_root(), DM_DRIVER_GET(fs_loader), "default-loader",
+       ret = device_bind(dm_root(), DM_DRIVER_REF(fs_loader), "default-loader",
                          &default_plat, ofnode_null(), dev);
        if (ret)
                return ret;