Hi Dan,
On Tue, 2019-08-06 at 17:24 +0300, Dan Carpenter wrote:
> Hello Haim Dreyfuss,
>
> The patch 0c3d7282233c: "iwlwifi: Add support for SAR South Korea
> limitation" from Feb 27, 2019, leads to the following static checker
> warning:
>
> drivers/net/wireless/intel/iwlwifi/fw/acpi.c:166 iwl_acpi_get_mcc()
> warn: passing a valid pointer to 'PTR_ERR'
>
> drivers/net/wireless/intel/iwlwifi/fw/acpi.c
> 153 int iwl_acpi_get_mcc(struct device *dev, char *mcc)
> 154 {
> 155 union acpi_object *wifi_pkg, *data;
> 156 u32 mcc_val;
> 157 int ret, tbl_rev;
> 158
> 159 data = iwl_acpi_get_object(dev, ACPI_WRDD_METHOD);
> 160 if (IS_ERR(data))
> 161 return PTR_ERR(data);
> 162
> 163 wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data,
> ACPI_WRDD_WIFI_DATA_SIZE,
> 164 &tbl_rev);
> 165 if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
> ^^^^^^^^^^^^
> wifi_pkg is not a valid error code. Also it feels like it might be more
> future proof to blacklist rev 1 instead of whitelisting rev 0.
Yeah, this code is wrong. If wifi_pkg is valid but tbl_rev is != 0,
then we will return a valid pointer instead of an error. I'll fix
this.
But regarding blacklisting one, I think it's better as it is. We mean
that the only revision we support is 0, if we get 1 or higher, we
return -EINVAL, because we handle it. When we add support for other
revisions, we need to change it.
> 166 ret = PTR_ERR(wifi_pkg);
> 167 goto out_free;
> 168 }
Thanks for reporting!
(and yeah, I'll handle the other occurrences you mentioned too).
--
Cheers,
Luca.