All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
	Phillip Potter <phil@philpotter.co.uk>,
	Martin Kaiser <martin@kaiser.cx>,
	Michael Straube <straube.linux@gmail.com>,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: r8188eu: Remove _enter/_exit_critical_mutex()
Date: Thu, 19 Aug 2021 12:16:03 +0200	[thread overview]
Message-ID: <2072985.qfodHclbUl@localhost.localdomain> (raw)
In-Reply-To: <4394431.3q0Da8apZE@localhost.localdomain>

On Thursday, August 19, 2021 9:07:20 AM CEST Fabio M. De Francesco wrote:
> 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@gmail.com>
> > > ---
> > >  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?

Ah, now I think I understand what you asked me ... sorry for not having 
immediately grasped the meaning of your objection. :(

I guess you wanted to know why I decided to check and handle the 
return values of mutex_lock_interruptible (), as the original code didn't. 
Did I understand the correct meaning of your question?

If so, now I can explain why I did it ...

A few months ago I did the conversion of the visorhba (Unisys) driver from 
IDR to XArray. Since the old code did not check IDR API return values, I had 
decided not to check for XArray API return values as well.

Then Dan C. asked me to implement the checks that were missing in the 
original code. So, today I decided to implement them before I was asked 
to do it. Now it's clear that in this case they are not needed.

That's all. :-)

I'm about to send a v2 without those unnecessary checks.

Thanks,

Fabio

> 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




  reply	other threads:[~2021-08-19 10:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-19  6:08 [PATCH] staging: r8188eu: Remove _enter/_exit_critical_mutex() Fabio M. De Francesco
2021-08-19  6:30 ` Greg Kroah-Hartman
2021-08-19  7:07   ` Fabio M. De Francesco
2021-08-19 10:16     ` Fabio M. De Francesco [this message]
2021-08-19 14:51       ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2072985.qfodHclbUl@localhost.localdomain \
    --to=fmdefrancesco@gmail.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=martin@kaiser.cx \
    --cc=phil@philpotter.co.uk \
    --cc=straube.linux@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.