]>
Commit | Line | Data |
---|---|---|
b74db2ac GKH |
1 | From 68dee8e2f2cacc54d038394e70d22411dee89da2 Mon Sep 17 00:00:00 2001 |
2 | From: Nikola Pajkovsky <npajkovsky@suse.cz> | |
3 | Date: Tue, 15 Nov 2016 09:47:49 +0100 | |
4 | Subject: x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0 | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Nikola Pajkovsky <npajkovsky@suse.cz> | |
10 | ||
11 | commit 68dee8e2f2cacc54d038394e70d22411dee89da2 upstream. | |
12 | ||
13 | commit 8fd524b355da ("x86: Kill bad_dma_address variable") has killed | |
14 | bad_dma_address variable and used instead of macro DMA_ERROR_CODE | |
15 | which is always zero. Since dma_addr is unsigned, the statement | |
16 | ||
17 | dma_addr >= DMA_ERROR_CODE | |
18 | ||
19 | is always true, and not needed. | |
20 | ||
21 | arch/x86/kernel/pci-calgary_64.c: In function ‘iommu_free’: | |
22 | arch/x86/kernel/pci-calgary_64.c:299:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] | |
23 | if (unlikely((dma_addr >= DMA_ERROR_CODE) && (dma_addr < badend))) { | |
24 | ||
25 | Fixes: 8fd524b355da ("x86: Kill bad_dma_address variable") | |
26 | Signed-off-by: Nikola Pajkovsky <npajkovsky@suse.cz> | |
27 | Cc: iommu@lists.linux-foundation.org | |
28 | Cc: Jon Mason <jdmason@kudzu.us> | |
29 | Cc: Muli Ben-Yehuda <mulix@mulix.org> | |
30 | Link: http://lkml.kernel.org/r/7612c0f9dd7c1290407dbf8e809def922006920b.1479161177.git.npajkovsky@suse.cz | |
31 | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> | |
32 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
33 | ||
34 | --- | |
35 | arch/x86/kernel/pci-calgary_64.c | 2 +- | |
36 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
37 | ||
38 | --- a/arch/x86/kernel/pci-calgary_64.c | |
39 | +++ b/arch/x86/kernel/pci-calgary_64.c | |
40 | @@ -296,7 +296,7 @@ static void iommu_free(struct iommu_tabl | |
41 | ||
42 | /* were we called with bad_dma_address? */ | |
43 | badend = DMA_ERROR_CODE + (EMERGENCY_PAGES * PAGE_SIZE); | |
44 | - if (unlikely((dma_addr >= DMA_ERROR_CODE) && (dma_addr < badend))) { | |
45 | + if (unlikely(dma_addr < badend)) { | |
46 | WARN(1, KERN_ERR "Calgary: driver tried unmapping bad DMA " | |
47 | "address 0x%Lx\n", dma_addr); | |
48 | return; |