* Re: linux-next: build failure in the powerpc allyesconfig build
From: Arnd Bergmann @ 2016-12-08 13:31 UTC (permalink / raw)
To: linuxppc-dev
Cc: Stephen Rothwell, Michael Ellerman, Benjamin Herrenschmidt,
linux-next, linux-kernel, Nicholas Piggin
In-Reply-To: <20161205162204.02c2c236@canb.auug.org.au>
On Monday, December 5, 2016 4:22:04 PM CET Stephen Rothwell wrote:
> Hi all,
>
> After mergeing everything but Andrew's tree, today's linux-next build
> (powerpc allyesconfig) failed like this:
>
> kallsyms failure: relative symbol value 0xc000000000000000 out of range in relative mode
>
> I have no idea what caused this, so I have left the powerpc allyesconfig
> build broken for now.
I get this on an x86-64 randconfig build:
kallsyms failure: relative symbol value 0xffffffff81000000 out of range in relative mode
This is probably related, so it's not something powerpc specific.
Arnd
^ permalink raw reply
* enabling COMPILE_TEST support for GCC plugins in v4.11
From: Kees Cook @ 2016-12-08 19:00 UTC (permalink / raw)
To: Stephen Rothwell, Arnd Bergmann, Randy Dunlap, Olof Johansson,
Mark Brown, info, Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux
Cc: LKML, Linux-Next, Fengguang Wu, Andrew Donnellan,
Michael Ellerman, Laura Abbott, x86@kernel.org
Hi,
I'd like to get the GCC plugins building under
allyesconfig/allmodconfig for -next soon (with the intention of
landing the change in v4.11). Specifically, I intend to revert
a519167e753e ("gcc-plugins: disable under COMPILE_TEST").
Right now the plugins are only supported on x86, arm, and arm64,
though powerpc may happen in either v4.10 or v4.11 as well. This means
that the autobuilders for these architectures need to have the "gcc
plugin development" package installed which contains the GCC headers
needed for the plugins. For Debian/Ubuntu, this is gcc-$N-plugin-dev
(and for cross compilers: gcc-$N-plugin-dev-$arch-linux-$abi). For
Fedora, it is gcc-plugin-devel (though I'm not sure the naming for
cross compilers). Manual builds of compilers should already have these
headers installed.
The "noisy" plugin, cyc_complexity, is just an example, and I have
disabled it (which is pending[1] for v4.10). The remaining ones
(sancov and latent_entropy) are what I'm hoping to see tested
tree-wide (with the expectation that more are coming down the road:
initify, randstruct, structleak, constify, ...)
IIUC, the 0day builder already has the headers installed. I tried to
look through linux-next to find all the other folks that do
autobuilding on these architectures; apologies if I've missed anyone.
If you have a moment, applying 215e2aa6c024[1] and reverting
a519167e753e for an allyesconfig/allmodconfig build should let you
know if things are working correctly with headers installed. If anyone
sees any problems, please let me know and I can queue up fixes.
Thanks!
-Kees
[1] http://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/commit/?h=for-next/gcc-plugins&id=215e2aa6c024d27cdbe88e2ea88cb59dcab588eb
--
Kees Cook
Nexus Security
^ permalink raw reply
* linux-next: manual merge of the pci tree with Linus' tree
From: Stephen Rothwell @ 2016-12-08 23:44 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-next, linux-kernel, Stephen Hemminger, Thomas Gleixner
Hi Bjorn,
Today's linux-next merge of the pci tree got a conflict in:
drivers/pci/msi.c
between commit:
62c61514191b ("doc: Add missing parameter for msi_setup")
from Linus' tree and commit:
67f1e4473857 ("PCI/MSI: Document new parameter for msi_capability_init()")
from the pci tree.
I fixed it up (I just used the pci tree version) and can carry the fix
as necessary. This is now fixed as far as linux-next is concerned, but
any non trivial conflicts should be mentioned to your upstream maintainer
when your tree is submitted for merging. You may also want to consider
cooperating with the maintainer of the conflicting tree to minimise any
particularly complex conflicts.
--
Cheers,
Stephen Rothwell
^ permalink raw reply
* linux-next: build warning after merge of the net-next tree
From: Stephen Rothwell @ 2016-12-09 0:34 UTC (permalink / raw)
To: David Miller, Networking
Cc: linux-next, linux-kernel, Jacob Keller, Jeff Kirsher
Hi all,
After merging the net-next tree, today's linux-next build (powerpc
ppc64_defconfig) produced this warning:
In file included from include/linux/byteorder/big_endian.h:4:0,
from arch/powerpc/include/uapi/asm/byteorder.h:13,
from include/asm-generic/bitops/le.h:5,
from arch/powerpc/include/asm/bitops.h:279,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:23,
from include/linux/etherdevice.h:25,
from drivers/net/ethernet/intel/i40e/i40e_main.c:27:
drivers/net/ethernet/intel/i40e/i40e_main.c: In function 'i40e_sync_vsi_filters':
include/uapi/linux/byteorder/big_endian.h:34:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
#define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
^
include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__cpu_to_le16'
#define cpu_to_le16 __cpu_to_le16
^
drivers/net/ethernet/intel/i40e/i40e_main.c:2200:5: note: in expansion of macro 'cpu_to_le16'
cpu_to_le16((u16)I40E_AQC_MM_ERR_NO_RES);
^
Introduced by commit
ac9e23901441 ("i40e: refactor i40e_update_filter_state to avoid passing aq_err")
--
Cheers,
Stephen Rothwell
^ permalink raw reply
* Re: [PATCH 37/50] netfilter: nf_tables: atomic dump and reset for stateful objects
From: Paul Gortmaker @ 2016-12-09 0:40 UTC (permalink / raw)
To: Pablo Neira Ayuso
Cc: netfilter-devel, David Miller, netdev, linux-next@vger.kernel.org
In-Reply-To: <1481147576-5690-38-git-send-email-pablo@netfilter.org>
On Wed, Dec 7, 2016 at 4:52 PM, Pablo Neira Ayuso <pablo@netfilter.org> wrote:
> This patch adds a new NFT_MSG_GETOBJ_RESET command perform an atomic
> dump-and-reset of the stateful object. This also comes with add support
> for atomic dump and reset for counter and quota objects.
This triggered a new build failure in linux-next on parisc-32, which a
hands-off bisect
run lists as resulting from this:
ERROR: "__cmpxchg_u64" [net/netfilter/nft_counter.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
make: *** [sub-make] Error 2
43da04a593d8b2626f1cf4b56efe9402f6b53652 is the first bad commit
commit 43da04a593d8b2626f1cf4b56efe9402f6b53652
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Mon Nov 28 00:05:44 2016 +0100
netfilter: nf_tables: atomic dump and reset for stateful objects
This patch adds a new NFT_MSG_GETOBJ_RESET command perform an atomic
dump-and-reset of the stateful object. This also comes with add support
for atomic dump and reset for counter and quota objects.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
:040000 040000 6cd4554f69247e5c837db52342f26888beda1623
5908aca93c89e7922336546c3753bfcf2aceefba M include
:040000 040000 f25d5831eb30972436bd198c5bb237a0cb0b4856
4ee5751c8de02bb5a8dcaadb2a2df7986d90f8e9 M net
bisect run success
Guessing this is more an issue with parisc than it is with netfilter, but I
figured I'd mention it anyway.
Paul.
--
>
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
> ---
> include/net/netfilter/nf_tables.h | 3 +-
> include/uapi/linux/netfilter/nf_tables.h | 2 ++
> net/netfilter/nf_tables_api.c | 29 ++++++++++++-----
> net/netfilter/nft_counter.c | 56 +++++++++++++++++++++++++++-----
> net/netfilter/nft_quota.c | 18 ++++++----
> 5 files changed, 85 insertions(+), 23 deletions(-)
>
> diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
> index 903cd618f50e..6f7d6a1dc09c 100644
> --- a/include/net/netfilter/nf_tables.h
> +++ b/include/net/netfilter/nf_tables.h
> @@ -997,7 +997,8 @@ struct nft_object_type {
> struct nft_object *obj);
> void (*destroy)(struct nft_object *obj);
> int (*dump)(struct sk_buff *skb,
> - const struct nft_object *obj);
> + struct nft_object *obj,
> + bool reset);
> };
>
> int nft_register_obj(struct nft_object_type *obj_type);
> diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
> index 3d47582caa80..399eac1eee91 100644
> --- a/include/uapi/linux/netfilter/nf_tables.h
> +++ b/include/uapi/linux/netfilter/nf_tables.h
> @@ -89,6 +89,7 @@ enum nft_verdicts {
> * @NFT_MSG_NEWOBJ: create a stateful object (enum nft_obj_attributes)
> * @NFT_MSG_GETOBJ: get a stateful object (enum nft_obj_attributes)
> * @NFT_MSG_DELOBJ: delete a stateful object (enum nft_obj_attributes)
> + * @NFT_MSG_GETOBJ_RESET: get and reset a stateful object (enum nft_obj_attributes)
> */
> enum nf_tables_msg_types {
> NFT_MSG_NEWTABLE,
> @@ -112,6 +113,7 @@ enum nf_tables_msg_types {
> NFT_MSG_NEWOBJ,
> NFT_MSG_GETOBJ,
> NFT_MSG_DELOBJ,
> + NFT_MSG_GETOBJ_RESET,
> NFT_MSG_MAX,
> };
>
> diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
> index 2ae717c5dcb8..bfc015af366a 100644
> --- a/net/netfilter/nf_tables_api.c
> +++ b/net/netfilter/nf_tables_api.c
> @@ -3972,14 +3972,14 @@ static struct nft_object *nft_obj_init(const struct nft_object_type *type,
> }
>
> static int nft_object_dump(struct sk_buff *skb, unsigned int attr,
> - const struct nft_object *obj)
> + struct nft_object *obj, bool reset)
> {
> struct nlattr *nest;
>
> nest = nla_nest_start(skb, attr);
> if (!nest)
> goto nla_put_failure;
> - if (obj->type->dump(skb, obj) < 0)
> + if (obj->type->dump(skb, obj, reset) < 0)
> goto nla_put_failure;
> nla_nest_end(skb, nest);
> return 0;
> @@ -4096,7 +4096,7 @@ static int nf_tables_newobj(struct net *net, struct sock *nlsk,
> static int nf_tables_fill_obj_info(struct sk_buff *skb, struct net *net,
> u32 portid, u32 seq, int event, u32 flags,
> int family, const struct nft_table *table,
> - const struct nft_object *obj)
> + struct nft_object *obj, bool reset)
> {
> struct nfgenmsg *nfmsg;
> struct nlmsghdr *nlh;
> @@ -4115,7 +4115,7 @@ static int nf_tables_fill_obj_info(struct sk_buff *skb, struct net *net,
> nla_put_string(skb, NFTA_OBJ_NAME, obj->name) ||
> nla_put_be32(skb, NFTA_OBJ_TYPE, htonl(obj->type->type)) ||
> nla_put_be32(skb, NFTA_OBJ_USE, htonl(obj->use)) ||
> - nft_object_dump(skb, NFTA_OBJ_DATA, obj))
> + nft_object_dump(skb, NFTA_OBJ_DATA, obj, reset))
> goto nla_put_failure;
>
> nlmsg_end(skb, nlh);
> @@ -4131,10 +4131,14 @@ static int nf_tables_dump_obj(struct sk_buff *skb, struct netlink_callback *cb)
> const struct nfgenmsg *nfmsg = nlmsg_data(cb->nlh);
> const struct nft_af_info *afi;
> const struct nft_table *table;
> - const struct nft_object *obj;
> unsigned int idx = 0, s_idx = cb->args[0];
> struct net *net = sock_net(skb->sk);
> int family = nfmsg->nfgen_family;
> + struct nft_object *obj;
> + bool reset = false;
> +
> + if (NFNL_MSG_TYPE(cb->nlh->nlmsg_type) == NFT_MSG_GETOBJ_RESET)
> + reset = true;
>
> rcu_read_lock();
> cb->seq = net->nft.base_seq;
> @@ -4156,7 +4160,7 @@ static int nf_tables_dump_obj(struct sk_buff *skb, struct netlink_callback *cb)
> cb->nlh->nlmsg_seq,
> NFT_MSG_NEWOBJ,
> NLM_F_MULTI | NLM_F_APPEND,
> - afi->family, table, obj) < 0)
> + afi->family, table, obj, reset) < 0)
> goto done;
>
> nl_dump_check_consistent(cb, nlmsg_hdr(skb));
> @@ -4183,6 +4187,7 @@ static int nf_tables_getobj(struct net *net, struct sock *nlsk,
> const struct nft_table *table;
> struct nft_object *obj;
> struct sk_buff *skb2;
> + bool reset = false;
> u32 objtype;
> int err;
>
> @@ -4214,9 +4219,12 @@ static int nf_tables_getobj(struct net *net, struct sock *nlsk,
> if (!skb2)
> return -ENOMEM;
>
> + if (NFNL_MSG_TYPE(nlh->nlmsg_type) == NFT_MSG_GETOBJ_RESET)
> + reset = true;
> +
> err = nf_tables_fill_obj_info(skb2, net, NETLINK_CB(skb).portid,
> nlh->nlmsg_seq, NFT_MSG_NEWOBJ, 0,
> - family, table, obj);
> + family, table, obj, reset);
> if (err < 0)
> goto err;
>
> @@ -4291,7 +4299,7 @@ static int nf_tables_obj_notify(const struct nft_ctx *ctx,
>
> err = nf_tables_fill_obj_info(skb, ctx->net, ctx->portid, ctx->seq,
> event, 0, ctx->afi->family, ctx->table,
> - obj);
> + obj, false);
> if (err < 0) {
> kfree_skb(skb);
> goto err;
> @@ -4482,6 +4490,11 @@ static const struct nfnl_callback nf_tables_cb[NFT_MSG_MAX] = {
> .attr_count = NFTA_OBJ_MAX,
> .policy = nft_obj_policy,
> },
> + [NFT_MSG_GETOBJ_RESET] = {
> + .call = nf_tables_getobj,
> + .attr_count = NFTA_OBJ_MAX,
> + .policy = nft_obj_policy,
> + },
> };
>
> static void nft_chain_commit_update(struct nft_trans *trans)
> diff --git a/net/netfilter/nft_counter.c b/net/netfilter/nft_counter.c
> index 6f3dd429f865..f6a02c5071c2 100644
> --- a/net/netfilter/nft_counter.c
> +++ b/net/netfilter/nft_counter.c
> @@ -100,10 +100,10 @@ static void nft_counter_obj_destroy(struct nft_object *obj)
> nft_counter_do_destroy(priv);
> }
>
> -static void nft_counter_fetch(const struct nft_counter_percpu __percpu *counter,
> +static void nft_counter_fetch(struct nft_counter_percpu __percpu *counter,
> struct nft_counter *total)
> {
> - const struct nft_counter_percpu *cpu_stats;
> + struct nft_counter_percpu *cpu_stats;
> u64 bytes, packets;
> unsigned int seq;
> int cpu;
> @@ -122,12 +122,52 @@ static void nft_counter_fetch(const struct nft_counter_percpu __percpu *counter,
> }
> }
>
> +static u64 __nft_counter_reset(u64 *counter)
> +{
> + u64 ret, old;
> +
> + do {
> + old = *counter;
> + ret = cmpxchg64(counter, old, 0);
> + } while (ret != old);
> +
> + return ret;
> +}
> +
> +static void nft_counter_reset(struct nft_counter_percpu __percpu *counter,
> + struct nft_counter *total)
> +{
> + struct nft_counter_percpu *cpu_stats;
> + u64 bytes, packets;
> + unsigned int seq;
> + int cpu;
> +
> + memset(total, 0, sizeof(*total));
> + for_each_possible_cpu(cpu) {
> + bytes = packets = 0;
> +
> + cpu_stats = per_cpu_ptr(counter, cpu);
> + do {
> + seq = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
> + packets += __nft_counter_reset(&cpu_stats->counter.packets);
> + bytes += __nft_counter_reset(&cpu_stats->counter.bytes);
> + } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, seq));
> +
> + total->packets += packets;
> + total->bytes += bytes;
> + }
> +}
> +
> static int nft_counter_do_dump(struct sk_buff *skb,
> - const struct nft_counter_percpu_priv *priv)
> + const struct nft_counter_percpu_priv *priv,
> + bool reset)
> {
> struct nft_counter total;
>
> - nft_counter_fetch(priv->counter, &total);
> + if (reset)
> + nft_counter_reset(priv->counter, &total);
> + else
> + nft_counter_fetch(priv->counter, &total);
>
> if (nla_put_be64(skb, NFTA_COUNTER_BYTES, cpu_to_be64(total.bytes),
> NFTA_COUNTER_PAD) ||
> @@ -141,11 +181,11 @@ static int nft_counter_do_dump(struct sk_buff *skb,
> }
>
> static int nft_counter_obj_dump(struct sk_buff *skb,
> - const struct nft_object *obj)
> + struct nft_object *obj, bool reset)
> {
> - const struct nft_counter_percpu_priv *priv = nft_obj_data(obj);
> + struct nft_counter_percpu_priv *priv = nft_obj_data(obj);
>
> - return nft_counter_do_dump(skb, priv);
> + return nft_counter_do_dump(skb, priv, reset);
> }
>
> static const struct nla_policy nft_counter_policy[NFTA_COUNTER_MAX + 1] = {
> @@ -178,7 +218,7 @@ static int nft_counter_dump(struct sk_buff *skb, const struct nft_expr *expr)
> {
> const struct nft_counter_percpu_priv *priv = nft_expr_priv(expr);
>
> - return nft_counter_do_dump(skb, priv);
> + return nft_counter_do_dump(skb, priv, false);
> }
>
> static int nft_counter_init(const struct nft_ctx *ctx,
> diff --git a/net/netfilter/nft_quota.c b/net/netfilter/nft_quota.c
> index 0d344209803a..5d25f57497cb 100644
> --- a/net/netfilter/nft_quota.c
> +++ b/net/netfilter/nft_quota.c
> @@ -83,12 +83,17 @@ static int nft_quota_obj_init(const struct nlattr * const tb[],
> return nft_quota_do_init(tb, priv);
> }
>
> -static int nft_quota_do_dump(struct sk_buff *skb, const struct nft_quota *priv)
> +static int nft_quota_do_dump(struct sk_buff *skb, struct nft_quota *priv,
> + bool reset)
> {
> u32 flags = priv->invert ? NFT_QUOTA_F_INV : 0;
> u64 consumed;
>
> - consumed = atomic64_read(&priv->consumed);
> + if (reset)
> + consumed = atomic64_xchg(&priv->consumed, 0);
> + else
> + consumed = atomic64_read(&priv->consumed);
> +
> /* Since we inconditionally increment consumed quota for each packet
> * that we see, don't go over the quota boundary in what we send to
> * userspace.
> @@ -108,11 +113,12 @@ static int nft_quota_do_dump(struct sk_buff *skb, const struct nft_quota *priv)
> return -1;
> }
>
> -static int nft_quota_obj_dump(struct sk_buff *skb, const struct nft_object *obj)
> +static int nft_quota_obj_dump(struct sk_buff *skb, struct nft_object *obj,
> + bool reset)
> {
> struct nft_quota *priv = nft_obj_data(obj);
>
> - return nft_quota_do_dump(skb, priv);
> + return nft_quota_do_dump(skb, priv, reset);
> }
>
> static struct nft_object_type nft_quota_obj __read_mostly = {
> @@ -146,9 +152,9 @@ static int nft_quota_init(const struct nft_ctx *ctx,
>
> static int nft_quota_dump(struct sk_buff *skb, const struct nft_expr *expr)
> {
> - const struct nft_quota *priv = nft_expr_priv(expr);
> + struct nft_quota *priv = nft_expr_priv(expr);
>
> - return nft_quota_do_dump(skb, priv);
> + return nft_quota_do_dump(skb, priv, false);
> }
>
> static struct nft_expr_type nft_quota_type;
> --
> 2.1.4
>
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Paul Gortmaker @ 2016-12-09 1:52 UTC (permalink / raw)
To: Kees Cook
Cc: Stephen Rothwell, Arnd Bergmann, Randy Dunlap, Olof Johansson,
Mark Brown, info, Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org
In-Reply-To: <CAGXu5jLEg_4oOyT-rB8QaaYos854xp39_hNf7haNp=8frcPS0Q@mail.gmail.com>
On Thu, Dec 8, 2016 at 2:00 PM, Kees Cook <keescook@google.com> wrote:
> Hi,
>
> I'd like to get the GCC plugins building under
> allyesconfig/allmodconfig for -next soon (with the intention of
> landing the change in v4.11). Specifically, I intend to revert
> a519167e753e ("gcc-plugins: disable under COMPILE_TEST").
If I recall correctly, I noted that the plugins broke the kernel.org
cross compiler toolchains which led to the above disable.
Has that changed? People who have been doing tree wide changes
and have been compiling across a bunch of different arch to ensure
their changes don't cause breakage should not be left out in the cold.
If there are newer toolchains that I can download and use in "toaster"
mode, then great. But I (and many others) don't want to waste a day
trying to make the latest gcc build some obsolete pa-risc architecture
just to support a Kconfig default setting change.
Can you elaborate on the motivation for this change? At the moment
I see more downsides than advantages.
Thanks,
Paul.
--
>
> Right now the plugins are only supported on x86, arm, and arm64,
> though powerpc may happen in either v4.10 or v4.11 as well. This means
> that the autobuilders for these architectures need to have the "gcc
> plugin development" package installed which contains the GCC headers
> needed for the plugins. For Debian/Ubuntu, this is gcc-$N-plugin-dev
> (and for cross compilers: gcc-$N-plugin-dev-$arch-linux-$abi). For
> Fedora, it is gcc-plugin-devel (though I'm not sure the naming for
> cross compilers). Manual builds of compilers should already have these
> headers installed.
>
> The "noisy" plugin, cyc_complexity, is just an example, and I have
> disabled it (which is pending[1] for v4.10). The remaining ones
> (sancov and latent_entropy) are what I'm hoping to see tested
> tree-wide (with the expectation that more are coming down the road:
> initify, randstruct, structleak, constify, ...)
>
> IIUC, the 0day builder already has the headers installed. I tried to
> look through linux-next to find all the other folks that do
> autobuilding on these architectures; apologies if I've missed anyone.
>
> If you have a moment, applying 215e2aa6c024[1] and reverting
> a519167e753e for an allyesconfig/allmodconfig build should let you
> know if things are working correctly with headers installed. If anyone
> sees any problems, please let me know and I can queue up fixes.
>
> Thanks!
>
> -Kees
>
> [1] http://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/commit/?h=for-next/gcc-plugins&id=215e2aa6c024d27cdbe88e2ea88cb59dcab588eb
>
> --
> Kees Cook
> Nexus Security
> --
> To unsubscribe from this list: send the line "unsubscribe linux-next" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* linux-next: build failure after merge of the spi tree
From: Stephen Rothwell @ 2016-12-09 2:32 UTC (permalink / raw)
To: Mark Brown; +Cc: linux-next, linux-kernel, Uwe Kleine-König
Hi Mark,
After merging the spi tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:
drivers/spi/spi-orion.c: In function 'orion_spi_baudrate_set':
drivers/spi/spi-orion.c:192:8: error: 'sspr' undeclared (first use in this function)
if (sspr > 7)
^
Caused by commit
d9fc6452af47 ("spi: mvebu: fix baudrate calculation for armada variants")
I have used the spi tree from next-20161208 for today.
--
Cheers,
Stephen Rothwell
^ permalink raw reply
* linux-next: manual merge of the tip tree with the pci tree
From: Stephen Rothwell @ 2016-12-09 2:38 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Peter Zijlstra,
Bjorn Helgaas
Cc: linux-next, linux-kernel, Christoph Hellwig
Hi all,
Today's linux-next merge of the tip tree got a conflict in:
drivers/pci/msi.c
between commit:
67f1e4473857 ("PCI/MSI: Document new parameter for msi_capability_init()")
from the pci tree and commit:
61e1c5905290 ("PCI/MSI: Propagate IRQ affinity description through the MSI code")
from the tip tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
--
Cheers,
Stephen Rothwell
diff --cc drivers/pci/msi.c
index da95f4e689f2,dd27f73a45fc..000000000000
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@@ -753,14 -754,14 +754,14 @@@ static void msix_program_entries(struc
* @dev: pointer to the pci_dev data structure of MSI-X device function
* @entries: pointer to an array of struct msix_entry entries
* @nvec: number of @entries
- * @affinity: flag to indicate CPU IRQ affinity mask should be set
+ * @affd: Optional pointer to enable automatic affinity assignement
*
* Setup the MSI-X capability structure of device function with a
- * single MSI-X irq. A return of zero indicates the successful setup of
- * requested MSI-X entries with allocated irqs or non-zero for otherwise.
+ * single MSI-X IRQ. A return of zero indicates the successful setup of
+ * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
**/
static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
- int nvec, bool affinity)
+ int nvec, const struct irq_affinity *affd)
{
int ret;
u16 control;
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Kees Cook @ 2016-12-09 4:15 UTC (permalink / raw)
To: Paul Gortmaker, Tony Breeds
Cc: Stephen Rothwell, Arnd Bergmann, Randy Dunlap, Olof Johansson,
Mark Brown, info, Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org
In-Reply-To: <CAP=VYLrOu8Yjzds2cHcii=kX5-i5xV3GUkLR9yhxBdJBw31F0Q@mail.gmail.com>
On Thu, Dec 8, 2016 at 5:52 PM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
> On Thu, Dec 8, 2016 at 2:00 PM, Kees Cook <keescook@google.com> wrote:
>> Hi,
>>
>> I'd like to get the GCC plugins building under
>> allyesconfig/allmodconfig for -next soon (with the intention of
>> landing the change in v4.11). Specifically, I intend to revert
>> a519167e753e ("gcc-plugins: disable under COMPILE_TEST").
>
> If I recall correctly, I noted that the plugins broke the kernel.org
> cross compiler toolchains which led to the above disable.
Do you mean these?
https://www.kernel.org/pub/tools/crosstool/
> Has that changed? People who have been doing tree wide changes
> and have been compiling across a bunch of different arch to ensure
> their changes don't cause breakage should not be left out in the cold.
Totally agreed! :) That's why I want to get the ball rolling now, so
there's plenty of time.
> If there are newer toolchains that I can download and use in "toaster"
> mode, then great. But I (and many others) don't want to waste a day
> trying to make the latest gcc build some obsolete pa-risc architecture
> just to support a Kconfig default setting change.
The good news is, pa-risc doesn't support the plugins yet. It's only
x86, arm, arm64, and soon powerpc. The point being, the less common
architectures won't be hit by this anyway.
Regardless, it would be nice to get a newer set of toolchains up on
kernel.org...
> Can you elaborate on the motivation for this change? At the moment
> I see more downsides than advantages.
Since the plugins run during every object build, getting them running
in the widest possible coverage means we'll shake out bugs more
rapidly.
-Kees
>
> Thanks,
> Paul.
> --
>
>>
>> Right now the plugins are only supported on x86, arm, and arm64,
>> though powerpc may happen in either v4.10 or v4.11 as well. This means
>> that the autobuilders for these architectures need to have the "gcc
>> plugin development" package installed which contains the GCC headers
>> needed for the plugins. For Debian/Ubuntu, this is gcc-$N-plugin-dev
>> (and for cross compilers: gcc-$N-plugin-dev-$arch-linux-$abi). For
>> Fedora, it is gcc-plugin-devel (though I'm not sure the naming for
>> cross compilers). Manual builds of compilers should already have these
>> headers installed.
>>
>> The "noisy" plugin, cyc_complexity, is just an example, and I have
>> disabled it (which is pending[1] for v4.10). The remaining ones
>> (sancov and latent_entropy) are what I'm hoping to see tested
>> tree-wide (with the expectation that more are coming down the road:
>> initify, randstruct, structleak, constify, ...)
>>
>> IIUC, the 0day builder already has the headers installed. I tried to
>> look through linux-next to find all the other folks that do
>> autobuilding on these architectures; apologies if I've missed anyone.
>>
>> If you have a moment, applying 215e2aa6c024[1] and reverting
>> a519167e753e for an allyesconfig/allmodconfig build should let you
>> know if things are working correctly with headers installed. If anyone
>> sees any problems, please let me know and I can queue up fixes.
>>
>> Thanks!
>>
>> -Kees
>>
>> [1] http://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/commit/?h=for-next/gcc-plugins&id=215e2aa6c024d27cdbe88e2ea88cb59dcab588eb
>>
>> --
>> Kees Cook
>> Nexus Security
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-next" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Kees Cook
Nexus Security
^ permalink raw reply
* linux-next: Tree for Dec 9
From: Stephen Rothwell @ 2016-12-09 6:01 UTC (permalink / raw)
To: linux-next; +Cc: linux-kernel
Hi all,
Changes since 20161208:
The pci tree gained a conflict against Linus' tree.
The spi tree gained a build failure so I used the version from
next-20161208.
The tip tree gained a conflict against the pci tree.
Non-merge commits (relative to Linus' tree): 10377
9526 files changed, 656932 insertions(+), 222564 deletions(-)
----------------------------------------------------------------------------
I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ). If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one. You should use "git fetch" and checkout or reset to the new
master.
You can see which trees have been included by looking in the Next/Trees
file in the source. There are also quilt-import.log and merge.log
files in the Next directory. Between each merge, the tree was built
with a ppc64_defconfig for powerpc and an allmodconfig (with
CONFIG_BUILD_DOCSRC=n) for x86_64, a multi_v7_defconfig for arm and a
native build of tools/perf. After the final fixups (if any), I do an
x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
(with KALLSYMS_EXTRA_PASS=1) and pseries_le_defconfig and i386, sparc
and sparc64 defconfig.
Below is a summary of the state of the merge.
I am currently merging 245 trees (counting Linus' and 35 trees of bug
fix patches pending for the current merge release).
Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .
Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.
Thanks to Randy Dunlap for doing many randconfig builds. And to Paul
Gortmaker for triage and bug fixes.
--
Cheers,
Stephen Rothwell
$ git checkout master
$ git reset --hard stable
Merging origin/master (318c8932ddec Merge branch 'akpm' (patches from Andrew))
Merging fixes/master (30066ce675d3 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6)
Merging kbuild-current/rc-fixes (152b695d7437 builddeb: fix cross-building to arm64 producing host-arch debs)
Merging arc-current/for-curr (7badf6fefca8 ARC: axs10x: really enable ARC PGU)
Merging arm-current/fixes (8478132a8784 Revert "arm: move exports to definitions")
Merging m68k-current/for-linus (7e251bb21ae0 m68k: Fix ndelay() macro)
Merging metag-fixes/fixes (35d04077ad96 metag: Only define atomic_dec_if_positive conditionally)
Merging powerpc-fixes/fixes (dadc4a1bb9f0 powerpc/64: Fix placement of .text to be immediately following .head.text)
Merging sparc/master (bc3913a5378c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc)
Merging net/master (1a31cc86ef3c driver: ipvlan: Unlink the upper dev when ipvlan_link_new failed)
Merging ipsec/master (bc3913a5378c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc)
Merging netfilter/master (7bbf91ce27dd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec)
Merging ipvs/master (9b6c14d51bd2 net: tcp response should set oif only if it is L3 master)
Merging wireless-drivers/master (fcd2042e8d36 mwifiex: printk() overflow with 32-byte SSIDs)
Merging mac80211/master (9590112241ba tipc: fix link statistics counter errors)
Merging sound-current/for-linus (f73cd43ac3b4 ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO)
Merging pci-current/for-linus (e42010d8207f PCI: Set Read Completion Boundary to 128 iff Root Port supports it (_HPX))
Merging driver-core.current/driver-core-linus (a25f0944ba9b Linux 4.9-rc5)
Merging tty.current/tty-linus (a909d3e63699 Linux 4.9-rc3)
Merging usb.current/usb-linus (e5517c2a5a49 Linux 4.9-rc7)
Merging usb-gadget-fixes/fixes (05e78c6933d6 usb: gadget: f_fs: fix wrong parenthesis in ffs_func_req_match())
Merging usb-serial-fixes/usb-linus (46490c347df4 USB: serial: option: add dlink dwm-158)
Merging usb-chipidea-fixes/ci-for-usb-stable (c7fbb09b2ea1 usb: chipidea: move the lock initialization to core file)
Merging phy/fixes (4320f9d4c183 phy: sun4i: check PMU presence when poking unknown bit of pmu)
Merging staging.current/staging-linus (a25f0944ba9b Linux 4.9-rc5)
Merging char-misc.current/char-misc-linus (a25f0944ba9b Linux 4.9-rc5)
Merging input-current/for-linus (2425f1808123 Input: change KEY_DATA from 0x275 to 0x277)
Merging crypto-current/master (678b5c6b22fe crypto: algif_aead - fix uninitialized variable warning)
Merging ide/master (797cee982eef Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit)
Merging vfio-fixes/for-linus (05692d7005a3 vfio/pci: Fix integer overflows, bitmask check)
Merging kselftest-fixes/fixes (1001354ca341 Linux 4.9-rc1)
Merging backlight-fixes/for-backlight-fixes (68feaca0b13e backlight: pwm: Handle EPROBE_DEFER while requesting the PWM)
Merging ftrace-fixes/for-next-urgent (6224beb12e19 tracing: Have branch tracer use recursive field of task struct)
Merging mfd-fixes/for-mfd-fixes (1a41741fd60b mfd: wm8994-core: Don't use managed regulator bulk get API)
Merging drm-intel-fixes/for-linux-next-fixes (3e5de27e940d Linux 4.9-rc8)
Merging drm-misc-fixes/for-linux-next-fixes (e94bd1736f1f drm: Don't call drm_for_each_crtc with a non-KMS driver)
Merging kbuild/for-next (8549430410ed Merge branch 'kbuild/kbuild' into kbuild/for-next)
Merging asm-generic/master (de4be6b87b6b asm-generic: page.h: fix comment typo)
CONFLICT (content): Merge conflict in include/asm-generic/percpu.h
Merging arc/for-next (e5517c2a5a49 Linux 4.9-rc7)
Merging arm/for-next (b4871f457978 Merge branch 'syscalls' into for-next)
Merging arm-perf/for-next/perf (f43365ee17f8 selftests: arm64: add test for unaligned/inexact watchpoint handling)
Merging arm-soc/for-next (f3f78e387770 Merge branch 'fixes' into for-next)
Merging amlogic/for-next (b21a5fc2bb8a Merge branch 'v4.10/defconfig' into tmp/aml-rebuild)
Merging at91/at91-next (0f59c948faed Merge tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into at91-next)
Merging bcm2835/for-next (ec09fdf764ee Merge branch anholt/bcm2835-defconfig-64-next into for-next)
Merging berlin/berlin/for-next (5153351425c9 Merge branch 'berlin/dt' into berlin/for-next)
Merging cortex-m/for-next (f719a0d6a854 ARM: efm32: switch to vendor,device compatible strings)
Merging imx-mxs/for-next (242a001e48b7 Merge branch 'zte/dt64' into for-next)
Merging keystone/next (fb2a68db621a Merge branch 'for_4.9/keystone_dts' into next)
Merging mvebu/for-next (5cfcfe81e33b Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (4aecea63ed81 Merge branch 'omap-for-v4.10/dt' into for-next)
Merging omap-pending/for-next (c20c8f750d9f ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence)
Merging qcom/for-next (bbf9c90768f9 Merge tag 'qcom-dts-for-4.10-2' into all-for-4.10-part2)
Merging renesas/next (411253aa4a68 Merge branch 'fixes-for-v4.10' into next)
Merging rockchip/for-next (7e02e53c6ecf Merge branch 'v4.10-clk/next' into for-next)
Merging rpi/for-rpi-next (bc0195aad0da Linux 4.2-rc2)
Merging samsung/for-next (1001354ca341 Linux 4.9-rc1)
Merging samsung-krzk/for-next (4ed7dc2785f8 Merge branch 'next/dt64' into for-next)
Merging tegra/for-next (e8d16d40e269 Merge branch for-4.10/i2c into for-next)
Merging arm64/for-next/core (cd9e1927a525 arm64: Work around broken .inst when defective gas is detected)
CONFLICT (content): Merge conflict in arch/arm64/include/asm/cpufeature.h
Applying: arm64: merge fix for code movement to cpucaps.h
Merging clk/clk-next (e3f4358e234e Merge tag 'v4.10-rockchip-clk2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-next)
CONFLICT (content): Merge conflict in drivers/soc/renesas/Makefile
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/renesas/r8a7796.dtsi
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/renesas/r8a7795.dtsi
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-rcar-gen2.c
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7794.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7793.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7792.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7791.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7790.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7779.dtsi
Merging blackfin/for-linus (391e74a51ea2 eth: bf609 eth clock: add pclk clock for stmmac driver probe)
CONFLICT (content): Merge conflict in arch/blackfin/mach-common/pm.c
Merging c6x/for-linux-next (ca3060d39ae7 c6x: Use generic clkdev.h header)
Merging cris/for-next (8f50f2a1b46a cris: No need to append -O2 and $(LINUXINCLUDE))
Merging h8300/h8300-next (58c57526711f h8300: Add missing include file to asm/io.h)
Merging hexagon/linux-next (02cc2ccfe771 Revert "Hexagon: fix signal.c compile error")
Merging ia64/next (fbb0e4da96f4 ia64: salinfo: use a waitqueue instead a sema down/up combo)
Merging m68k/for-next (73367dc57468 m68k/defconfig: Update defconfigs for v4.9-rc1)
Merging m68knommu/for-next (07c65a665b8d m68knommu: AMCORE board, add iMX i2c support)
Merging metag/for-next (f5d163aad31e metag: perf: fix build on Meta1)
Merging microblaze/next (52e9e6e05617 microblaze: pci: export isa_io_base to fix link errors)
Merging mips/mips-for-linux-next (ecf41b56e967 Merge branch '4.9-fixes' into mips-for-linux-next)
Merging nios2/for-next (94b0f3d623a0 nios2: add screen_info)
Merging openrisc/for-next (56cb5749b239 openrisc: prevent VGA console, fix builds)
Merging parisc-hd/for-next (23e95afae7ed parisc: Enhance CPU detection code on PAT machines)
Merging powerpc/next (ff45000fcb56 powerpc/boot: Request no dynamic linker for boot wrapper)
CONFLICT (content): Merge conflict in arch/powerpc/include/asm/asm-prototypes.h
Merging fsl/next (d7544424169e soc/fsl/bman: Use resource_size instead of computation)
Merging mpc5xxx/next (39e69f55f857 powerpc: Introduce the use of the managed version of kzalloc)
Merging s390/features (e32eae10e589 s390/sysinfo: show partition extended name and UUID if available)
Merging sparc-next/master (9f935675d41a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input)
Merging sh/for-next (e61c10e468a4 sh: add device tree source for J2 FPGA on Mimas v2 board)
Merging tile/master (bf55d575234b tile: migrate exception table users off module.h and onto extable.h)
Merging uml/linux-next (dad223284407 um: Don't discard .text.exit section)
Merging unicore32/unicore32 (bc27113620ca unicore32-oldabi: add oldabi syscall interface)
Merging xtensa/xtensa-for-next (03eae3aca94c xtensa: fix screen_info, clean up unused declarations in setup.c)
Merging befs/for-next (f7b75aaed5ef befs: add NFS export support)
Merging btrfs/next (8b8b08cbfb90 Btrfs: fix delalloc accounting after copy_from_user faults)
Merging btrfs-kdave/for-next (986ee488b9fd Merge branch 'for-next-next-4.9-20161125' into for-next-20161125)
Merging ceph/master (c3f4688a08fd ceph: don't set req->r_locked_dir in ceph_d_revalidate)
Merging cifs/for-next (96a988ffeb90 CIFS: Fix a possible double locking of mutex during reconnect)
Merging configfs/for-next (e16769d4bca6 fs: configfs: don't return anything from drop_link)
Merging ecryptfs/next (be280b25c328 ecryptfs: remove private bin2hex implementation)
Merging ext3/for_next (b46dc033818d ext2: reject inodes with negative size)
Merging ext4/dev (d15e27c443d4 ext4: remove another test in ext4_alloc_file_blocks())
Merging f2fs/dev (0002b61bdaac f2fs: return AOP_WRITEPAGE_ACTIVATE for writepage)
Merging freevxfs/for-next (bf1bb4b460c8 freevxfs: update Kconfig information)
Merging fscache/fscache (d52bd54db8be Merge branch 'akpm' (patches from Andrew))
Merging fuse/for-next (c01638f5d919 fuse: fix clearing suid, sgid for chown())
Merging gfs2/for-next (a3443cda5588 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security)
Merging jfs/jfs-next (362ad5d58e9a fs: jfs: Replace CURRENT_TIME_SEC by current_time())
Merging nfs/linux-next (2f065ddb6419 pNFS: Layoutreturn must free the layout after the layout-private data)
Merging nfsd/nfsd-next (3eb15f282846 sunrpc: use DEFINE_SPINLOCK())
Merging orangefs/for-next (19ff7fcc76e6 orangefs: add .owner to debugfs file_operations)
Merging overlayfs/overlayfs-next (0e7e8fd1c78d ovl: fix return value of ovl_fill_super)
Merging v9fs/for-next (a333e4bf2556 fs/9p: use fscache mutex rather than spinlock)
Merging ubifs/linux-next (a00052a296e5 ubifs: Fix regression in ubifs_readdir())
Merging xfs/for-next (a444d72e6090 Merge branch 'xfs-4.10-misc-fixes-3' into for-next)
CONFLICT (content): Merge conflict in include/linux/iomap.h
Merging file-locks/linux-next (07d9a380680d Linux 4.9-rc2)
Merging vfs/for-next (b26b5ef5ec7e Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging vfs-jk/vfs (030b533c4fd4 fs: Avoid premature clearing of capabilities)
Merging vfs-miklos/next (c8d2bc9bc39e Linux 4.8)
Merging pci/next (ba6e38729dda Merge branch 'pci/host-vmd' into next)
CONFLICT (content): Merge conflict in drivers/pci/msi.c
Merging pstore/for-next/pstore (fc46d4e453f5 ramoops: add pdata NULL check to ramoops_probe)
Merging hid/for-next (9700925ff92d Merge branch 'for-4.10/intel-ish' into for-next)
Merging i2c/i2c/for-next (7448c4ee18e5 Merge branch 'i2c/for-current' into i2c/for-next)
Merging jdelvare-hwmon/master (08d27eb20666 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging dmi/master (c8d2bc9bc39e Linux 4.8)
Merging hwmon-staging/hwmon-next (69c18f16560d hwmon: (gl520sm) Fix overflows seen when writing into limit attributes)
Merging jc_docs/docs-next (9e22ff439fa2 Update Documentation/00-INDEX)
Merging v4l-dvb/master (bf0396ea4727 Merge branch 'patchwork' into to_next)
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg left in tree.
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg left in tree.
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg left in tree.
$ git rm -f Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg
Merging pm/linux-next (7dc1d22a9031 Merge branch 'pm-core' into linux-next)
Merging idle/next (306899f94804 x86 tsc: Add the Intel Denverton Processor to native_calibrate_tsc())
Merging thermal/next (9245ac20d829 Merge branches 'thermal-core', 'thermal-intel', 'thermal-soc-fixes' and 'thermal-reorg' into next)
Merging thermal-soc/next (6ee459f5f967 devfreq_cooling: pass a pointer to devfreq in the power model callbacks)
Merging ieee1394/for-next (e9300a4b7bba firewire: net: fix fragmented datagram_size off-by-one)
Merging dlm/next (aa9f1012858b dlm: don't specify WQ_UNBOUND for the ast callback workqueue)
Merging swiotlb/linux-next (d29fa0cb7602 swiotlb: Minor fix-ups for DMA_ATTR_SKIP_CPU_SYNC support)
Merging net-next/master (846cc1231a0a net: socket: preferred __aligned(size) for control buffer)
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2.dtsi
Merging ipsec-next/master (d4aea20d889e tun: Use netif_receive_skb instead of netif_rx)
Merging netfilter-next/master (73c25fb13933 netfilter: nft_quota: allow to restore consumed quota)
Merging ipvs-next/master (8d8e20e2d7bb ipvs: Decrement ttl)
Merging wireless-drivers-next/master (d15697de60db adm80211: add checks for dma mapping errors)
Merging bluetooth/master (107bc0aa95ca Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next)
Merging mac80211-next/master (8e9924e4ea1c mac80211: Show pending txqlen in debugfs.)
Merging rdma/for-next (e37a79e5d4ca net/mlx5e: Add tc support for FWD rule with counter)
Merging rdma-leon/rdma-next (b66df7cc9ee7 Merge branch 'topic/shared-for-4.10' into rdma-next)
Merging rdma-leon-test/testing/rdma-next (a909d3e63699 Linux 4.9-rc3)
Merging mtd/master (0e2ce9d3fcba Merge tag 'nand/fixes-for-4.9-rc3' of github.com:linux-nand/linux)
Merging l2-mtd/master (445caaa20c4d mtd: Allocate bdi objects dynamically)
Merging nand/nand/next (8fcfba072420 mtd: nand: tango: Use nand_to_mtd() instead of directly accessing chip->mtd)
Merging crypto/master (04b46fbdea5e crypto: testmgr - fix overlap in chunked tests again)
Merging drm/drm-next (8166255704ed drm: mxsfb: Select DRM_PANEL)
Merging drm-panel/drm/panel/for-next (8c31f6034b24 drm/panel: simple: Add support for AUO G185HAN01)
Merging drm-intel/for-linux-next (7a9e10253e9e drm/i915: Move priority bumping for flips earlier)
Merging drm-tegra/drm/tegra/for-next (585ee0f27ef7 drm/tegra: Set sgt pointer in BO pin)
Merging drm-misc/for-linux-next (72a93e8dd52c drm: Take ownership of the dmabuf->obj when exporting)
Merging drm-exynos/exynos-drm/for-next (7d1e04231461 Merge tag 'usercopy-v4.8-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux)
Merging drm-msm/msm-next (2401a0084614 drm/msm: gpu: Add support for the GPMU)
Merging hdlcd/for-upstream/hdlcd (747e5a5ff2a2 drm: hdlcd: Fix cleanup order)
Merging mali-dp/for-upstream/mali-dp (8e3eb71c80ad drm/arm/malidp: Fix possible dereference of NULL)
Merging sunxi/sunxi/for-next (63e8e44adfdc Merge branch 'sunxi/dt-late-for-4.10' into sunxi/for-next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/sun8i-h3.dtsi
Merging kspp/for-next/kspp (68fdc678df46 MAINTAINERS: add GCC plugins Makefile)
Merging kconfig/for-next (5bcba792bb30 localmodconfig: Fix whitespace repeat count after "tristate")
Merging regmap/for-next (5c55e10a1934 Merge remote-tracking branch 'regmap/topic/lzo' into regmap-next)
Merging sound/for-next (048ea6dfbe94 ALSA: cs46xx: add a new line)
Merging sound-asoc/for-next (2ee1cc54b61d Merge remote-tracking branches 'asoc/topic/wm9712', 'asoc/topic/wm9713' and 'asoc/topic/zte' into asoc-next)
Merging modules/modules-next (4d217a5adccf module: fix DEBUG_SET_MODULE_RONX typo)
Merging input/next (951a086437b7 Input: lpc32xx-keys - fix invalid error handling of a requested irq)
Merging block/for-next (2e98ca67a70f Merge branch 'for-4.10/block' into for-next)
CONFLICT (content): Merge conflict in fs/f2fs/segment.c
Applying: iomap: fix up for blk_poll and WRITE_ODIRECT change
Merging lightnvm/for-next (a5f78b7f7dd1 Merge branch 'for-4.10/block' into for-next)
Merging device-mapper/for-next (e99dda8fc456 dm cache policy smq: use hash_32() instead of hash_32_generic())
Merging pcmcia/master (e8e68fd86d22 pcmcia: do not break rsrc_nonstatic when handling anonymous cards)
Merging mmc/next (ff6af28faff5 mmc: sdhci-cadence: add Cadence SD4HC support)
CONFLICT (content): Merge conflict in drivers/mmc/card/block.c
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
Merging kgdb/kgdb-next (7a6653fca500 kdb: Fix handling of kallsyms_symbol_next() return value)
Merging md/for-next (3c6edc66085e md/r5cache: after recovery, increase journal seq by 10000)
CONFLICT (content): Merge conflict in drivers/md/raid5-cache.c
CONFLICT (content): Merge conflict in drivers/md/md.c
Merging mfd/for-mfd-next (93559191e71b mfd: tps65217: Support an interrupt pin as the system wakeup)
CONFLICT (content): Merge conflict in drivers/mfd/wm8994-core.c
Merging backlight/for-backlight-next (0c9501f823a4 backlight: pwm_bl: Handle gpio that can sleep)
Merging battery/for-next (6480af4915d6 power_supply: wm97xx_battery: use power_supply_get_drvdata)
Merging omap_dss2/for-next (c456a2f30de5 video: smscufx: remove unused variable)
Merging regulator/for-next (99b9bc312cb5 Merge remote-tracking branches 'regulator/topic/tps65086' and 'regulator/topic/twl' into regulator-next)
Merging security/next (50523a29d900 Yama: allow access for the current ptrace parent)
Merging integrity/next (b4bfec7f4a86 security/integrity: Harden against malformed xattrs)
Merging keys/keys-next (ed51e44e914c Merge branch 'keys-asym-keyctl' into keys-next)
Merging selinux/next (8591af6dc456 selinux: add security in-core xattr support for tracefs)
Merging tpmdd/next (9430066a15d6 tpm: adjust return value of tpm_read_log)
Merging watchdog/master (39487f6688a5 watchdog: imx2_wdt: add pretimeout function support)
Merging iommu/next (1465f481460c Merge branches 'arm/mediatek', 'arm/smmu', 'x86/amd', 's390', 'core' and 'arm/exynos' into next)
Merging dwmw2-iommu/master (910170442944 iommu/vt-d: Fix PASID table allocation)
Merging vfio/next (2b8bb1d771f7 vfio iommu type1: Fix size argument to vfio_find_dma() in pin_pages/unpin_pages)
Merging trivial/for-next (380cc42d5a6c nvme: add missing \n to end of dev_warn message)
Merging audit/next (5b52b1d37a6f netns: avoid disabling irq for netns id)
CONFLICT (content): Merge conflict in net/core/net_namespace.c
CONFLICT (content): Merge conflict in include/uapi/linux/audit.h
Merging devicetree/for-next (3c263bc7b727 add bindings document for altera freeze bridge)
Merging mailbox/mailbox-for-next (16ae16c6e561 Merge tag 'mmc-v4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc)
Merging spi/for-next (2bc408e5544b Merge remote-tracking branches 'spi/topic/spidev', 'spi/topic/sunxi', 'spi/topic/ti-qspi', 'spi/topic/topcliff-pch' and 'spi/topic/xlp' into spi-next)
$ git reset --hard HEAD^
Merging next-20161208 version of spi
Merging tip/auto-latest (d5b49bf37591 Merge branch 'x86/urgent')
CONFLICT (content): Merge conflict in drivers/pci/msi.c
CONFLICT (content): Merge conflict in drivers/net/ethernet/amd/Kconfig
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_gem_shrinker.c
Applying: net: busy-poll: fix up for cpu_relax_lowlatency() removal
Merging clockevents/clockevents/next (f947ee147e08 clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map())
Merging edac/linux_next (a2e4c787f75b EDAC: Document HW_EVENT_ERR_DEFERRED type)
Merging edac-amd/for-next (0de2788447b6 EDAC, amd64: Fix improper return value)
Merging irqchip/irqchip/for-next (0ccb54a7dba0 Merge branch 'irqchip/core' into irqchip/for-next)
Merging ftrace/for-next (38e11df13429 ring-buffer: Force rb_end_commit() and rb_set_commit_to_write() inline)
Merging rcu/rcu/next (278c19fe5bc7 rcu: Adjust FQS offline checks for exact online-CPU detection)
Merging kvm/linux-next (36da91bdf568 KVM: x86: Handle the kthread worker using the new API)
CONFLICT (content): Merge conflict in arch/x86/kvm/cpuid.c
Merging kvm-arm/next (fd5ebf99f814 arm/arm64: KVM: Clean up useless code in kvm_timer_enable)
Merging kvm-mips/next (07d9a380680d Linux 4.9-rc2)
Merging kvm-ppc/kvm-ppc-next (e34af7849014 KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h)
Merging kvms390/next (e1788bb995be KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load)
Merging xen-tip/linux-next (577f79e411b7 xen/pci: Bubble up error and fix description.)
Merging percpu/for-next (3ca45a46f8af percpu: ensure the requested alignment is power of two)
Merging workqueues/for-next (8bc4a0445596 Merge branch 'for-4.9' into for-4.10)
Merging drivers-x86/for-next (401df5ace9d6 intel_pmc_core: Add KBL CPUID support)
Merging chrome-platform/for-next (31b764171cb5 Revert "platform/chrome: chromeos_laptop: Add Leon Touch")
Merging hsi/for-next (7ac5d7b1a125 HSI: hsi_char.h: use __u32 from linux/types.h)
Merging leds/for-next (44b3e31d540e leds: pca955x: Add ACPI support)
Merging ipmi/for-next (f0cee6244aa1 ipmi_ssif: create hardware-independent softdep for ipmi_devintf)
Merging driver-core/driver-core-next (64df1148876e driver core: Silence device links sphinx warning)
Merging tty/tty-next (a9b01b5823f7 serial: 8250_mid fix calltrace when hotplug 8250 serial controller)
CONFLICT (modify/delete): Documentation/VGA-softcursor.txt deleted in HEAD and modified in tty/tty-next. Version tty/tty-next of Documentation/VGA-softcursor.txt left in tree.
$ git rm -f Documentation/VGA-softcursor.txt
Merging usb/usb-next (5c5a94a50fb8 USB: OHCI: nxp: fix code warnings)
Merging usb-gadget/next (d5c024f3761d usb: gadget: serial: fix possible Oops caused by calling kthread_stop(NULL))
Merging usb-serial/usb-next (3c3dd1e058cb USB: serial: kl5kusb105: abort on open exception path)
Merging usb-chipidea-next/ci-for-usb-next (223e92311583 usb: chipdata: Replace the extcon API)
Merging phy-next/next (5e253dfbdbea phy: rockchip-inno-usb2: select USB_COMMON)
Merging staging/staging-next (859d8e458746 staging/lustre/o2iblnd: Fix misspelled attemps->attempts)
CONFLICT (content): Merge conflict in drivers/staging/wlan-ng/p80211netdev.c
CONFLICT (content): Merge conflict in drivers/staging/unisys/include/iochannel.h
CONFLICT (modify/delete): drivers/staging/slicoss/slicoss.c deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/slicoss/slicoss.c left in tree.
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/i2c/trivial-devices.txt
$ git rm -f drivers/staging/slicoss/slicoss.c
Merging char-misc/char-misc-next (2eb72d4b790c Tools: hv: kvp: configurable external scripts path)
CONFLICT (content): Merge conflict in drivers/lightnvm/core.c
Merging extcon/extcon-next (669ae5dabe7a extcon: palmas: Check the parent instance to prevent the NULL)
Merging slave-dma/next (28ea71f33919 Merge branch 'for-linus' into next)
Merging cgroup/for-next (7c0dce2f2c43 cpuset: Remove unused 'struct cpuset*' variable)
Merging scsi/for-next (a47b7c1ee0ff Merge branch 'misc' into for-next)
CONFLICT (content): Merge conflict in drivers/scsi/ufs/ufshcd.c
Merging scsi-mkp/for-next (ae2aae242198 scsi: aacraid: remove wildcard for series 9 controllers)
Merging target-updates/for-next (291e3e51a34d target: fix spelling mistake: "limitiation" -> "limitation")
Merging target-merge/for-next-merge (2994a7518317 cxgb4: update Kconfig and Makefile)
Merging libata/for-next (81cdffc2a408 Merge branch 'for-4.9-fixes' into for-next)
CONFLICT (content): Merge conflict in block/blk-core.c
Merging binfmt_misc/for-next (4af75df6a410 binfmt_misc: add F option description to documentation)
Merging vhost/linux-next (75bfa81bf089 virtio_ring: mark vring_dma_dev inline)
Merging rpmsg/for-next (b1cdf89566a3 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (acf1fcf77247 Merge branch 'thread-irq-simpler' into devel)
Merging pinctrl/for-next (f82144450874 pinctrl: sx150x: use new nested IRQ infrastructure)
Merging dma-mapping/dma-mapping-next (1001354ca341 Linux 4.9-rc1)
Merging pwm/for-next (fdd3ff4db177 Merge branch 'for-4.10/drivers' into for-next)
Merging dma-buf/for-next (194cad44c4e1 dma-buf/sync_file: improve Kconfig description for Sync Files)
CONFLICT (content): Merge conflict in drivers/dma-buf/Kconfig
Merging userns/for-next (fee1df54b648 inotify: Convert to using per-namespace limits)
Merging ktest/for-next (2dcd0af568b0 Linux 4.6)
Merging random/dev (59b8d4f1f5d2 random: use for_each_online_node() to iterate over NUMA nodes)
Merging aio/master (b562e44f507e Linux 4.5)
Merging kselftest/next (c461265679ce kselftests: Exercise hw-independent mock tests for i915.ko)
Merging y2038/y2038 (549eb7b22e24 AFS: Correctly use 64-bit time for UUID)
CONFLICT (content): Merge conflict in fs/afs/main.c
Merging luto-misc/next (2dcd0af568b0 Linux 4.6)
Merging borntraeger/linux-next (e76d21c40bd6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging livepatching/for-next (2992ef29ae01 livepatch/module: make TAINT_LIVEPATCH module-specific)
Merging coresight/next (e615a9a8e481 coresight: perf: Add a missing call to etm_free_aux)
Merging rtc/rtc-next (05d226088a6b rtc: mcp795: Fix whitespace and indentation.)
Merging hwspinlock/for-next (bd5717a4632c hwspinlock: qcom: Correct msb in regmap_field)
Merging nvdimm/libnvdimm-for-next (325896ffdf90 device-dax: fix private mapping restriction, permit read-only)
Merging dax-misc/dax-misc (4d9a2c874667 dax: Remove i_mmap_lock protection)
Merging akpm-current/current (51a0e856fadb ipc/shm.c: coding style fixes)
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in fs/dax.c
$ git checkout -b akpm remotes/origin/akpm/master
Applying: posix-timers: give lazy compilers some help optimizing code away
Applying: drivers/net/wireless/intel/iwlwifi/dvm/calib.c: simplfy min() expression
Applying: ktest.pl: fix english
Applying: kernel/watchdog.c: move shared definitions to nmi.h
Applying: kernel/watchdog.c: move hardlockup detector to separate file
Applying: sparc: implement watchdog_nmi_enable and watchdog_nmi_disable
Applying: ipc/sem: do not call wake_sem_queue_do() prematurely
Applying: ipc/sem: rework task wakeups
Applying: ipc/sem: merge fix for WAKE_Q to DEFINE_WAKE_Q rename
Applying: ipc-sem-rework-task-wakeups-checkpatch-fixes
Applying: ipc/sem: optimize perform_atomic_semop()
Applying: ipc/sem: ensure we left shift a ULL rather than a 32 bit integer
Applying: ipc-sem-optimize-perform_atomic_semop-checkpatch-fixes
Applying: ipc/sem: explicitly inline check_restart
Applying: ipc/sem: use proper list api for pending_list wakeups
Applying: ipc/sem: simplify wait-wake loop
Applying: ipc-sem-simplify-wait-wake-loop-checkpatch-fixes
Applying: ipc/sem: avoid idr tree lookup for interrupted semop
Applying: mm: add locked parameter to get_user_pages_remote()
Applying: vfio iommu type1: merge fix for get_user_pages_remote API change
Applying: mm: unexport __get_user_pages_unlocked()
Applying: mm-unexport-__get_user_pages_unlocked-checkpatch-fixes
Applying: mm: join struct fault_env and vm_fault
Applying: mm: use vmf->address instead of of vmf->virtual_address
Applying: mm: use pgoff in struct vm_fault instead of passing it separately
Applying: mm: use passed vm_fault structure in __do_fault()
Applying: mm: trim __do_fault() arguments
Applying: mm: use passed vm_fault structure for in wp_pfn_shared()
Applying: mm: add orig_pte field into vm_fault
Applying: mm: allow full handling of COW faults in ->fault handlers
Applying: mm: factor out functionality to finish page faults
Applying: mm: move handling of COW faults into DAX code
Applying: mm: factor out common parts of write fault handling
Applying: mm: pass vm_fault structure into do_page_mkwrite()
Applying: mm: use vmf->page during WP faults
Applying: mm: move part of wp_page_reuse() into the single call site
Applying: mm: provide helper for finishing mkwrite faults
Applying: mm: change return values of finish_mkwrite_fault()
Applying: mm: export follow_pte()
Applying: dax: make cache flushing protected by entry lock
Applying: dax: protect PTE modification on WP fault by radix tree entry lock
Applying: dax: clear dirty entry tags on cache flush
Applying: powerpc: ima: get the kexec buffer passed by the previous kernel
Applying: ima: on soft reboot, restore the measurement list
Applying: ima: permit duplicate measurement list entries
Applying: ima: maintain memory size needed for serializing the measurement list
Applying: powerpc: ima: send the kexec buffer to the next kernel
Applying: ima: on soft reboot, save the measurement list
Applying: ima: store the builtin/custom template definitions in a list
Applying: ima: support restoring multiple template formats
Applying: ima: define a canonical binary_runtime_measurements list format
Applying: ima: platform-independent hash value
Applying: vfs: change d_manage() to take a struct path
Applying: vfs: add path_is_mountpoint() helper
Applying: vfs: fix boolreturn.cocci warnings
Applying: vfs: add path_has_submounts()
Applying: autofs: change autofs4_expire_wait() to take struct path
Applying: autofs: change autofs4_wait() to take struct path
Applying: autofs: use path_is_mountpoint() to fix unreliable d_mountpoint() checks
Applying: autofs: use path_has_submounts() to fix unreliable have_submount() checks
Applying: vfs: remove unused have_submounts() function
Applying: vfs: merge path_is_mountpoint() and path_is_mountpoint_rcu()
Applying: autofs: make struct path const in autofs4_dir_open()
Applying: autofs: change struct path to const in autofs4_expire_wait() and autofs4_wait()
Applying: vfs: change struct path to const in d_manage()
Applying: vfs: constify path parameter of path_has_submounts()
Applying: autofs: don't hold spinlock over direct mount expire
Applying: vfs: make may_umount_tree() mount propagation aware
Applying: vfs-make-may_umount_tree-mount-propogation-aware-checkpatch-fixes
Applying: tools: add WARN_ON_ONCE
Applying: radix tree test suite: allow GFP_ATOMIC allocations to fail
Applying: radix tree test suite: track preempt_count
Applying: radix tree test suite: free preallocated nodes
Applying: radix tree test suite: make runs more reproducible
Applying: radix tree test suite: iteration test misuses RCU
Applying: radix tree test suite: benchmark for iterator
Applying: radix tree test suite: use rcu_barrier
Applying: radix tree test suite: handle exceptional entries
Applying: radix tree test suite: record order in each item
Applying: tools: add more bitmap functions
Applying: radix tree test suite: use common find-bit code
Applying: radix-tree: fix typo
Applying: radix-tree: move rcu_head into a union with private_list
Applying: radix-tree: create node_tag_set()
Applying: radix-tree: make radix_tree_find_next_bit more useful
Applying: radix-tree: improve dump output
Applying: btrfs: fix race in btrfs_free_dummy_fs_info()
Applying: radix-tree: improve multiorder iterators
Applying: radix-tree: delete radix_tree_locate_item()
Applying: radix-tree: delete radix_tree_range_tag_if_tagged()
Applying: radix-tree: add radix_tree_join
Applying: radix-tree: add radix_tree_split
Applying: radix-tree: add radix_tree_split_preload()
Applying: radix-tree: fix replacement for multiorder entries
Applying: radix tree test suite: check multiorder iteration
Applying: idr: add ida_is_empty
Applying: tpm: use idr_find(), not idr_find_slowpath()
Applying: rxrpc: abstract away knowledge of IDR internals
Applying: idr: reduce the number of bits per level from 8 to 6
Applying: radix tree test suite: add some more functionality
Applying: reimplement IDR and IDA using the radix tree
Merging akpm/master (59f68472b56a reimplement IDR and IDA using the radix tree)
^ permalink raw reply
* next-20161209 build: 0 failures 2 warnings (next-20161209)
From: Build bot for Mark Brown @ 2016-12-09 9:15 UTC (permalink / raw)
To: kernel-build-reports, linaro-kernel, linux-next
Tree/Branch: next-20161209
Git describe: next-20161209
Commit: 4a71e4389b Add linux-next specific files for 20161209
Build Time: 98 min 43 sec
Passed: 10 / 10 (100.00 %)
Failed: 0 / 10 ( 0.00 %)
Errors: 0
Warnings: 2
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
1 warnings 0 mismatches : arm64-allmodconfig
2 warnings 0 mismatches : arm-allmodconfig
-------------------------------------------------------------------------------
Warnings Summary: 2
2 ../include/uapi/linux/byteorder/big_endian.h:34:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/net/ethernet/apm/xgene/xgene_enet_cle.c:836:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../include/uapi/linux/byteorder/big_endian.h:34:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../drivers/net/ethernet/apm/xgene/xgene_enet_cle.c:836:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/uapi/linux/byteorder/big_endian.h:34:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allnoconfig
x86_64-allnoconfig
arm-multi_v4t_defconfig
arm64-defconfig
^ permalink raw reply
* Re: [PATCH 37/50] netfilter: nf_tables: atomic dump and reset for stateful objects
From: Pablo Neira Ayuso @ 2016-12-09 10:24 UTC (permalink / raw)
To: Paul Gortmaker
Cc: netfilter-devel, David Miller, netdev, linux-next@vger.kernel.org
In-Reply-To: <CAP=VYLp-ZBFjR1W9=V_vyPYAi1=Yub3ugq6D8hkoLigcPaaxFg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1674 bytes --]
Hi Paul,
On Thu, Dec 08, 2016 at 07:40:14PM -0500, Paul Gortmaker wrote:
> On Wed, Dec 7, 2016 at 4:52 PM, Pablo Neira Ayuso <pablo@netfilter.org> wrote:
> > This patch adds a new NFT_MSG_GETOBJ_RESET command perform an atomic
> > dump-and-reset of the stateful object. This also comes with add support
> > for atomic dump and reset for counter and quota objects.
>
> This triggered a new build failure in linux-next on parisc-32, which a
> hands-off bisect
> run lists as resulting from this:
>
> ERROR: "__cmpxchg_u64" [net/netfilter/nft_counter.ko] undefined!
> make[2]: *** [__modpost] Error 1
> make[1]: *** [modules] Error 2
> make: *** [sub-make] Error 2
> 43da04a593d8b2626f1cf4b56efe9402f6b53652 is the first bad commit
> commit 43da04a593d8b2626f1cf4b56efe9402f6b53652
> Author: Pablo Neira Ayuso <pablo@netfilter.org>
> Date: Mon Nov 28 00:05:44 2016 +0100
>
> netfilter: nf_tables: atomic dump and reset for stateful objects
>
> This patch adds a new NFT_MSG_GETOBJ_RESET command perform an atomic
> dump-and-reset of the stateful object. This also comes with add support
> for atomic dump and reset for counter and quota objects.
>
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
>
> :040000 040000 6cd4554f69247e5c837db52342f26888beda1623
> 5908aca93c89e7922336546c3753bfcf2aceefba M include
> :040000 040000 f25d5831eb30972436bd198c5bb237a0cb0b4856
> 4ee5751c8de02bb5a8dcaadb2a2df7986d90f8e9 M net
> bisect run success
>
> Guessing this is more an issue with parisc than it is with netfilter, but I
> figured I'd mention it anyway.
I'm planning to submit this patch to parisc, I'm attaching it to this
email.
[-- Attachment #2: 0001-parisc-export-symbol-__cmpxchg_u64.patch --]
[-- Type: text/x-diff, Size: 1313 bytes --]
>From c9d320ac0be2a32a7b2bfad398be549865088ecf Mon Sep 17 00:00:00 2001
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Thu, 8 Dec 2016 22:55:33 +0100
Subject: [PATCH] parisc: export symbol __cmpxchg_u64()
kbuild test robot reports:
>> ERROR: "__cmpxchg_u64" [net/netfilter/nft_counter.ko] undefined!
Commit 43da04a593d8 ("netfilter: nf_tables: atomic dump and reset for
stateful objects") introduces the first client of cmpxchg64() from
modules.
Patch 54b668009076 ("parisc: Add native high-resolution sched_clock()
implementation") removed __cmpxchg_u64() dependency on CONFIG_64BIT.
So, let's fix this problem by exporting this symbol unconditionally.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
arch/parisc/kernel/parisc_ksyms.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c
index 3cad8aadc69e..cfa704548cf3 100644
--- a/arch/parisc/kernel/parisc_ksyms.c
+++ b/arch/parisc/kernel/parisc_ksyms.c
@@ -40,8 +40,8 @@ EXPORT_SYMBOL(__atomic_hash);
#endif
#ifdef CONFIG_64BIT
EXPORT_SYMBOL(__xchg64);
-EXPORT_SYMBOL(__cmpxchg_u64);
#endif
+EXPORT_SYMBOL(__cmpxchg_u64);
#include <asm/uaccess.h>
EXPORT_SYMBOL(lclear_user);
--
2.1.4
^ permalink raw reply related
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Arnd Bergmann @ 2016-12-09 10:40 UTC (permalink / raw)
To: Kees Cook
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org
In-Reply-To: <CAGXu5jLEg_4oOyT-rB8QaaYos854xp39_hNf7haNp=8frcPS0Q@mail.gmail.com>
On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
> If you have a moment, applying 215e2aa6c024[1] and reverting
> a519167e753e for an allyesconfig/allmodconfig build should let you
> know if things are working correctly with headers installed. If anyone
> sees any problems, please let me know and I can queue up fixes.
Using gcc-4.9.3 or gcc-5.3.1 for an ARM allmodconfig build, I get tons of
errors such as this one:
/git/arm-soc/init/initramfs.c: In function 'error':
/git/arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
}
^
(insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])
(rotatert:SI (reg:SI 116 [ local_entropy.243 ])
(const_int -30 [0xffffffffffffffe2]))) -1
(nil))
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Event | Plugins
PLUGIN_ATTRIBUTES | latent_entropy_plugin
PLUGIN_START_UNIT | latent_entropy_plugin
/git/arm-soc/init/initramfs.c:50:1: internal compiler error: in extract_insn, at recog.c:2202
/git/arm-soc/arch/arm/vfp/vfpmodule.c: In function 'vfp_init':
/git/arm-soc/arch/arm/vfp/vfpmodule.c:824:1: error: unrecognizable insn:
}
^
(insn 138 137 139 17 (set (reg:SI 165 [ local_entropy.93 ])
(rotatert:SI (reg:SI 150 [ local_entropy.93 ])
(const_int -9 [0xfffffffffffffff7]))) -1
(nil))
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Using gcc-6.1.1 or gcc-7.0.0, everything works fine as far as I
can tell. With some older Ubuntu binary toolchains, I get this one:
In file included from <stdin>:1:0:
/git/arm-soc/scripts/gcc-plugins/gcc-common.h:4:22: fatal error: bversion.h: No such file or directory
compilation terminated.
Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
and I can't find the packages for the headers (I still get them for
gcc-5, but not older versions). On very old toolchains (e.g. gcc-4.3),
I get this one:
Cannot use CONFIG_GCC_PLUGINS: your gcc version does not support plugins, you should upgrade it to at least gcc 4.5
scripts/Makefile.gcc-plugins:54: recipe for target 'gcc-plugins-check' failed
Arnd
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Arnd Bergmann @ 2016-12-09 11:33 UTC (permalink / raw)
To: Kees Cook
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org
In-Reply-To: <CAGXu5jLEg_4oOyT-rB8QaaYos854xp39_hNf7haNp=8frcPS0Q@mail.gmail.com>
On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
> Hi,
>
> I'd like to get the GCC plugins building under
> allyesconfig/allmodconfig for -next soon (with the intention of
> landing the change in v4.11). Specifically, I intend to revert
> a519167e753e ("gcc-plugins: disable under COMPILE_TEST").
>
> Right now the plugins are only supported on x86, arm, and arm64,
> though powerpc may happen in either v4.10 or v4.11 as well. This means
> that the autobuilders for these architectures need to have the "gcc
> plugin development" package installed which contains the GCC headers
> needed for the plugins. For Debian/Ubuntu, this is gcc-$N-plugin-dev
> (and for cross compilers: gcc-$N-plugin-dev-$arch-linux-$abi). For
> Fedora, it is gcc-plugin-devel (though I'm not sure the naming for
> cross compilers). Manual builds of compilers should already have these
> headers installed.
>
> The "noisy" plugin, cyc_complexity, is just an example, and I have
> disabled it (which is pending[1] for v4.10). The remaining ones
> (sancov and latent_entropy) are what I'm hoping to see tested
> tree-wide (with the expectation that more are coming down the road:
> initify, randstruct, structleak, constify, ...)
>
> IIUC, the 0day builder already has the headers installed. I tried to
> look through linux-next to find all the other folks that do
> autobuilding on these architectures; apologies if I've missed anyone.
>
> If you have a moment, applying 215e2aa6c024[1] and reverting
> a519167e753e for an allyesconfig/allmodconfig build should let you
> know if things are working correctly with headers installed. If anyone
> sees any problems, please let me know and I can queue up fixes.
>
> Thanks!
>
> -Kees
>
> [1] http://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/commit/?h=for-next/gcc-plugins&id=215e2aa6c024d27cdbe88e2ea88cb59dcab588eb
This is what I got on x86-64 with a gcc-7.0.0 snapshot:
In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:42:0,
from <stdin>:1:
/home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/emit-rtl.h:371:41: error: use of enum ‘memmodel’ without previous declaration
extern bool need_atomic_barrier_p (enum memmodel, bool);
^
In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:94:0,
from <stdin>:1:
/home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:70:40: error: use of enum ‘value_range_type’ without previous declaration
extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
^
/home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:73:13: error: use of enum ‘value_range_type’ without previous declaration
extern enum value_range_type get_range_info (const_tree, wide_int *,
^
/home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:98:55: error: use of enum ‘value_range_type’ without previous declaration
extern void duplicate_ssa_name_range_info (tree, enum value_range_type,
^
Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
scripts/Makefile.gcc-plugins:51: recipe for target 'gcc-plugins-check' failed
I manually fixed up the gcc header files to include the ones with the
definition for now, to address those, but I don't know if that change is
correct.
Arnd
^ permalink raw reply
* Re: [PATCH 37/50] netfilter: nf_tables: atomic dump and reset for stateful objects
From: Eric Dumazet @ 2016-12-09 14:24 UTC (permalink / raw)
To: Pablo Neira Ayuso
Cc: Paul Gortmaker, netfilter-devel, David Miller, netdev,
linux-next@vger.kernel.org
In-Reply-To: <20161209102432.GA986@salvia>
On Fri, 2016-12-09 at 11:24 +0100, Pablo Neira Ayuso wrote:
> Hi Paul,
Hi Pablo
Given that bytes/packets counters are modified without cmpxchg64() :
static inline void nft_counter_do_eval(struct nft_counter_percpu_priv *priv,
struct nft_regs *regs,
const struct nft_pktinfo *pkt)
{
struct nft_counter_percpu *this_cpu;
local_bh_disable();
this_cpu = this_cpu_ptr(priv->counter);
u64_stats_update_begin(&this_cpu->syncp);
this_cpu->counter.bytes += pkt->skb->len;
this_cpu->counter.packets++;
u64_stats_update_end(&this_cpu->syncp);
local_bh_enable();
}
It means that the cmpxchg64() used to clear the stats is not good enough.
It does not help to make sure stats are properly cleared.
On 64 bit, the ->syncp is not there, so the nft_counter_reset() might
not see that a bytes or packets counter was modified by another cpu.
CPU 1 CPU 2
LOAD PTR->BYTES into REG_A old = *counter;
REG_A += skb->len;
cmpxchg64(counter, old, 0);
PTR->BYTES = REG_A
It looks that you want a seqcount, even on 64bit arches,
so that CPU 2 can restart its loop, and more importantly you need
to not accumulate the values you read, because they might be old/invalid.
Another way would be to not use cmpxchg64() at all.
Way to expensive in fast path !
The percpu value would never be modified by an other cpu than the owner.
You need a per cpu seqcount, no need to add a syncp per nft percpu counter.
static DEFINE_PERCPU(seqcount_t, nft_pcpu_seq);
static inline void nft_counter_do_eval(struct nft_counter_percpu_priv *priv,
struct nft_regs *regs,
const struct nft_pktinfo *pkt)
{
struct nft_counter_percpu *this_cpu;
seqcount_t *myseq;
local_bh_disable();
this_cpu = this_cpu_ptr(priv->counter);
myseq = this_cpu_ptr(&nft_pcpu_seq);
write_seqcount_begin(myseq);
this_cpu->counter.bytes += pkt->skb->len;
this_cpu->counter.packets++;
write_seqcount_end(myseq);
local_bh_enable();
}
Thanks !
^ permalink raw reply
* Re: [PATCH 37/50] netfilter: nf_tables: atomic dump and reset for stateful objects
From: Eric Dumazet @ 2016-12-09 15:22 UTC (permalink / raw)
To: Pablo Neira Ayuso
Cc: Paul Gortmaker, netfilter-devel, David Miller, netdev,
linux-next@vger.kernel.org
In-Reply-To: <1481293492.4930.168.camel@edumazet-glaptop3.roam.corp.google.com>
On Fri, 2016-12-09 at 06:24 -0800, Eric Dumazet wrote:
> It looks that you want a seqcount, even on 64bit arches,
> so that CPU 2 can restart its loop, and more importantly you need
> to not accumulate the values you read, because they might be old/invalid.
Untested patch to give general idea. I can polish it a bit later today.
net/netfilter/nft_counter.c | 59 +++++++++++++---------------------
1 file changed, 23 insertions(+), 36 deletions(-)
diff --git a/net/netfilter/nft_counter.c b/net/netfilter/nft_counter.c
index f6a02c5071c2aeafca7635da3282a809aa04d6ab..57ed95b024473a2aa76298fe5bb5013bf709801b 100644
--- a/net/netfilter/nft_counter.c
+++ b/net/netfilter/nft_counter.c
@@ -31,18 +31,25 @@ struct nft_counter_percpu_priv {
struct nft_counter_percpu __percpu *counter;
};
+static DEFINE_PER_CPU(seqcount_t, nft_counter_seq);
+
static inline void nft_counter_do_eval(struct nft_counter_percpu_priv *priv,
struct nft_regs *regs,
const struct nft_pktinfo *pkt)
{
struct nft_counter_percpu *this_cpu;
+ seqcount_t *myseq;
local_bh_disable();
this_cpu = this_cpu_ptr(priv->counter);
- u64_stats_update_begin(&this_cpu->syncp);
+ myseq = this_cpu_ptr(&nft_counter_seq);
+
+ write_seqcount_begin(myseq);
+
this_cpu->counter.bytes += pkt->skb->len;
this_cpu->counter.packets++;
- u64_stats_update_end(&this_cpu->syncp);
+
+ write_seqcount_end(myseq);
local_bh_enable();
}
@@ -110,52 +117,30 @@ static void nft_counter_fetch(struct nft_counter_percpu __percpu *counter,
memset(total, 0, sizeof(*total));
for_each_possible_cpu(cpu) {
+ seqcount_t *seqp = per_cpu_ptr(&nft_counter_seq, cpu);
+
cpu_stats = per_cpu_ptr(counter, cpu);
do {
- seq = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
+ seq = read_seqcount_begin(seqp);
bytes = cpu_stats->counter.bytes;
packets = cpu_stats->counter.packets;
- } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, seq));
+ } while (read_seqcount_retry(seqp, seq));
total->packets += packets;
total->bytes += bytes;
}
}
-static u64 __nft_counter_reset(u64 *counter)
-{
- u64 ret, old;
-
- do {
- old = *counter;
- ret = cmpxchg64(counter, old, 0);
- } while (ret != old);
-
- return ret;
-}
-
static void nft_counter_reset(struct nft_counter_percpu __percpu *counter,
struct nft_counter *total)
{
struct nft_counter_percpu *cpu_stats;
- u64 bytes, packets;
- unsigned int seq;
- int cpu;
- memset(total, 0, sizeof(*total));
- for_each_possible_cpu(cpu) {
- bytes = packets = 0;
-
- cpu_stats = per_cpu_ptr(counter, cpu);
- do {
- seq = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
- packets += __nft_counter_reset(&cpu_stats->counter.packets);
- bytes += __nft_counter_reset(&cpu_stats->counter.bytes);
- } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, seq));
-
- total->packets += packets;
- total->bytes += bytes;
- }
+ local_bh_disable();
+ cpu_stats = this_cpu_ptr(counter);
+ cpu_stats->counter.packets -= total->packets;
+ cpu_stats->counter.bytes -= total->bytes;
+ local_bh_enable();
}
static int nft_counter_do_dump(struct sk_buff *skb,
@@ -164,10 +149,9 @@ static int nft_counter_do_dump(struct sk_buff *skb,
{
struct nft_counter total;
+ nft_counter_fetch(priv->counter, &total);
if (reset)
nft_counter_reset(priv->counter, &total);
- else
- nft_counter_fetch(priv->counter, &total);
if (nla_put_be64(skb, NFTA_COUNTER_BYTES, cpu_to_be64(total.bytes),
NFTA_COUNTER_PAD) ||
@@ -285,7 +269,10 @@ static struct nft_expr_type nft_counter_type __read_mostly = {
static int __init nft_counter_module_init(void)
{
- int err;
+ int err, cpu;
+
+ for_each_possible_cpu(cpu)
+ seqcount_init(per_cpu_ptr(&nft_counter_seq, cpu));
err = nft_register_obj(&nft_counter_obj);
if (err < 0)
^ permalink raw reply related
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Kees Cook @ 2016-12-09 19:12 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team, Emese Revfy
In-Reply-To: <2680957.ot0HfIkH6p@wuerfel>
On Fri, Dec 9, 2016 at 2:40 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
>
>> If you have a moment, applying 215e2aa6c024[1] and reverting
>> a519167e753e for an allyesconfig/allmodconfig build should let you
>> know if things are working correctly with headers installed. If anyone
>> sees any problems, please let me know and I can queue up fixes.
>
> Using gcc-4.9.3 or gcc-5.3.1 for an ARM allmodconfig build, I get tons of
> errors such as this one:
>
> /git/arm-soc/init/initramfs.c: In function 'error':
> /git/arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
> }
> ^
> (insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])
> (rotatert:SI (reg:SI 116 [ local_entropy.243 ])
> (const_int -30 [0xffffffffffffffe2]))) -1
> (nil))
> *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
> Event | Plugins
> PLUGIN_ATTRIBUTES | latent_entropy_plugin
> PLUGIN_START_UNIT | latent_entropy_plugin
> /git/arm-soc/init/initramfs.c:50:1: internal compiler error: in extract_insn, at recog.c:2202
> /git/arm-soc/arch/arm/vfp/vfpmodule.c: In function 'vfp_init':
> /git/arm-soc/arch/arm/vfp/vfpmodule.c:824:1: error: unrecognizable insn:
> }
> ^
> (insn 138 137 139 17 (set (reg:SI 165 [ local_entropy.93 ])
> (rotatert:SI (reg:SI 150 [ local_entropy.93 ])
> (const_int -9 [0xfffffffffffffff7]))) -1
> (nil))
> *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Well that's exciting! :P
>
> Using gcc-6.1.1 or gcc-7.0.0, everything works fine as far as I
> can tell. With some older Ubuntu binary toolchains, I get this one:
>
> In file included from <stdin>:1:0:
> /git/arm-soc/scripts/gcc-plugins/gcc-common.h:4:22: fatal error: bversion.h: No such file or directory
> compilation terminated.
> Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
>
> and I can't find the packages for the headers (I still get them for
> gcc-5, but not older versions). On very old toolchains (e.g. gcc-4.3),
> I get this one:
>
> Cannot use CONFIG_GCC_PLUGINS: your gcc version does not support plugins, you should upgrade it to at least gcc 4.5
> scripts/Makefile.gcc-plugins:54: recipe for target 'gcc-plugins-check' failed
I'm starting to wonder if we need to expose the compiler version to
Kconfig so that "all*config" builds for earlier compiler will
automatically leave things like plugins off. But I have no idea what
the right approach for that might be.
I'm not a fan of silently disabling stuff (like is done, for example,
for KCOV). If you've selected a Kconfig that your compiler can't
build, it should fail to build, but that's different from the
allyesconfig etc, since that's about compile tests not a sane kernel
image.
Perhaps if COMPILE_TEST is enabled, and there is something unsupported
by the compiler, only then would it warn and continue, instead of
killing build?
-Kees
--
Kees Cook
Nexus Security
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Kees Cook @ 2016-12-09 19:13 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team, Emese Revfy
In-Reply-To: <5572017.jUy2fe8FTb@wuerfel>
On Fri, Dec 9, 2016 at 3:33 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
>> Hi,
>>
>> I'd like to get the GCC plugins building under
>> allyesconfig/allmodconfig for -next soon (with the intention of
>> landing the change in v4.11). Specifically, I intend to revert
>> a519167e753e ("gcc-plugins: disable under COMPILE_TEST").
>>
>> Right now the plugins are only supported on x86, arm, and arm64,
>> though powerpc may happen in either v4.10 or v4.11 as well. This means
>> that the autobuilders for these architectures need to have the "gcc
>> plugin development" package installed which contains the GCC headers
>> needed for the plugins. For Debian/Ubuntu, this is gcc-$N-plugin-dev
>> (and for cross compilers: gcc-$N-plugin-dev-$arch-linux-$abi). For
>> Fedora, it is gcc-plugin-devel (though I'm not sure the naming for
>> cross compilers). Manual builds of compilers should already have these
>> headers installed.
>>
>> The "noisy" plugin, cyc_complexity, is just an example, and I have
>> disabled it (which is pending[1] for v4.10). The remaining ones
>> (sancov and latent_entropy) are what I'm hoping to see tested
>> tree-wide (with the expectation that more are coming down the road:
>> initify, randstruct, structleak, constify, ...)
>>
>> IIUC, the 0day builder already has the headers installed. I tried to
>> look through linux-next to find all the other folks that do
>> autobuilding on these architectures; apologies if I've missed anyone.
>>
>> If you have a moment, applying 215e2aa6c024[1] and reverting
>> a519167e753e for an allyesconfig/allmodconfig build should let you
>> know if things are working correctly with headers installed. If anyone
>> sees any problems, please let me know and I can queue up fixes.
>>
>> Thanks!
>>
>> -Kees
>>
>> [1] http://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/commit/?h=for-next/gcc-plugins&id=215e2aa6c024d27cdbe88e2ea88cb59dcab588eb
>
> This is what I got on x86-64 with a gcc-7.0.0 snapshot:
>
> In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:42:0,
> from <stdin>:1:
> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/emit-rtl.h:371:41: error: use of enum ‘memmodel’ without previous declaration
> extern bool need_atomic_barrier_p (enum memmodel, bool);
> ^
> In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:94:0,
> from <stdin>:1:
> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:70:40: error: use of enum ‘value_range_type’ without previous declaration
> extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
> ^
> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:73:13: error: use of enum ‘value_range_type’ without previous declaration
> extern enum value_range_type get_range_info (const_tree, wide_int *,
> ^
> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:98:55: error: use of enum ‘value_range_type’ without previous declaration
> extern void duplicate_ssa_name_range_info (tree, enum value_range_type,
> ^
> Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
> scripts/Makefile.gcc-plugins:51: recipe for target 'gcc-plugins-check' failed
>
> I manually fixed up the gcc header files to include the ones with the
> definition for now, to address those, but I don't know if that change is
> correct.
What was needed?
-Kees
--
Kees Cook
Nexus Security
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Linus Torvalds @ 2016-12-09 19:40 UTC (permalink / raw)
To: Kees Cook
Cc: Arnd Bergmann, Stephen Rothwell, Randy Dunlap, Olof Johansson,
Mark Brown, info, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team, Emese Revfy
In-Reply-To: <CAGXu5jJpBiffFhdQ+sjwWeeWOnpEkz4JQyH8VwmVCWP3TzXmLQ@mail.gmail.com>
On Fri, Dec 9, 2016 at 11:12 AM, Kees Cook <keescook@google.com> wrote:
>
> I'm starting to wonder if we need to expose the compiler version to
> Kconfig so that "all*config" builds for earlier compiler will
> automatically leave things like plugins off. But I have no idea what
> the right approach for that might be.
We had some broken mock-up of a config option that did a "system()"
call to do some shell scripting for filling in config options (ie turn
a fail/pass into false/true boolean automatically with something like
config COMPILER_SUPPORTS_XYZ
bool
option shell="gcc -XYZ"
The idea is really solid: move a lot of the nasty ad-hoc runtime
testing in the Makefiles to the configuration stage. I would seriously
like to see this, so that we could replace the stupid
CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,)
with just nicer thing (ok, that's a bad example, but some of the other
cc-option cases are really pretty fundamental to kernel configuration,
and it really matters whether the compiler supports something or not).
The main problem was actually that we don't have good infrastructure
for passing in the compiler environment etc to kbuild.
I forgot who did that mock-up (and what the exact syntax was), but it
was pretty simple.
Linus
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Arnd Bergmann @ 2016-12-09 20:35 UTC (permalink / raw)
To: Kees Cook
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team, Emese Revfy, maxim.kuvyrkov, Kugan Vivekanandarajah
In-Reply-To: <CAGXu5jKtoN+uUa5zCmHR0=s8907kS3x30xMNc+s-On0_nyGiHg@mail.gmail.com>
On Friday, December 9, 2016 11:13:20 AM CET Kees Cook wrote:
> On Fri, Dec 9, 2016 at 3:33 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
> >> If you have a moment, applying 215e2aa6c024[1] and reverting
> >> a519167e753e for an allyesconfig/allmodconfig build should let you
> >> know if things are working correctly with headers installed. If anyone
> >> sees any problems, please let me know and I can queue up fixes.
> >>
> > This is what I got on x86-64 with a gcc-7.0.0 snapshot:
> >
> > In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:42:0,
> > from <stdin>:1:
> > /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/emit-rtl.h:371:41: error: use of enum ‘memmodel’ without previous declaration
> > extern bool need_atomic_barrier_p (enum memmodel, bool);
> > ^
> > In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:94:0,
> > from <stdin>:1:
> > /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:70:40: error: use of enum ‘value_range_type’ without previous declaration
> > extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
> > ^
> > /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:73:13: error: use of enum ‘value_range_type’ without previous declaration
> > extern enum value_range_type get_range_info (const_tree, wide_int *,
> > ^
> > /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:98:55: error: use of enum ‘value_range_type’ without previous declaration
> > extern void duplicate_ssa_name_range_info (tree, enum value_range_type,
> > ^
> > Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
> > scripts/Makefile.gcc-plugins:51: recipe for target 'gcc-plugins-check' failed
> >
> > I manually fixed up the gcc header files to include the ones with the
> > definition for now, to address those, but I don't know if that change is
> > correct.
>
> What was needed?
I added '#include "memmodel.h"' and '#include "tree-vrp.h"', respectively, to
the headers that failed to get compiled.
This might be the correct solution, or the headers might not be meant to
be used standalone and instead require being included in the right order.
Gcc commit svn+ssh://gcc.gnu.org/svn/gcc/trunk@239638 moved
value_range_type from tree-ssanames.h to tree-vrp.h, I've added
Kugan to Cc, maybe he can clarify what that means for plugins.
Arnd
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: kugan @ 2016-12-09 21:08 UTC (permalink / raw)
To: Arnd Bergmann, Kees Cook
Cc: Stephen Rothwell, Randy Dunlap, Olof Johansson, Mark Brown, info,
Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team, Emese Revfy, maxim.kuvyrkov, Kugan Vivekanandarajah
In-Reply-To: <4284516.VtSFlm1aM8@wuerfel>
On 10/12/16 07:35, Arnd Bergmann wrote:
> On Friday, December 9, 2016 11:13:20 AM CET Kees Cook wrote:
>> On Fri, Dec 9, 2016 at 3:33 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>> On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
>>>> If you have a moment, applying 215e2aa6c024[1] and reverting
>>>> a519167e753e for an allyesconfig/allmodconfig build should let you
>>>> know if things are working correctly with headers installed. If anyone
>>>> sees any problems, please let me know and I can queue up fixes.
>>>>
>>> This is what I got on x86-64 with a gcc-7.0.0 snapshot:
>>>
>>> In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:42:0,
>>> from <stdin>:1:
>>> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/emit-rtl.h:371:41: error: use of enum ‘memmodel’ without previous declaration
>>> extern bool need_atomic_barrier_p (enum memmodel, bool);
>>> ^
>>> In file included from /git/arm-soc/scripts/gcc-plugins/gcc-common.h:94:0,
>>> from <stdin>:1:
>>> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:70:40: error: use of enum ‘value_range_type’ without previous declaration
>>> extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
>>> ^
>>> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:73:13: error: use of enum ‘value_range_type’ without previous declaration
>>> extern enum value_range_type get_range_info (const_tree, wide_int *,
>>> ^
>>> /home/arnd/cross-gcc/lib/gcc/x86_64-linux/7.0.0/plugin/include/tree-ssanames.h:98:55: error: use of enum ‘value_range_type’ without previous declaration
>>> extern void duplicate_ssa_name_range_info (tree, enum value_range_type,
>>> ^
>>> Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
>>> scripts/Makefile.gcc-plugins:51: recipe for target 'gcc-plugins-check' failed
>>>
>>> I manually fixed up the gcc header files to include the ones with the
>>> definition for now, to address those, but I don't know if that change is
>>> correct.
>>
>> What was needed?
>
> I added '#include "memmodel.h"' and '#include "tree-vrp.h"', respectively, to
> the headers that failed to get compiled.
>
> This might be the correct solution, or the headers might not be meant to
> be used standalone and instead require being included in the right order.
>
> Gcc commit svn+ssh://gcc.gnu.org/svn/gcc/trunk@239638 moved
> value_range_type from tree-ssanames.h to tree-vrp.h, I've added
> Kugan to Cc, maybe he can clarify what that means for plugins.
Looks to me that in gcc-common.h tree-vrp.h should be included before
tree-ssanames.h as it is done in gcc now.
Thanks,
Kugan
^ permalink raw reply
* Re: [PATCH 37/50] netfilter: nf_tables: atomic dump and reset for stateful objects
From: Pablo Neira Ayuso @ 2016-12-10 12:21 UTC (permalink / raw)
To: Eric Dumazet
Cc: Paul Gortmaker, netfilter-devel, David Miller, netdev,
linux-next@vger.kernel.org
In-Reply-To: <1481296926.4930.171.camel@edumazet-glaptop3.roam.corp.google.com>
On Fri, Dec 09, 2016 at 07:22:06AM -0800, Eric Dumazet wrote:
> On Fri, 2016-12-09 at 06:24 -0800, Eric Dumazet wrote:
>
> > It looks that you want a seqcount, even on 64bit arches,
> > so that CPU 2 can restart its loop, and more importantly you need
> > to not accumulate the values you read, because they might be old/invalid.
>
> Untested patch to give general idea. I can polish it a bit later today.
I'm preparing a patch now, so you can review it.
Eric, thanks a lot for reviewing and proposing a working approach!
^ permalink raw reply
* Re: enabling COMPILE_TEST support for GCC plugins in v4.11
From: Emese Revfy @ 2016-12-10 16:45 UTC (permalink / raw)
To: Kees Cook
Cc: Arnd Bergmann, Stephen Rothwell, Randy Dunlap, Olof Johansson,
Mark Brown, info, Linus Torvalds, Andrew Morton, Will Deacon,
Russell King - ARM Linux, LKML, Linux-Next, Fengguang Wu,
Andrew Donnellan, Michael Ellerman, Laura Abbott, x86@kernel.org,
PaX Team
In-Reply-To: <CAGXu5jJpBiffFhdQ+sjwWeeWOnpEkz4JQyH8VwmVCWP3TzXmLQ@mail.gmail.com>
On Fri, 9 Dec 2016 11:12:18 -0800
Kees Cook <keescook@google.com> wrote:
> On Fri, Dec 9, 2016 at 2:40 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Thursday, December 8, 2016 11:00:42 AM CET Kees Cook wrote:
> >
> >> If you have a moment, applying 215e2aa6c024[1] and reverting
> >> a519167e753e for an allyesconfig/allmodconfig build should let you
> >> know if things are working correctly with headers installed. If anyone
> >> sees any problems, please let me know and I can queue up fixes.
> >
> > Using gcc-4.9.3 or gcc-5.3.1 for an ARM allmodconfig build, I get tons of
> > errors such as this one:
> >
> > /git/arm-soc/init/initramfs.c: In function 'error':
> > /git/arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
> > }
> > ^
> > (insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])
> > (rotatert:SI (reg:SI 116 [ local_entropy.243 ])
> > (const_int -30 [0xffffffffffffffe2]))) -1
> > (nil))
> > *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
> > Event | Plugins
> > PLUGIN_ATTRIBUTES | latent_entropy_plugin
> > PLUGIN_START_UNIT | latent_entropy_plugin
> > /git/arm-soc/init/initramfs.c:50:1: internal compiler error: in extract_insn, at recog.c:2202
> > /git/arm-soc/arch/arm/vfp/vfpmodule.c: In function 'vfp_init':
> > /git/arm-soc/arch/arm/vfp/vfpmodule.c:824:1: error: unrecognizable insn:
> > }
> > ^
> > (insn 138 137 139 17 (set (reg:SI 165 [ local_entropy.93 ])
> > (rotatert:SI (reg:SI 150 [ local_entropy.93 ])
> > (const_int -9 [0xfffffffffffffff7]))) -1
> > (nil))
> > *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
>
> Well that's exciting! :P
Hi,
You can find the fix here:
https://github.com/ephox-gcc-plugins/latent_entropy/commit/c91275a1bfcebbcfc0ca1af03396e06039f04db8
--
Emese
^ permalink raw reply
* (unknown),
From: cl_luzcc @ 2016-12-11 18:20 UTC (permalink / raw)
To: linux-next
[-- Attachment #1: EMAIL_3090637_linux-next.zip --]
[-- Type: application/zip, Size: 3420 bytes --]
^ permalink raw reply
* linux-next: no v4.11 code yet
From: Stephen Rothwell @ 2016-12-11 20:54 UTC (permalink / raw)
To: LKML, linux-next
Hi all,
Please do not add any v4.11 code to your linux-next included branches
until after v4.10-rc1 has been released.
--
Cheers,
Stephen Rothwell
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox