diff options
author | Pavel Machek <pavel@ucw.cz> | 2014-07-28 07:20:58 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-08-07 05:07:15 -0400 |
commit | 57007df74a547c68b3373861aa15efb861af6efc (patch) | |
tree | 125ec19f397a0dbcac1dfb0ff6e797c9898f2bee /drivers/gpu/drm | |
parent | 72b79c9b2f1b23ba63d7e215963fb90475286ff1 (diff) |
drm/i915: work around warning in i915_gem_gtt
Gcc warns that addr might be used uninitialized. It may not, but I see
why gcc gets confused.
Additionally, hiding code with side-effects inside WARN_ON() argument
seems uncool, so I moved it outside.
Signed-off-by: Pavel Machek <pavel@ucw.cz>
[danvet: Add obligatory /* shuts up gcc */ comment.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 5188936bca0a..1411613f2174 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c | |||
@@ -1415,7 +1415,7 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm, | |||
1415 | (gen8_gtt_pte_t __iomem *)dev_priv->gtt.gsm + first_entry; | 1415 | (gen8_gtt_pte_t __iomem *)dev_priv->gtt.gsm + first_entry; |
1416 | int i = 0; | 1416 | int i = 0; |
1417 | struct sg_page_iter sg_iter; | 1417 | struct sg_page_iter sg_iter; |
1418 | dma_addr_t addr = 0; | 1418 | dma_addr_t addr = 0; /* shut up gcc */ |
1419 | 1419 | ||
1420 | for_each_sg_page(st->sgl, &sg_iter, st->nents, 0) { | 1420 | for_each_sg_page(st->sgl, &sg_iter, st->nents, 0) { |
1421 | addr = sg_dma_address(sg_iter.sg) + | 1421 | addr = sg_dma_address(sg_iter.sg) + |
@@ -1461,7 +1461,7 @@ static void gen6_ggtt_insert_entries(struct i915_address_space *vm, | |||
1461 | (gen6_gtt_pte_t __iomem *)dev_priv->gtt.gsm + first_entry; | 1461 | (gen6_gtt_pte_t __iomem *)dev_priv->gtt.gsm + first_entry; |
1462 | int i = 0; | 1462 | int i = 0; |
1463 | struct sg_page_iter sg_iter; | 1463 | struct sg_page_iter sg_iter; |
1464 | dma_addr_t addr; | 1464 | dma_addr_t addr = 0; |
1465 | 1465 | ||
1466 | for_each_sg_page(st->sgl, &sg_iter, st->nents, 0) { | 1466 | for_each_sg_page(st->sgl, &sg_iter, st->nents, 0) { |
1467 | addr = sg_page_iter_dma_address(&sg_iter); | 1467 | addr = sg_page_iter_dma_address(&sg_iter); |
@@ -1475,9 +1475,10 @@ static void gen6_ggtt_insert_entries(struct i915_address_space *vm, | |||
1475 | * of NUMA access patterns. Therefore, even with the way we assume | 1475 | * of NUMA access patterns. Therefore, even with the way we assume |
1476 | * hardware should work, we must keep this posting read for paranoia. | 1476 | * hardware should work, we must keep this posting read for paranoia. |
1477 | */ | 1477 | */ |
1478 | if (i != 0) | 1478 | if (i != 0) { |
1479 | WARN_ON(readl(>t_entries[i-1]) != | 1479 | unsigned long gtt = readl(>t_entries[i-1]); |
1480 | vm->pte_encode(addr, level, true, flags)); | 1480 | WARN_ON(gtt != vm->pte_encode(addr, level, true, flags)); |
1481 | } | ||
1481 | 1482 | ||
1482 | /* This next bit makes the above posting read even more important. We | 1483 | /* This next bit makes the above posting read even more important. We |
1483 | * want to flush the TLBs only after we're certain all the PTE updates | 1484 | * want to flush the TLBs only after we're certain all the PTE updates |