lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y06g2llpa5S/025M@debian-BULLSEYE-live-builder-AMD64>
Date:   Tue, 18 Oct 2022 18:19:30 +0530
From:   Deepak R Varma <drv@...lo.com>
To:     Julia Lawall <julia.lawall@...ia.fr>
Cc:     outreachy@...ts.linux.dev, gregkh@...uxfoundation.org,
        linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org,
        kumarpraveen@...ux.microsoft.com, saurabh.truth@...il.com
Subject: Re: [PATCH v2] staging: most: dim2: read done_buffers count locally
 from HDM channel

On Tue, Oct 18, 2022 at 09:39:08AM +0200, Julia Lawall wrote:
>
>
> On Tue, 18 Oct 2022, Deepak R Varma wrote:
>
> > The done_buffer count is already available in the hdm_channel struct.
> > Calling dim_get_channel_state function to source this value out of
> > the same structure is unnecessary.
> > Further, the second parameter struct dim_ch_state_t to this function
> > is filled by using the hdm_channel inside the function. This filled in
> > variable is never used in the caller and can be altogether removed.
> > So, a call to dim_get_channel_state function in this context also
> > deems expensive.
>
> Thanks for the rewrite.
>
> I find "source this value out of" hard to understand.
>
> I would have written something like the following:
>
> The function dim_get_channel_state only serves to initialize the ready and
> done_buffers fields of the structure passed as its second argument.  In
> service_done_flag, this structure is never used again and the only purpose
> of the call is to get the value that is put in the done_buffers field.
> But that value is just the done_sw_buffers_number field of the call's
> first argument.  So the whole call is useless, and we can just replace it
> with an access to this field.
>
> This change implies that the variable st is no longer used, so drop it as
> well.

This is really well written. Sounds much structured. Now my own log message
sounds a little random :)

Is it okay for me to use your verbiage as is in my patch log?

Thank you,
./drv


>
> ---
>
> If you want to work some more in this code, the name of the type
> dim_ch_state_t should not have an _t at the end of it.  It looks like it
> used to be a typedef and someone eliminated the typedef but didn't drop
> the _t.
>
> julia
>
>
> >
> > Signed-off-by: Deepak R Varma <drv@...lo.com>
> > ---
> > Changes in v2:
> >    1. Update patch log message to be more descriptive about the reason for change.
> >       Feedback provided by julia.lawall@...ia.fr
> >
> > PLEASE NOTE: I have only built the module on my machine, but have not tested it.
> > I am not sure how to test this change. I am willing to test it with appropriate
> > guidance provided I have the necessary hardware.
> >
> >
> >  drivers/staging/most/dim2/dim2.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
> > index ab72e11ac5ab..4c1f27898a29 100644
> > --- a/drivers/staging/most/dim2/dim2.c
> > +++ b/drivers/staging/most/dim2/dim2.c
> > @@ -259,7 +259,6 @@ static void retrieve_netinfo(struct dim2_hdm *dev, struct mbo *mbo)
> >  static void service_done_flag(struct dim2_hdm *dev, int ch_idx)
> >  {
> >  	struct hdm_channel *hdm_ch = dev->hch + ch_idx;
> > -	struct dim_ch_state_t st;
> >  	struct list_head *head;
> >  	struct mbo *mbo;
> >  	int done_buffers;
> > @@ -271,7 +270,7 @@ static void service_done_flag(struct dim2_hdm *dev, int ch_idx)
> >
> >  	spin_lock_irqsave(&dim_lock, flags);
> >
> > -	done_buffers = dim_get_channel_state(&hdm_ch->ch, &st)->done_buffers;
> > +	done_buffers = hdm_ch->ch.done_sw_buffers_number;
> >  	if (!done_buffers) {
> >  		spin_unlock_irqrestore(&dim_lock, flags);
> >  		return;
> > --
> > 2.30.2
> >
> >
> >
> >
> >


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ