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  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]
Date:   Tue, 4 Apr 2017 14:01:57 +0100
From:   Lee Jones <lee.jones@...aro.org>
To:     Hans Verkuil <hverkuil@...all.nl>
Cc:     hans.verkuil@...co.com, mchehab@...nel.org,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
        kernel@...inux.com, patrice.chotard@...com,
        linux-media@...r.kernel.org, benjamin.gaignard@...com
Subject: Re: [PATCH 1/2] [media] cec: Move capability check inside #if

On Tue, 04 Apr 2017, Lee Jones wrote:

> On Tue, 04 Apr 2017, Hans Verkuil wrote:
> 
> > On 04/04/2017 02:32 PM, Lee Jones wrote:
> > > If CONFIG_RC_CORE is not enabled then none of the RC code will be
> > > executed anyway, so we're placing the capability check inside the
> > > 
> > > Signed-off-by: Lee Jones <lee.jones@...aro.org>
> > > ---
> > >  drivers/media/cec/cec-core.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/media/cec/cec-core.c b/drivers/media/cec/cec-core.c
> > > index 37217e2..06a312c 100644
> > > --- a/drivers/media/cec/cec-core.c
> > > +++ b/drivers/media/cec/cec-core.c
> > > @@ -234,10 +234,10 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
> > >  		return ERR_PTR(res);
> > >  	}
> > >  
> > > +#if IS_REACHABLE(CONFIG_RC_CORE)
> > >  	if (!(caps & CEC_CAP_RC))
> > >  		return adap;
> > >  
> > > -#if IS_REACHABLE(CONFIG_RC_CORE)
> > >  	/* Prepare the RC input device */
> > >  	adap->rc = rc_allocate_device(RC_DRIVER_SCANCODE);
> > >  	if (!adap->rc) {
> > > 
> > 
> > Not true, there is an #else further down.
> 
> I saw the #else.  It's inert code that becomes function-less.
> 
> > That said, this code is clearly a bit confusing.
> > 
> > It would be better if at the beginning of the function we'd have this:
> > 
> > #if !IS_REACHABLE(CONFIG_RC_CORE)
> > 	caps &= ~CEC_CAP_RC;
> > #endif
> > 
> > and then drop the #else bit and (as you do in this patch) move the #if up.
> > 
> > Can you make a new patch for this?
> 
> Sure.

No wait, sorry!  This patch is the correct fix.

'caps' is already indicating !CEC_CAP_RC, which is right.

What we're trying to do here is only consider looking at the
capabilities if the RC Core is enabled.  If it is not enabled, the #if
still does the right thing and makes sure that the caps are updated.

Please take another look at the semantics.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists