There are few nice macros in mm.h, some of which we may use here.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/iopoll.h>
+#include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/pfn.h>
         * 4095 (PAGE_SIZE - 1) means every single byte in the last page
         * is available for DMA transfer.
         */
-       entry[1].second_entry.last_page_available_bytes =
-                       (remaining & ~PAGE_MASK) ?
-                               (remaining & ~PAGE_MASK) - 1 : PAGE_SIZE - 1;
+       remaining = offset_in_page(remaining) ?: PAGE_SIZE;
+       entry[1].second_entry.last_page_available_bytes = remaining - 1;
        /* Fill FBPT */
        remaining = length;
        i = 0;