video: tegra: nvmap: Fix broken optimization
authorkartamonov <kartamonov@nvidia.com>
Mon, 14 Feb 2011 12:22:46 +0000 (14:22 +0200)
committerRebecca Schultz Zavin <rebecca@android.com>
Mon, 14 Feb 2011 23:31:15 +0000 (15:31 -0800)
An attempt had been made to reduce the number of pte operations
while patching relocs.  The optimization was incorrectly coded
and was not providing the expected speedup.

Credit for the find goes to Peter Pipkorn.

Change-Id: Ic83b20ee470e54d5053f747dbcbdf7b038b7c7c4
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
drivers/video/tegra/nvmap/nvmap.c

index 262f1b9b357d4495d204ddcd3c4541635aafaa7f..1a70f43d79f5d70a1541d5f223cc92c89b3013e4 100644 (file)
@@ -377,6 +377,7 @@ static int nvmap_reloc_pin_array(struct nvmap_client *client,
                        unsigned long kaddr = (unsigned long)addr;
                        set_pte_at(&init_mm, kaddr, *pte, pfn_pte(pfn, prot));
                        flush_tlb_kernel_page(kaddr);
+                       last_pfn = pfn;
                }
 
                reloc_addr = handle_phys(pin) + arr[i].pin_offset;