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-next>] [day] [month] [year] [list]
Date:	Wed, 18 Jan 2012 19:21:55 -0500
From:	Paul Gortmaker <paul.gortmaker@...driver.com>
To:	linux-kernel@...r.kernel.org
Cc:	Paul Gortmaker <paul.gortmaker@...driver.com>,
	Nicolas Ferre <nicolas.ferre@...el.com>,
	Dan Williams <dan.j.williams@...el.com>,
	Vinod Koul <vinod.koul@...el.com>
Subject: [PATCH] dmatest: fix merge error resulting in incorrect count handling

We currently see this warning:

  drivers/dma/dmatest.c: In function ‘dmatest_add_channel’:
  drivers/dma/dmatest.c:602:28: warning: the omitted middle operand
   in ?: will always be ‘true’, suggest explicit middle operand [-Wparentheses]

It happens because commit f1aef8b6e6abf32a3a269542f95a19e2cb319f6c

  "dmaengine: dmatest: correct thread_count while using multiple thread per channel"

fixed the only two instances of this issue in the code, but then the
commit 58691d64c44ae41ddf098ecb31e9a994026e3cff "dmatest: add pq support"
was based on the old (unfixed) code, and so it reintroduced an instance
of this error.  Using git describe, the baseline delta is apparent:

	dmatest: correct thread_count	v2.6.30-8-gf1aef8b
	dmatest: add pq support		v2.6.29-rc8-80-g58691d6

Inspection of f1aef8b and/or the surrounding code leads one to the
obvious fix.

Signed-off-by: Paul Gortmaker <paul.gortmaker@...driver.com>
CC: Nicolas Ferre <nicolas.ferre@...el.com>
CC: Dan Williams <dan.j.williams@...el.com>
CC: Vinod Koul <vinod.koul@...el.com>

---

[After creating this patch, I noticed it came up before in the
 lkml archives, but a fix never got applied.  At least now the
 real root cause is documented in this commit log.]

diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 2b8661b..24225f0 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -599,7 +599,7 @@ static int dmatest_add_channel(struct dma_chan *chan)
 	}
 	if (dma_has_cap(DMA_PQ, dma_dev->cap_mask)) {
 		cnt = dmatest_add_threads(dtc, DMA_PQ);
-		thread_count += cnt > 0 ?: 0;
+		thread_count += cnt > 0 ? cnt : 0;
 	}
 
 	pr_info("dmatest: Started %u threads using %s\n",
-- 
1.7.7.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/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ