Thread (4 messages) 4 messages, 2 authors, 2015-10-14

[PATCH] md: fix 32-bit build warning

From: arnd@arndb.de (Arnd Bergmann)
Date: 2015-10-12 09:30:20
Also in: linux-raid, lkml

On Monday 12 October 2015 15:59:27 Neil Brown wrote:
quoted
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7fff1e6884d6..e13f72a3b561 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -8987,9 +8987,9 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
 
      /* recovery_cp changed */
      if (le64_to_cpu(sb->resync_offset) != mddev->recovery_cp) {
-             pr_info("%s:%d recovery_cp changed from %lu to %lu\n", __func__,
-                             __LINE__, mddev->recovery_cp,
-                             (unsigned long) le64_to_cpu(sb->resync_offset));
+             pr_info("%s:%d recovery_cp changed from %llu to %llu\n", __func__,
+                             __LINE__, (u64)mddev->recovery_cp,
+                             (u64) le64_to_cpu(sb->resync_offset));
              mddev->recovery_cp = le64_to_cpu(sb->resync_offset);
      }
 
Thanks, but is this really right?
I think u64 is "unsigned long" on 64bit.
I have always used (unsigned long long) when I want to use %llu on
sector_t.

How confident are you of using "u64" ?
Very confident ;-)

This used to not work until some linux-2.6 version when we changed all
architectures to use asm-generic/int-ll64.h in the kernel, because
a lot of code relied on printing u64 variables using %lld.

I tend to use u64 for things like this because it's shorter than
'unsigned long long'.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help