aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2014-07-28 07:20:58 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-08-07 05:07:15 -0400
commit57007df74a547c68b3373861aa15efb861af6efc (patch)
tree125ec19f397a0dbcac1dfb0ff6e797c9898f2bee /drivers/gpu/drm/i915
parent72b79c9b2f1b23ba63d7e215963fb90475286ff1 (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/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c11
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(&gtt_entries[i-1]) != 1479 unsigned long gtt = readl(&gtt_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