]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
HID: intel-ish-hid: avoid bogus uninitialized-variable warning
authorArnd Bergmann <arnd@arndb.de>
Tue, 28 Apr 2020 21:53:29 +0000 (23:53 +0200)
committerKhalid Elmously <khalid.elmously@canonical.com>
Sat, 8 Aug 2020 05:53:12 +0000 (01:53 -0400)
BugLink: https://bugs.launchpad.net/bugs/1885322
[ Upstream commit 0b66fb3e6b7a53688f8e20945ac78cd3d832c65f ]

Older compilers like gcc-4.8 don't see that the variable is
initialized when it is used:

In file included from include/linux/compiler_types.h:68:0,
                 from <command-line>:0:
drivers/hid/intel-ish-hid/ishtp-fw-loader.c: In function 'load_fw_from_host':
include/linux/compiler-gcc.h:75:45: warning: 'fw_info.ldr_capability.max_dma_buf_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
 #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
                                             ^
drivers/hid/intel-ish-hid/ishtp-fw-loader.c:770:22: note: 'fw_info.ldr_capability.max_dma_buf_size' was declared here
  struct shim_fw_info fw_info;
                      ^

Make sure to initialize it before returning an error from ish_query_loader_prop().

Fixes: 91b228107da3 ("HID: intel-ish-hid: ISH firmware loader client driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
drivers/hid/intel-ish-hid/ishtp-fw-loader.c

index aa2dbed30fc36aef68c81a7d16b355034f0a677d..6cf59fd26ad784356923115c3c28054a344990b0 100644 (file)
@@ -480,6 +480,7 @@ static int ish_query_loader_prop(struct ishtp_cl_data *client_data,
                            sizeof(ldr_xfer_query_resp));
        if (rv < 0) {
                client_data->flag_retry = true;
+               *fw_info = (struct shim_fw_info){};
                return rv;
        }
 
@@ -489,6 +490,7 @@ static int ish_query_loader_prop(struct ishtp_cl_data *client_data,
                        "data size %d is not equal to size of loader_xfer_query_response %zu\n",
                        rv, sizeof(struct loader_xfer_query_response));
                client_data->flag_retry = true;
+               *fw_info = (struct shim_fw_info){};
                return -EMSGSIZE;
        }