RE: [Intel-wired-lan] [PATCH net v2] ice: Fix incorrect locking in ice_vc_process_vf_msg()

From: Jankowski, Konrad0
Date: Tue Apr 12 2022 - 07:54:38 EST




> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf Of
> Tony Nguyen
> Sent: Friday, April 8, 2022 6:01 PM
> To: Lobakin, Alexandr <alexandr.lobakin@xxxxxxxxx>
> Cc: ivecera <ivecera@xxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; mschmidt
> <mschmidt@xxxxxxxxxx>; Brett Creeley <brett@xxxxxxxxxxx>; open list
> <linux-kernel@xxxxxxxxxxxxxxx>; poros <poros@xxxxxxxxxx>; moderated
> list:INTEL ETHERNET DRIVERS <intel-wired-lan@xxxxxxxxxxxxxxxx>; Jakub
> Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; David S.
> Miller <davem@xxxxxxxxxxxxx>
> Subject: Re: [Intel-wired-lan] [PATCH net v2] ice: Fix incorrect locking in
> ice_vc_process_vf_msg()
>
>
> On 4/8/2022 6:47 AM, Alexander Lobakin wrote:
> > From: Ivan Vecera <ivecera@xxxxxxxxxx>
> > Date: Fri, 1 Apr 2022 12:40:52 +0200
> >
> >> Usage of mutex_trylock() in ice_vc_process_vf_msg() is incorrect
> >> because message sent from VF is ignored and never processed.
> >>
> >> Use mutex_lock() instead to fix the issue. It is safe because this
> >> mutex is used to prevent races between VF related NDOs and handlers
> >> processing request messages from VF and these handlers are running in
> >> ice_service_task() context. Additionally move this mutex lock prior
> >> ice_vc_is_opcode_allowed() call to avoid potential races during
> >> allowlist acccess.
> >>
> >> Fixes: e6ba5273d4ed ("ice: Fix race conditions between virtchnl
> >> handling and VF ndo ops")
> >> Signed-off-by: Ivan Vecera <ivecera@xxxxxxxxxx>
> > Hey Tony,
> >
> > I guess you missed this one due to being on a vacation previously.
> > It's been previously reviewed IIRC, could you take it into net-queue?
>
> I remember applying this but I don't see it on the tree so I must be mistaken.
> :( I'll get it applied, thanks for catching.
>
> -Tony
>
> >> ---
> >> drivers/net/ethernet/intel/ice/ice_virtchnl.c | 21 +++++++------------
> >> 1 file changed, 7 insertions(+), 14 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl.c
> >> b/drivers/net/ethernet/intel/ice/ice_virtchnl.c
> >> index 3f1a63815bac..a465f3743ffc 100644
> >> --- a/drivers/net/ethernet/intel/ice/ice_virtchnl.c
> >> +++ b/drivers/net/ethernet/intel/ice/ice_virtchnl.c
> >> @@ -3642,14 +3642,6 @@ void ice_vc_process_vf_msg(struct ice_pf *pf,

Tested-by: Konrad Jankowski <konrad0.jankowski@xxxxxxxxx>