Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] linux-fusion: fix several build issues
Date: Tue, 12 Jan 2016 17:42:51 +0100	[thread overview]
Message-ID: <20160112174251.7280fdf3@free-electrons.com> (raw)
In-Reply-To: <56951746.4070806@free.fr>

Hello,

On Tue, 12 Jan 2016 16:09:58 +0100, Mason wrote:
> The first patch merely fixes a warning. The other two are required to
> use the module on Linux 4.x
> 
> Signed-off-by: Mason <slash.tmp@free.fr>

We need your real name here to accept your patches. See
http://lxr.free-electrons.com/source/Documentation/SubmittingPatches#L448.

> diff --git a/package/linux-fusion/0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch b/package/linux-fusion/0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch
> new file mode 100644
> index 000000000000..18fd2395e0f7
> --- /dev/null
> +++ b/package/linux-fusion/0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch
> @@ -0,0 +1,30 @@
> +From debb9cafe9b7cc2b286399ecc8e3210480061c70 Mon Sep 17 00:00:00 2001
> +From: Mason <slash.tmp@free.fr>
> +Date: Mon, 11 Jan 2016 15:42:16 +0100
> +Subject: [PATCH 2/4] Fix mismatched conversion spec and value in printk

Please generate the patches with 'git format-patch -N' so that we don't
have numbered patches.

> +
> +linux/drivers/char/fusion/fusiondev.c:775:38: warning:
> +format '%ld' expects argument of type 'long int', but argument 7 has type 'int'
> +
> +Subtracting two pointers yields a ptrdiff_t value, and ptrdiff_t is not
> +necessarily an alias for long int. Cast the value to long int.

We also need a SoB line inside the patches.

> +---
> + linux/drivers/char/fusion/fusiondev.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/linux/drivers/char/fusion/fusiondev.c b/linux/drivers/char/fusion/fusiondev.c
> +index 7003407f7e1e..dfb5f8ecb81a 100644
> +--- a/linux/drivers/char/fusion/fusiondev.c
> ++++ b/linux/drivers/char/fusion/fusiondev.c
> +@@ -775,7 +775,7 @@ call_ioctl(FusionDev * dev, Fusionee * fusionee,
> +                               printk( KERN_ERR "fusion: FUSION_CALL_EXECUTE3 with errorneous call (failed on previous ioctl call), "
> +                                                "call id %d, flags 0x%08x, arg %d, length %u, serial %u,  %ld\n",
> +                                       execute3.call_id, execute3.flags, execute3.call_arg, execute3.length, execute3.ret_length,
> +-                                      (execute3_bin - (FusionCallExecute3 *) arg) );
> ++                                      (long int)(execute3_bin - (FusionCallExecute3 *) arg) );

Can you try instead to replace '%ld' by '%tu'. Apparently, according to
lib/vsprintf.c, %t is the proper format specifier for ptrdiff_t.

It is for example used here:

mm/slub.c:                      pr_err("INFO: Object 0x%p @offset=%tu\n", p, p - addr);

Or maybe you need %td if the value can be negative.

> diff --git a/package/linux-fusion/0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch b/package/linux-fusion/0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch
> new file mode 100644
> index 000000000000..191e47d1d367
> --- /dev/null
> +++ b/package/linux-fusion/0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch
> @@ -0,0 +1,39 @@
> +From a6e950ea4827813c70fafa912c5c3d1f8a2ccaf4 Mon Sep 17 00:00:00 2001
> +From: Mason <slash.tmp@free.fr>
> +Date: Mon, 11 Jan 2016 16:45:30 +0100
> +Subject: [PATCH 3/4] Fix fusion: Unknown symbol tasklist_lock (err 0)
> +
> +Commit 28f6569ab7d0 renamed TREE_PREEMPT_RCU to PREEMPT_RCU in 3.19
> +As a result, the code incorrectly falls back to using tasklist_lock
> +(which was made private in 2.6.18)
> +
> +Always use rcu_read_lock on modern kernels.

Missing SoB line.

> +---
> + linux/drivers/char/fusion/fusionee.c | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/linux/drivers/char/fusion/fusionee.c b/linux/drivers/char/fusion/fusionee.c
> +index ef067f5bc831..adaabaedb355 100644
> +--- a/linux/drivers/char/fusion/fusionee.c
> ++++ b/linux/drivers/char/fusion/fusionee.c
> +@@ -925,7 +925,7 @@ fusionee_kill(FusionDev * dev,
> +                if (f != fusionee && (!target || target == f->id)) {
> +                     struct task_struct *p;
> + 
> +-#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) || defined(CONFIG_TINY_RCU) || defined(rcu_read_lock)
> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) || defined(rcu_read_lock)

Are you sure it is good to keep the defined(rcu_read_lock) test ? This
only works if rcu_read_lock is a macro, not if it's an inline function.
If tasklisk_lock is available up to 2.6.18, then why not simply keep
the version-based condition?

> diff --git a/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch b/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch
> new file mode 100644
> index 000000000000..1e05808e9bc2
> --- /dev/null
> +++ b/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch
> @@ -0,0 +1,100 @@
> +From cd420f7ed42e4a580edbeb3bc49b8492f2c71b91 Mon Sep 17 00:00:00 2001
> +From: Mason <slash.tmp@free.fr>
> +Date: Tue, 12 Jan 2016 14:01:42 +0100
> +Subject: [PATCH 4/4] Port one/one_udp.c to Linux 4.1
> +
> +Kernel commit c0371da6047a replaced msg_iov and msg_iovlen with msg_iter
> +in struct msghdr since 3.19
> +
> +one/one_udp.c: In function 'ksocket_send_iov':
> +one/one_udp.c:186:9: error: 'struct msghdr' has no member named 'msg_iov'
> +one/one_udp.c:187:9: error: 'struct msghdr' has no member named 'msg_iovlen'
> +
> +one/one_udp.c: In function 'ksocket_receive':
> +one/one_udp.c:221:9: error: 'struct msghdr' has no member named 'msg_iov'
> +one/one_udp.c:222:9: error: 'struct msghdr' has no member named 'msg_iovlen'
> +
> +The iov_iter interface
> +https://lwn.net/Articles/625077/
> +
> +Kernel commit d8725c86aeba dropped the len parameter in sock_sendmsg
> +since 4.1
> +
> +one/one_udp.c: In function 'ksocket_send_iov':
> +one/one_udp.c:192:13: error: too many arguments to function 'sock_sendmsg'

Missing SoB.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2016-01-12 16:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-12 15:09 [Buildroot] [PATCH] linux-fusion: fix several build issues Mason
2016-01-12 16:42 ` Thomas Petazzoni [this message]
2016-01-12 22:20   ` Mason
2016-01-13  8:23     ` Thomas Petazzoni
2016-01-15 16:12       ` [Buildroot] [PATCH v2] " Mason
2016-01-16 13:04         ` Thomas Petazzoni

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=20160112174251.7280fdf3@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox