Re: [PATCH] staging: r8188eu: Remove _enter/_exit_critical_mutex()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, August 19, 2021 8:30:21 AM CEST Greg Kroah-Hartman wrote:
> On Thu, Aug 19, 2021 at 08:08:37AM +0200, Fabio M. De Francesco wrote:
> > Remove _enter_critical_mutex() and _exit_critical_mutex(). They are
> > unnecessary wrappers, respectively to mutex_lock_interruptible and to
> > mutex_unlock(). They also have an odd interface that takes an unused
> > second parameter "unsigned long *pirqL".
> > 
> > Use directly the in-kernel API; check and manage the return value of
> > mutex_lock_interruptible().
> > 
> > Signed-off-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx>
> > ---
> >  drivers/staging/r8188eu/core/rtw_mlme_ext.c     |  5 +++--
> >  drivers/staging/r8188eu/hal/usb_ops_linux.c     |  7 +++++--
> >  drivers/staging/r8188eu/include/osdep_service.h | 13 -------------
> >  drivers/staging/r8188eu/os_dep/os_intfs.c       |  5 +++--
> >  4 files changed, 11 insertions(+), 19 deletions(-)
> > 
> > diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
> > index f6ee72d5af09..484083468ebb 100644
> > --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
> > +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
> > @@ -4358,7 +4358,8 @@ s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, struct xmit_frame *pmg
> >  	if (padapter->bSurpriseRemoved || padapter->bDriverStopped)
> >  		return -1;
> >  
> > -	_enter_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL);
> > +	if (mutex_lock_interruptible(&pxmitpriv->ack_tx_mutex))
> > +		return -EINTR;
> 
> But the code never would return this value if the lock function returned
> an error.  Why do that here now?

I read from the documentation that "[mutex_lock_interruptible()] Return: 0 if 
the lock was successfully acquired or -EINTR if a signal arrived.". 

After reading that, I thought that if I got -EINTR I should return it. Shouldn't I?

Now I've just checked its usage pattern in another file where we have exactly 12
times the same management of the error (the example I'm talking about is in
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c):

"if (mutex_lock_interruptible(&instance->vchiq_mutex))
                return -EINTR;".

Unless you mean that I should return the "ret" variable, which is already set to 
"_FAIL", I am really confused. Please, can you further elaborate what I'm doing 
wrong?

Thanks,

Fabio



 
  
> 
> thanks,
> 
> greg k-h
> 








[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux