[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20190805.111405.1284530866900143643.davem@davemloft.net>
Date: Mon, 05 Aug 2019 11:14:05 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: cai@....pw
Cc: saeedm@...lanox.com, tariqt@...lanox.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] net/mlx5e: always initialize frag->last_in_page
From: Qian Cai <cai@....pw>
Date: Thu, 1 Aug 2019 09:52:54 -0400
> The commit 069d11465a80 ("net/mlx5e: RX, Enhance legacy Receive Queue
> memory scheme") introduced an undefined behaviour below due to
> "frag->last_in_page" is only initialized in mlx5e_init_frags_partition()
> when,
>
> if (next_frag.offset + frag_info[f].frag_stride > PAGE_SIZE)
>
> or after bailed out the loop,
>
> for (i = 0; i < mlx5_wq_cyc_get_size(&rq->wqe.wq); i++)
>
> As the result, there could be some "frag" have uninitialized
> value of "last_in_page".
>
> Later, get_frag() obtains those "frag" and check "frag->last_in_page" in
> mlx5e_put_rx_frag() and triggers the error during boot. Fix it by always
> initializing "frag->last_in_page" to "false" in
> mlx5e_init_frags_partition().
...
> Fixes: 069d11465a80 ("net/mlx5e: RX, Enhance legacy Receive Queue memory scheme")
> Signed-off-by: Qian Cai <cai@....pw>
Applied and queued up for -stable.
Powered by blists - more mailing lists