All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antonio Quartulli <antonio@meshcoding.com>
To: Matthias Schiffer <mschiffer@universe-factory.net>
Cc: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat code for kstrtou32
Date: Thu, 21 Nov 2013 08:21:43 +0100	[thread overview]
Message-ID: <20131121072143.GD311@neomailbox.net> (raw)
In-Reply-To: <528D81CA.8000106@universe-factory.net>


[-- Attachment #1.1: Type: text/plain, Size: 432 bytes --]

On Thu, Nov 21, 2013 at 04:45:14AM +0100, Matthias Schiffer wrote:
> You are casting a u32 * to unsigned long *? Won't this break horribly
> when sizeof(u32) != sizeof(unsigned long)?
> 

It will break when sizeof(unsigned long) > sizeof(uint32). For example on
x86_64. Hopefully nobody would use such ancient kernel on his machine. But you
are right.

What do you think of the attached patch?


-- 
Antonio Quartulli

[-- Attachment #1.2: patch --]
[-- Type: text/plain, Size: 608 bytes --]

diff --git a/compat.h b/compat.h
index a050bb8..fe64820 100644
--- a/compat.h
+++ b/compat.h
@@ -153,7 +153,14 @@ static inline int batadv_param_set_copystring(const char *val,
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39)
 
 /* cast last argument of strict_strtoul() because we have a uint32_t */
-#define kstrtou32(cp, base, v) strict_strtoul(cp, base, (unsigned long *)v)
+#define kstrtou32(cp, base, v) \
+({\
+	unsigned long _v;\
+	int _r;\
+	_r = strict_strtoul(cp, base, _v);\
+	v = (uint32_t)_v;\
+	_r;\
+})
 #define kstrtoul strict_strtoul
 #define kstrtol  strict_strtol
 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2013-11-21  7:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19  7:26 [B.A.T.M.A.N.] [PATCH] batman-adv: add compat code for kstrtou32 Antonio Quartulli
2013-11-21  1:20 ` Marek Lindner
2013-11-21  3:45 ` Matthias Schiffer
2013-11-21  7:21   ` Antonio Quartulli [this message]
2013-11-21 13:57     ` Matthias Schiffer
2013-11-21 14:20       ` Antonio Quartulli
2013-11-21 14:31         ` Matthias Schiffer
2013-11-21 14:40           ` Antonio Quartulli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131121072143.GD311@neomailbox.net \
    --to=antonio@meshcoding.com \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=mschiffer@universe-factory.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.