diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig index dda5ad5b3673684984dd82e24a4ef8860a8e4ce8..7f7bedccc67cabcbd66d0b49f4a3af687d585525 100644 --- a/arch/arm64/configs/openeuler_defconfig +++ b/arch/arm64/configs/openeuler_defconfig @@ -2162,7 +2162,7 @@ CONFIG_FW_UPLOAD=y # end of Firmware loader # fwctl -CONFIG_FWCTL=y +CONFIG_FWCTL=m CONFIG_WANT_DEV_COREDUMP=y # CONFIG_ALLOW_DEV_COREDUMP is not set diff --git a/arch/x86/configs/openeuler_defconfig b/arch/x86/configs/openeuler_defconfig index 7d030d2d7717c936302f9ac7b3652124ff3fd7d3..8fe90aaf11ed8928a4bd379d8f2ae4f30077dde9 100644 --- a/arch/x86/configs/openeuler_defconfig +++ b/arch/x86/configs/openeuler_defconfig @@ -2160,7 +2160,7 @@ CONFIG_FW_UPLOAD=y # end of Firmware loader # fwctl -CONFIG_FWCTL=y +CONFIG_FWCTL=m CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y diff --git a/drivers/fwctl/ub/main.c b/drivers/fwctl/ub/main.c index e96ccf5afa556f263011d429caa6e3f3563dd9b6..6b1f619dc0a46a6243f819b2043d68a2d7d22aaa 100644 --- a/drivers/fwctl/ub/main.c +++ b/drivers/fwctl/ub/main.c @@ -147,6 +147,11 @@ static void *ubctl_fw_rpc(struct fwctl_uctx *uctx, enum fwctl_rpc_scope scope, ubctl_dbg(ucdev, "cmdif: opcode 0x%x retval %d\n", opcode, ret); + if (ret) { + kvfree(rpc_out); + return ERR_PTR(ret); + } + return rpc_out; }