> On 21 Apr 2017, at 22.54, Dan Carpenter <[email protected]> wrote:
> 
> Reading from ADDR_EMPTY is out of bounds.  The current code generates a
> static checker warning because we check for out of bounds "lba" before
> we check for ADDR_EMPTY, so the second check is always false.  It looks
> like we intended ADDR_EMPTY to be a no-op without printing a warning.
> 
> Fixes: a4bd217b4326 ("lightnvm: physical block device (pblk) target")
> Signed-off-by: Dan Carpenter <[email protected]>
> 
> diff --git a/drivers/lightnvm/pblk-read.c b/drivers/lightnvm/pblk-read.c
> index c9daa33e8d9c..4a12f14d78c6 100644
> --- a/drivers/lightnvm/pblk-read.c
> +++ b/drivers/lightnvm/pblk-read.c
> @@ -410,15 +410,15 @@ static int read_rq_gc(struct pblk *pblk, struct nvm_rq 
> *rqd,
>       struct ppa_addr ppa;
>       int valid_secs = 0;
> 
> +     if (lba == ADDR_EMPTY)
> +             goto out;
> +
>       /* logic error: lba out-of-bounds */
>       if (lba >= pblk->rl.nr_secs) {
>               WARN(1, "pblk: read lba out of bounds\n");
>               goto out;
>       }
> 
> -     if (lba == ADDR_EMPTY)
> -             goto out;
> -
>       spin_lock(&pblk->trans_lock);
>       ppa = pblk_trans_map_get(pblk, lba);
>       spin_unlock(&pblk->trans_lock);

Thanks Dan.

Reviewed-by: Javier González <[email protected]>


Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to