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: <1286540528.5117.1399034495@webmail.messagingengine.com>
Date:	Fri, 08 Oct 2010 13:22:08 +0100
From:	"Jack Stone" <jwjstone@...tmail.fm>
To:	"Nicolas Kaiser" <nikai@...ai.net>,
	"Dan Williams" <dan.j.williams@...el.com>
Cc:	linux-kernel@...r.kernel.org, torvalds@...ux-foundation.org,
	akpm@...ux-foundation.org
Subject: Re: [PATCH] dma/timberdale: simplify conditional



We should be careful with this sort of transformation. It is only
guaranteed true if both sides are boolean. E.g. ((foo & mask) && (bar &
baz)) ¦¦ (!(foo & mask) && (!(bar & baz)) does not imply (foo & mask) ==
(bar & baz)). foo & mask could equal 0x0100 for example but bar & baz
could equal 0x0001. Both are true as logicals but they are not equal.

One safe way to make this patch would be to add !! in front of both
halves.

Of course this is a moot point if pdes->rx is a boolean or a single bit
but I don't have the source to hand to check this (% 2 is guaranteed to
be 0 or 1 so it doesn't matter).

Sorry if this doesn't make sense. Let me know and I can try and
rephrase.

Hope this helps,
Jack

On Fri, 08 Oct 2010 00:48 +0200, "Nicolas Kaiser" <nikai@...ai.net>
wrote:
> Simplify: ((a && b) || (!a && !b)) => (a == b)
> 
> Signed-off-by: Nicolas Kaiser <nikai@...ai.net>
> ---
>  drivers/dma/timb_dma.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/dma/timb_dma.c b/drivers/dma/timb_dma.c
> index 2ec1ed5..3b88a4e 100644
> --- a/drivers/dma/timb_dma.c
> +++ b/drivers/dma/timb_dma.c
> @@ -759,7 +759,7 @@ static int __devinit td_probe(struct platform_device
> *pdev)
>  			pdata->channels + i;
>  
>  		/* even channels are RX, odd are TX */
> -               if (((i % 2) && pchan->rx) || (!(i % 2) && !pchan->rx)) {
> +               if ((i % 2) == pchan->rx) {
>  			dev_err(&pdev->dev, "Wrong channel configuration\n");
>  			err = -EINVAL;
>  			goto err_tasklet_kill;
> -- 
> 1.7.2.2
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel"
> in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ