mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00
lib: utils: Fix fdt_mpxy_init() not returning error code
It seems that current implementation doesn't fail on fdt_mpxy_init(), because platforms might not have any MPXY devices. In fact, if there are no MPXY devices, fdt_driver_init_all() will return SBI_OK. More importantly, if there is any MPXY device which fails the initialization, OpenSBI must check the error code and stop the booting. Thus, this commit adds the return value for fdt_mpxy_init(). Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/20250430091007.3768180-1-alvinga@andestech.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -15,11 +15,11 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_FDT_MPXY
|
#ifdef CONFIG_FDT_MPXY
|
||||||
|
|
||||||
void fdt_mpxy_init(const void *fdt);
|
int fdt_mpxy_init(const void *fdt);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static inline void fdt_mpxy_init(const void *fdt) { }
|
static inline int fdt_mpxy_init(const void *fdt) { return 0; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -12,11 +12,7 @@
|
|||||||
/* List of FDT MPXY drivers generated at compile time */
|
/* List of FDT MPXY drivers generated at compile time */
|
||||||
extern const struct fdt_driver *const fdt_mpxy_drivers[];
|
extern const struct fdt_driver *const fdt_mpxy_drivers[];
|
||||||
|
|
||||||
void fdt_mpxy_init(const void *fdt)
|
int fdt_mpxy_init(const void *fdt)
|
||||||
{
|
{
|
||||||
/*
|
return fdt_driver_init_all(fdt, fdt_mpxy_drivers);
|
||||||
* Platforms might have multiple MPXY devices or might not
|
|
||||||
* have any MPXY devices so don't fail.
|
|
||||||
*/
|
|
||||||
fdt_driver_init_all(fdt, fdt_mpxy_drivers);
|
|
||||||
}
|
}
|
||||||
|
@@ -324,8 +324,7 @@ int generic_mpxy_init(void)
|
|||||||
{
|
{
|
||||||
const void *fdt = fdt_get_address();
|
const void *fdt = fdt_get_address();
|
||||||
|
|
||||||
fdt_mpxy_init(fdt);
|
return fdt_mpxy_init(fdt);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sbi_platform_operations generic_platform_ops = {
|
struct sbi_platform_operations generic_platform_ops = {
|
||||||
|
Reference in New Issue
Block a user