All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: rtl8188eu: Remove an unused variable and some lines of code
Date: Fri, 2 Jul 2021 15:42:25 +0300	[thread overview]
Message-ID: <20210702124225.GW2040@kadam> (raw)
In-Reply-To: <2153683.Tj7f0gbxMR@linux.local>

On Fri, Jul 02, 2021 at 02:14:45PM +0200, Fabio M. De Francesco wrote:
> On Friday, July 2, 2021 10:35:21 AM CEST Dan Carpenter wrote:
> > On Fri, Jul 02, 2021 at 10:48:40AM +0300, Dan Carpenter wrote:
> > > On Thu, Jul 01, 2021 at 04:47:07PM +0200, Fabio M. De Francesco wrote:
> > > > Remove set but unused iw_operation_mode[]. Remove all the lines of
> > > > code from the function rtw_wx_set_rate, except the "return 0;" line
> > > > to not break userland code that somewhat uses this IOCTL.
> > > > 
> > > > Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> > > > [...]
> > > 
> 
> Dear Dan,
> 
> > > Just delete this whole file.  It doesn't do anything now.
> > 
> > Sorry, I meant function, not file.  *chortle*.  :P
> 
> No worries, it is clear it was unintended.
> 
> Back to the function... As you may suspect :-) I know practically nothing 
> neither of Linux device drivers or of whatever else kernel, so I take your 
> words for good. ASAP, I'll send a v2 of this patch.
> 
> However, I usually like to understand what I make (just for fun and... more).
> 
> That rtw_wx_set_rate() is the implementation of the SIOCSIWRATE IOCTL command. 
> I hope that I have not misunderstood it, have I? 

Correct.

> 
> However, we know that this function does practically nothing and then simply 
> returns 0 to the user. That's exactly the reason why I deleted all its lines 
> (except one). 

It used to do nothing in a much more complicated way before commit
1aef69ecacda ("staging: rtl8188eu: Remove function rtw_setdatarate_cmd()")

> 
> If I am a user of that command I get a "success" return code (0) and I don't  
> notice that it won't be able to set the bit rate. However everything should 
> still keep running (I suppose using the default bit rate of the hardware; who 
> really knows?). 

It will still do nothing but now instead of returning success it will
return -ENOTSUPP.  This is done in wireless_process_ioctl().

> 
> Now it's time for two questions: 
> 
> 1) what happens if that command is used by some users that (hopelessly) expect 
> the function to set the bit rate? I mean: if the function is not anymore in 
> the list of the IOCTL commands of the rtw_handlers array will still the user 
> program compile, link, and don't crash at runtime? 
> 

Userspace programs are supposed to be written so that they work with
every wifi driver, so they should be able to handle -ENOTSUPP.  If this
breaks a userspace application then we will have to change it back.  But
returning -ENOTSUPP is the correct behavior, so let's first try to do
the correct thing and then think about working around bugs in userspace
if we find them.

> 2) how should I delete the association of SIOCSIWRATE with rtw_wx_set_rate() 
> in the rtw_handlers array?
> 	- delete the entry and shift the array one position up?
> 	- set the SIOCSIWRATE entry to NULL?

The IW_HANDLER() macro puts the function in the correct position in the
array.  So just delete it.  Everything else will remain unchanged.

regards,
dan carpenter

  reply	other threads:[~2021-07-02 12:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-01 14:47 [PATCH] staging: rtl8188eu: Remove an unused variable and some lines of code Fabio M. De Francesco
2021-07-02  7:48 ` Dan Carpenter
2021-07-02  8:35   ` Dan Carpenter
2021-07-02 12:14     ` Fabio M. De Francesco
2021-07-02 12:42       ` Dan Carpenter [this message]
2021-07-02 12:46         ` Dan Carpenter

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=20210702124225.GW2040@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=fmdefrancesco@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    /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.