staging: sep: resolve issue with false zero length of page
authorMark Allyn <mark.a.allyn@intel.com>
Mon, 11 Apr 2011 00:03:28 +0000 (17:03 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 26 Apr 2011 00:05:28 +0000 (17:05 -0700)
Signed-off-by: Mark Allyn <mark.a.allyn@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/sep/sep_driver.c

index 890eede5e3f916cd24752898a1620d50c8173c00..52342c17eaddd797968265dee3762be1a9bfcff4 100644 (file)
@@ -1095,13 +1095,16 @@ static int sep_lock_user_pages(struct sep_device *sep,
        if (num_pages > 1) {
                lli_array[num_pages - 1].block_size =
                        (app_virt_addr + data_size) & (~PAGE_MASK);
+               if (lli_array[num_pages - 1].block_size == 0)
+                       lli_array[num_pages - 1].block_size = PAGE_SIZE;
 
                dev_warn(&sep->pdev->dev,
-                       "lli_array[%x].bus_address is %08lx, lli_array[%x].block_size is %x\n",
+                       "lli_array[%x].bus_address is "
+                       "%08lx, lli_array[%x].block_size is %x\n",
                        num_pages - 1,
-                       (unsigned long)lli_array[count].bus_address,
+                       (unsigned long)lli_array[num_pages -1].bus_address,
                        num_pages - 1,
-                       lli_array[count].block_size);
+                       lli_array[num_pages -1].block_size);
        }
 
        /* Set output params according to the in_out flag */