ANDROID: dm-bow: Fix 32 bit compile errors
authorPaul Lawrence <paullawrence@google.com>
Tue, 26 Mar 2019 16:05:55 +0000 (09:05 -0700)
committerPaul Lawrence <paullawrence@google.com>
Tue, 26 Mar 2019 20:56:34 +0000 (13:56 -0700)
See https://www.kernel.org/doc/html/v4.17/core-api/printk-formats.html

Also 64-bit modulus not defined on 32-bit architectures

Test: i386_defconfig and x86_64_cuttlefish_defconfig compile
Change-Id: I57b9372e12e97b9a18232191b525e7601bc57a24
Signed-off-by: Paul Lawrence <paullawrence@google.com>
drivers/md/dm-bow.c

index fa0675d58853bdb9826337fb8ec59c7c53088005..b92da30a3d42b0cb68b7c873a2b680c5af8f9888 100644 (file)
@@ -267,7 +267,8 @@ static struct bow_range *find_free_range(struct bow_context *bc)
 
 static sector_t sector_to_page(struct bow_context const *bc, sector_t sector)
 {
-       WARN_ON(sector % (bc->block_size / SECTOR_SIZE) != 0);
+       WARN_ON((sector & (((sector_t)1 << (bc->block_shift - SECTOR_SHIFT)) - 1))
+               != 0);
        return sector >> (bc->block_shift - SECTOR_SHIFT);
 }
 
@@ -292,7 +293,8 @@ static int copy_data(struct bow_context const *bc,
 
                read = dm_bufio_read(bc->bufio, page, &read_buffer);
                if (IS_ERR(read)) {
-                       DMERR("Cannot read page %lu", page);
+                       DMERR("Cannot read page %llu",
+                             (unsigned long long)page);
                        return PTR_ERR(read);
                }
 
@@ -953,8 +955,9 @@ static int add_trim(struct bow_context *bc, struct bio *bio)
        struct bow_range *br;
        struct bvec_iter bi_iter = bio->bi_iter;
 
-       DMDEBUG("add_trim: %lu, %u",
-               bio->bi_iter.bi_sector, bio->bi_iter.bi_size);
+       DMDEBUG("add_trim: %llu, %u",
+               (unsigned long long)bio->bi_iter.bi_sector,
+               bio->bi_iter.bi_size);
 
        do {
                br = find_first_overlapping_range(&bc->ranges, &bi_iter);
@@ -991,8 +994,9 @@ static int remove_trim(struct bow_context *bc, struct bio *bio)
        struct bow_range *br;
        struct bvec_iter bi_iter = bio->bi_iter;
 
-       DMDEBUG("remove_trim: %lu, %u",
-               bio->bi_iter.bi_sector, bio->bi_iter.bi_size);
+       DMDEBUG("remove_trim: %llu, %u",
+               (unsigned long long)bio->bi_iter.bi_sector,
+               bio->bi_iter.bi_size);
 
        do {
                br = find_first_overlapping_range(&bc->ranges, &bi_iter);
@@ -1117,8 +1121,9 @@ static void dm_bow_tablestatus(struct dm_target *ti, char *result,
        for (i = rb_first(&bc->ranges); i; i = rb_next(i)) {
                struct bow_range *br = container_of(i, struct bow_range, node);
 
-               result += scnprintf(result, end - result, "%s: %lu",
-                                   readable_type[br->type], br->sector);
+               result += scnprintf(result, end - result, "%s: %llu",
+                                   readable_type[br->type],
+                                   (unsigned long long)br->sector);
                if (result >= end)
                        return;