Re: [PATCH] net: check the return value of ioremap() in mhz_mfc_config()

From: Jakub Kicinski
Date: Wed Aug 03 2022 - 22:29:51 EST


On Tue, 2 Aug 2022 15:28:26 +0800 studentxswpy@xxxxxxx wrote:
> From: Xie Shaowen <studentxswpy@xxxxxxx>
>
> The function ioremap() in mhz_mfc_config() can fail, so
> its return value should be checked.
>
> Fixes: cdb138080b781 ("pcmcia: do not use win_req_t when calling pcmcia_request_window()")

The check seems fine, but that's not the commit which added the
ioremap() without checking the result. You need to find the fix
commit in the git history where the bug exists, not just run
git blame on the line in question.

> Reported-by: Hacash Robot <hacashRobot@xxxxxxxxxxx>
> Signed-off-by: Xie Shaowen <studentxswpy@xxxxxxx>
> ---
> drivers/net/ethernet/smsc/smc91c92_cs.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/smsc/smc91c92_cs.c b/drivers/net/ethernet/smsc/smc91c92_cs.c
> index 37c822e27207..14333f5bdcdc 100644
> --- a/drivers/net/ethernet/smsc/smc91c92_cs.c
> +++ b/drivers/net/ethernet/smsc/smc91c92_cs.c
> @@ -446,6 +446,8 @@ static int mhz_mfc_config(struct pcmcia_device *link)
>
> smc->base = ioremap(link->resource[2]->start,
> resource_size(link->resource[2]));
> + if (!smc->base)
> + return -ENOMEM;
> offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0;
> i = pcmcia_map_mem_page(link, link->resource[2], offset);
> if ((i == 0) &&