Netdev List
 help / color / mirror / Atom feed
* Re: Occasional oops with IPSec and IPv6.
From: Nick Bowler @ 2011-11-21 15:12 UTC (permalink / raw)
  To: Timo Teräs; +Cc: Eric Dumazet, netdev, David S. Miller
In-Reply-To: <4EC75C99.4000304@iki.fi>

On 2011-11-19 09:36 +0200, Timo Teräs wrote:
> On 11/18/2011 11:21 PM, Nick Bowler wrote:
> > On 2011-11-18 22:06 +0200, Timo Teräs wrote:
> >> Alternatively, we could just run the "slow path" unconditionally with
> >> the test load to see if it fixes the issue. At least that'd be pretty
> >> good test if it's a problem in the ipv6 fragmentation code or something
> >> else.
> > 
> > Good call.  I replaced the "correct geometry" check with an
> > unconditional "goto slow_path_clean;", and I can no longer reproduce the
> > crash.  So at the very least, I have a workaround now.  (I still have
> > Herbert Xu's six patches applied on top of Linus' master).
> 
> Ok, so it's most likely ipv6 code issue then. My change just happened to
> trigger it.
> 
> > I then tried the smaller change above, but this does not correct the
> > issue.
> 
> That's not it then (likely).
> 
> I did notice that the headroom of the main skb is never checked. So my
> other suggestion is to try something like:
> 
> diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
> index 1c9bf8b..735c4dc 100644
> --- a/net/ipv6/ip6_output.c
> +++ b/net/ipv6/ip6_output.c
> @@ -668,7 +668,8 @@ int ip6_fragment(struct sk_buff *skb, int
> (*output)(struct sk_buff *))
> 
>  		if (first_len - hlen > mtu ||
>  		    ((first_len - hlen) & 7) ||
> -		    skb_cloned(skb))
> +		    skb_cloned(skb) ||
> +		    skb_headroom(skb) < sizeof(struct frag_hdr))
>  			goto slow_path;
> 
>  		skb_walk_frags(skb, frag) {

Tried this (still on top of Herbert Xu's patch set) to no avail; the
crash still occurs :(.

Using the unconditional slow path workaround, I ran the test over the
weekend and it did not crash, so that seems to be stable.

> Other than that, I hope some of the ipv6 people could take a look at it.
> But the problem is that somewhere some headroom check isn't taking
> place, or is checking for too little of headroom.

Thanks,
-- 
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)

^ permalink raw reply

* [patch] fix error handle in ip_mc_add_src()
From: Jun Zhao @ 2011-11-21 15:05 UTC (permalink / raw)
  To: davem; +Cc: netdev

When add sources to interface failure, need to roll back the sfcount[MODE] 
to before state. We need to match it corresponding. 

diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index c7472ef..276719a 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -1716,7 +1716,8 @@ static int ip_mc_add_src(struct in_device *in_dev, __be32 *pmca, int sfmode,
 	if (err) {
 		int j;
 
-		pmc->sfcount[sfmode]--;
+		if(!delta)
+			pmc->sfcount[sfmode]--;
 		for (j=0; j<i; j++)
 			(void) ip_mc_del1_src(pmc, sfmode, &psfsrc[j]);
 	} else if (isexclude != (pmc->sfcount[MCAST_EXCLUDE] != 0)) {

Signed-off-by: Jun Zhao <mypopydev@gmail.com>

^ permalink raw reply related

* Re: MPLS for Linux kernel
From: Jorge Boncompte [DTI2] @ 2011-11-21 15:01 UTC (permalink / raw)
  To: igorm; +Cc: Linux Network Development list
In-Reply-To: <CAFdo_mWE8wMB6QJt_DPi9Ou9OiayzV48URDq7KhKf+q8OfP+Gw@mail.gmail.com>

El 20/11/2011 22:59, Igor Maravić escribió:
> Hi all,
> I've been working on implementation of MPLS for Linux kernel, for a
> some time now.
> I continued the work of James Leu
> (https://sourceforge.net/projects/mpls-linux/) and used some fixes of
> Jorge Boncompte
> (http://mpls-linux.git.sourceforge.net/git/gitweb.cgi?p=mpls-linux/net-next;a=shortlog;h=refs/heads/net-next-mpls).
> 
> I fixed a lot of bugs, so now it can be compiled and run with all
> Kernel Hacking options enabled.
> My code could be found on this sites:
> 
> https://github.com/i-maravic/MPLS-Linux
> https://github.com/i-maravic/iproute2
> 
> Any feedback is appreciated :)

	Provide, clean, separated, and commented changes to the upstream project as we
have asked you several times to do.

	mpls-linux it is not ready to go upstream in my opinion.

	Regards,
		Jorge
-- 
==============================================================
Jorge Boncompte - Ingenieria y Gestion de RED
DTI2 - Desarrollo de la Tecnologia de las Comunicaciones
--------------------------------------------------------------
C/ Abogado Enriquez Barrios, 5   14004 CORDOBA (SPAIN)
Tlf: +34 957 761395 / FAX: +34 957 450380
==============================================================
- There is only so much duct tape you can put on something
  before it just becomes a giant ball of duct tape.
==============================================================

^ permalink raw reply

* Re: [PATCH 10/17] netfilter: ipv6: expand skb head in ip6_route_me_harder after oif change
From: Patrick McHardy @ 2011-11-21 15:00 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netfilter-devel, netdev, ulrich.weber
In-Reply-To: <1321871357.2552.24.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>

On 11/21/2011 11:29 AM, Eric Dumazet wrote:
> Le lundi 21 novembre 2011 à 06:46 +0100, kaber@trash.net a écrit :
>> From: Patrick McHardy<kaber@trash.net>
>>
>> Expand the skb headroom if the oif changed due to rerouting similar to
>> how IPv4 packets are handled.
>>
>> Signed-off-by: Patrick McHardy<kaber@trash.net>
>> ---
>>   net/ipv6/netfilter.c |    7 +++++++
>>   1 files changed, 7 insertions(+), 0 deletions(-)
>>
>> diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c
>> index 30fcee4..d39e954 100644
>> --- a/net/ipv6/netfilter.c
>> +++ b/net/ipv6/netfilter.c
>> @@ -14,6 +14,7 @@ int ip6_route_me_harder(struct sk_buff *skb)
>>   {
>>   	struct net *net = dev_net(skb_dst(skb)->dev);
>>   	const struct ipv6hdr *iph = ipv6_hdr(skb);
>> +	unsigned int hh_len;
>>   	struct dst_entry *dst;
>>   	struct flowi6 fl6 = {
>>   		.flowi6_oif = skb->sk ? skb->sk->sk_bound_dev_if : 0,
>> @@ -46,6 +47,12 @@ int ip6_route_me_harder(struct sk_buff *skb)
>>   	}
>>   #endif
>>
>> +	/* Change in oif may mean change in hh_len. */
>> +	hh_len = skb_dst(skb)->dev->hard_header_len;
>> +	if (skb_headroom(skb)<  hh_len&&
>> +	    pskb_expand_head(skb, hh_len - skb_headroom(skb), 0, GFP_ATOMIC))
>> +		return -1;
>> +
> Hmm, We had a problem recently on Tile arches because of unaligned
> accesses.
>
> Had you seen the bug report and proposed patch ?
>
> Fix is to instead do :
>
> 	pskb_expand_head(skb,
> 			 HH_DATA_ALIGN(hh_len - skb_headroom(skb)),
> 			 0,
> 			 GFP_ATOMIC);

I'll have a look and will update the patch accordingly.

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" 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

* Re: [PATCH 02/17] netfilter: nat: remove module reference counting from NAT protocols
From: Patrick McHardy @ 2011-11-21 14:59 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netfilter-devel, netdev, ulrich.weber
In-Reply-To: <1321860997.17419.7.camel@edumazet-laptop>

On 11/21/2011 08:36 AM, Eric Dumazet wrote:
> Le lundi 21 novembre 2011 à 06:45 +0100, kaber@trash.net a écrit :
>> From: Patrick McHardy<kaber@trash.net>
>>
>> The only remaining user of NAT protocol module reference counting is NAT
>> ctnetlink support. Since this is a fairly short sequence of code, convert
>> over to use RCU and remove module reference counting.
>>
>> Signed-off-by: Patrick McHardy<kaber@trash.net>
>> @@ -612,16 +592,18 @@ static int nfnetlink_parse_nat_proto(struct nlattr *attr,
>>   	if (err<  0)
>>   		return err;
>>
>> -	npt = nf_nat_proto_find_get(nf_ct_protonum(ct));
>> +	rcu_read_lock();
>> +	npt = __nf_nat_proto_find(nf_ct_protonum(ct));
>>   	if (npt->nlattr_to_range)
>>   		err = npt->nlattr_to_range(tb, range);
>> -	nf_nat_proto_put(npt);
>> +	rcu_read_unlock();
>>   	return err;
>>   }
> Seems good, but you should explain in changelog why its safe.
>
> (Using rcu also means special action must be taken in the write side,
> here the module removal)

I'll update the changelog for the next submission.

>>
>>   static const struct nla_policy nat_nla_policy[CTA_NAT_MAX+1] = {
>>   	[CTA_NAT_MINIP]		= { .type = NLA_U32 },
>>   	[CTA_NAT_MAXIP]		= { .type = NLA_U32 },
>> +	[CTA_NAT_PROTO]		= { .type = NLA_NESTED },
>>   };
> I just dont understand this part :-

Yeah, it doesn't belong into this patch.

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" 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

* Re: [bug] af_unix: Reading from a stream socket may lock the concurrent poll() call
From: Eric Dumazet @ 2011-11-21 14:38 UTC (permalink / raw)
  To: Alexey Moiseytsev
  Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w,
	linux-man-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <CAHjqzy7dhqi22yPJX=DP4x916hVXDY2WaDbdmnTEQ54n6qpMXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Le lundi 21 novembre 2011 à 00:19 +0400, Alexey Moiseytsev a écrit :
> Hello,
> 
> The following program shows how the poll() call hangs on a non-empty
> stream socket.
> 
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <pthread.h>
> #include <stdio.h>
> #include <unistd.h>
> #include <poll.h>
> 
> int sockets[2];
> 
> int poll_socket(void) {
>     struct pollfd pfd = {
>         .fd = sockets[1],
>         .events = POLLIN
>     };
>     return poll(&pfd, 1, -1);
> }
> 
> 
> /* observer routine doesn't modify amount of data available in the
> socket buffer */
> void* observer(void* arg) {
>     char buffer;
>     for (int j = 0; j < 2000; j++) {
>         recv(sockets[1], &buffer, sizeof(buffer), MSG_PEEK);
>         sched_yield();
>     }
>     return NULL;
> }
> 
> int main(void) {
>     if (socketpair(PF_UNIX, SOCK_STREAM, 0, sockets) == -1)
>         return 1;
>     int rc, data[250] = {0};
>     if ((rc = send(sockets[0], &data, sizeof(data), MSG_DONTWAIT)) <= 0)
>         return 2;
>     poll_socket();
> /* If the first poll_socket() call didn't hang then the following
> message will be printed */
>     fprintf(stderr, "%d bytes available in input buffer\n", rc);
>     pthread_t observer_thread;
>     pthread_create(&observer_thread, NULL, observer, NULL);
>     for (int j = 0; j < 20000; j++) {
> /* If the first poll_socket() call didn't hang then all the following
> calls should do the same */
>         poll_socket();
>     }
>     fprintf(stderr, "Well done\n");
>     pthread_join(observer_thread, NULL);
>     close(sockets[0]);
>     close(sockets[1]);
>     return 0;
> }
> 
> 
> Expected output: two lines or nothing (in case of error).
> Observed output: only the first line (and the process never exits).
> 
> So the first poll() said that there is some data available in the
> socket. And one of the following poll() said that there is no data
> available in the socket. But this is false because the observer thread
> didn't actually consume any data from then socket.
> 
> I assume that this bug can be eliminated by adding
> sk->sk_data_ready(...) call right after each call to
> skb_queue_head(..) in the unix_stream_recvmsg(...) routine
> (net/unix/af_unix.c)
> 
> Other info:
> $ uname -srmo
> Linux 2.6.32-5-amd64 x86_64 GNU/Linux
> 

Hi Alexy

I believe you found a bug and your suggested fix should be just fine.

(Or maybe testing in unix_poll() that at least one thread is currently
handling one skb from sk->receive_queue)

Could you submit an official patch on top of current Linus tree or do
you prefer us to take care of this ?



--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* RE: [patch] caif: fix endian conversion in cffrml_transmit()
From: Sjur BRENDELAND @ 2011-11-21 14:36 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: David S. Miller, netdev@vger.kernel.org,
	kernel-janitors@vger.kernel.org
In-Reply-To: <20111121061722.GD7354@elgon.mountain>

Hi Dan,
 
> The "tmp" variable here is used to store the result of cpu_to_le16()
> so it should be a u16 instead of an int.  We want the high bits set
> and the current code works on little endian systems but not on big
> endian systems.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Looks OK by me, unless you want to make sparse with __CHECK_ENDIAN__ 
shut up, then you should use __le16 ;-)

Acked-by: Sjur Brændeland <sjur.brandeland@stericsson.com>

Regards,
Sjur

^ permalink raw reply

* Re: WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413
From: Markus Trippelsdorf @ 2011-11-21 14:21 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Alex,Shi, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Christoph Lameter, Pekka Enberg, Matt Mackall,
	netdev@vger.kernel.org
In-Reply-To: <1321884966.10470.2.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>

On 2011.11.21 at 15:16 +0100, Eric Dumazet wrote:
> Le lundi 21 novembre 2011 à 14:15 +0100, Markus Trippelsdorf a écrit :
> 
> > I've enabled CONFIG_SLUB_DEBUG_ON and this is what happend:
> > 
> 
> Thanks
> 
> Please continue to provide more samples.
> 
> There is something wrong somewhere, but where exactly, its hard to say.
> 
> Something is keeping a pointer to freed memory and reuse it while memory
> had been reused.
> 
> Are you using hugepages ?

Only CONFIG_TRANSPARENT_HUGEPAGE and CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS.

I've increased LOG_BUF_SHIFT to 18, because it looks like the beginning
of the SLUB_DEBUG output was cut off last time.

-- 
Markus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413
From: Eric Dumazet @ 2011-11-21 14:16 UTC (permalink / raw)
  To: Markus Trippelsdorf
  Cc: Alex,Shi, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Christoph Lameter, Pekka Enberg, Matt Mackall,
	netdev@vger.kernel.org
In-Reply-To: <20111121131531.GA1679@x4.trippels.de>

Le lundi 21 novembre 2011 à 14:15 +0100, Markus Trippelsdorf a écrit :

> I've enabled CONFIG_SLUB_DEBUG_ON and this is what happend:
> 

Thanks

Please continue to provide more samples.

There is something wrong somewhere, but where exactly, its hard to say.

Something is keeping a pointer to freed memory and reuse it while memory
had been reused.

Are you using hugepages ?



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [RFCv1 9/9] caif-xshm: Add CAIF driver for Shared memory for M7400
From: Sjur Brændeland @ 2011-11-21 13:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Walleij, sjurbren, Sjur Brændeland, netdev
In-Reply-To: <1321883764-1958-1-git-send-email-sjur.brandeland@stericsson.com>

This patch introduces a caif shared memory link layer driver
for ST-Ericsson's Thor M7400 LTE modem.

M7400 uses a ring-buffer in shared memory for transporting data from the modem.
Each ring-buffer element contains an array of caif frames. caif_xshm calls
napi_schedule() when receiving notification about incoming data.
The napi-poll function copies data from the ring-buffer to SKBs until
ring-buffer is empty, or quota is exceeded.

If transmit ring-buffer is full, it also uses napi for scheduling transmission
of queued transmit buffer.

Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
cc: netdev@vger.kernel.org
---
 drivers/net/caif/Kconfig     |   10 +
 drivers/net/caif/Makefile    |    1 +
 drivers/net/caif/caif_xshm.c |  900 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 911 insertions(+), 0 deletions(-)
 create mode 100644 drivers/net/caif/caif_xshm.c

diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig
index abf4d7a..2861374 100644
--- a/drivers/net/caif/Kconfig
+++ b/drivers/net/caif/Kconfig
@@ -47,3 +47,13 @@ config CAIF_HSI
        The caif low level driver for CAIF over HSI.
        Be aware that if you enable this then you also need to
        enable a low-level HSI driver.
+
+config CAIF_XSHM
+	tristate "CAIF external memory protocol driver"
+	depends on XSHM && CAIF
+	default n
+	---help---
+	Say "yes" if you want to support CAIF over External Shared Memory (XSHM)
+	IPC mechanism (e.g. over Chip to Chip).
+	This will normally be built-in, loadable module is used for testing.
+	If unsure say N.
diff --git a/drivers/net/caif/Makefile b/drivers/net/caif/Makefile
index 91dff86..9310b24 100644
--- a/drivers/net/caif/Makefile
+++ b/drivers/net/caif/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_CAIF_SPI_SLAVE) += cfspi_slave.o
 # Shared memory
 caif_shm-objs := caif_shmcore.o caif_shm_u5500.o
 obj-$(CONFIG_CAIF_SHM) += caif_shm.o
+obj-$(CONFIG_CAIF_XSHM) += caif_xshm.o
 
 # HSI interface
 obj-$(CONFIG_CAIF_HSI) += caif_hsi.o
diff --git a/drivers/net/caif/caif_xshm.c b/drivers/net/caif/caif_xshm.c
new file mode 100644
index 0000000..40c83b2
--- /dev/null
+++ b/drivers/net/caif/caif_xshm.c
@@ -0,0 +1,900 @@
+/*
+ * Copyright (C) ST-Ericsson AB 2010
+ * Contact: Sjur Brendeland / sjur.brandeland@stericsson.com
+ * Authors: Sjur Brendeland / sjur.brandeland@stericsson.com
+ *	   Daniel Martensson / daniel.martensson@stericsson.com
+ * License terms: GNU General Public License (GPL) version 2
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": %s() :" fmt, __func__
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+#include <linux/sched.h>
+#include <linux/list.h>
+#include <linux/netdevice.h>
+#include <linux/if_arp.h>
+#include <net/caif/caif_device.h>
+#include <net/caif/caif_layer.h>
+#include <linux/xshm/xshm_pdev.h>
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Daniel Martensson <daniel.martensson@stericsson.com>");
+MODULE_AUTHOR("Sjur Brendeland <sjur.brandeland@stericsson.com>");
+MODULE_DESCRIPTION("CAIF SHM driver");
+
+#define CONNECT_TIMEOUT (3 * HZ)
+#define CAIF_NEEDED_HEADROOM	32
+#define CAIF_FLOW_ON		1
+#define CAIF_FLOW_OFF		0
+
+#define LOW_XOFF_WATERMARK	50
+#define HIGH_XOFF_WATERMARK	70
+#define STUFF_MARK		30
+
+struct ringbuf {
+	__le32	*rip;
+	__le32	*wip;
+	u32	size;
+	__le32	*bufsize;
+};
+
+struct shm_pck_desc {
+	/* Offset from start of channel to CAIF frame. */
+	u32 offset;
+	u32 length;
+} __packed;
+
+struct shm_caif_frm {
+	/* Number of bytes of padding before the CAIF frame. */
+	u8 hdr_ofs;
+} __packed;
+
+#define SHM_HDR_LEN sizeof(struct shm_caif_frm)
+
+struct shmbuffer {
+/* Static part: */
+	u8 *addr;
+	u32 index;
+	u32 len;
+/* Dynamic part: */
+	u32 frames;
+	/* Offset from start of buffer to CAIF frame. */
+	u32 frm_ofs;
+};
+
+enum CFSHM_STATE {
+	CFSHM_CLOSED = 1,
+	CFSHM_OPENING,
+	CFSHM_OPEN
+};
+
+struct cfshm {
+	/* caif_dev_common must always be first in the structure*/
+	struct caif_dev_common cfdev;
+	struct xshm_dev *xshm;
+	struct napi_struct napi;
+	struct ringbuf tx;
+	struct sk_buff_head sk_qhead;
+	spinlock_t lock;
+	struct ringbuf rx;
+	u8 *rx_ringbuf;
+	u32 rx_frms_pr_buf;
+	u32 rx_alignment;
+	struct shmbuffer **rx_bufs;
+	struct net_device *ndev;
+
+	u32 tx_frms_pr_buf;
+	u32 tx_alignment;
+	struct shmbuffer **tx_bufs;
+	u8 *tx_ringbuf;
+	u32 tx_flow_on;
+	u32 high_xoff_water;
+	u32 low_xoff_water;
+	u32 stuff_mark;
+	atomic_t dbg_smp_rxactive;
+	enum CFSHM_STATE state;
+	struct platform_device *pdev;
+	struct list_head node;
+};
+
+static LIST_HEAD(cfshm_list);
+static spinlock_t cfshm_list_lock;
+
+static unsigned int ringbuf_used(struct ringbuf *rb)
+{
+	if (le32_to_cpu(*rb->wip) >= le32_to_cpu(*rb->rip))
+		return le32_to_cpu(*rb->wip) - le32_to_cpu(*rb->rip);
+	else
+		return rb->size - le32_to_cpu(*rb->rip) + le32_to_cpu(*rb->wip);
+}
+
+static int ringbuf_get_writepos(struct ringbuf *rb)
+{
+	if ((le32_to_cpu(*rb->wip) + 1) % rb->size == le32_to_cpu(*rb->rip))
+		return -1;
+	else
+		return le32_to_cpu(*rb->wip);
+}
+
+static int ringbuf_get_readpos(struct ringbuf *rb)
+{
+
+	if (le32_to_cpu(*rb->wip) == le32_to_cpu(*rb->rip))
+		return -1;
+	else
+		return le32_to_cpu(*rb->rip);
+}
+
+static int ringbuf_upd_writeptr(struct ringbuf *rb)
+{
+	if (!WARN_ON((le32_to_cpu(*rb->wip) + 1) % rb->size == le32_to_cpu(*rb->rip))) {
+		*rb->wip = cpu_to_le32((le32_to_cpu(*rb->wip) + 1) % rb->size);
+		/* Do write barrier before updating index */
+		smp_wmb();
+	}
+	return le32_to_cpu(*rb->wip);
+}
+
+static void ringbuf_upd_readptr(struct ringbuf *rb)
+{
+	if (!WARN_ON(le32_to_cpu(*rb->wip) == le32_to_cpu(*rb->rip))) {
+		*rb->rip = cpu_to_le32((le32_to_cpu(*rb->rip) + 1) % rb->size);
+		/* Do write barrier before updating index */
+		smp_wmb();
+	}
+}
+
+
+
+static struct shmbuffer *get_rx_buf(struct cfshm *cfshm)
+{
+	struct shmbuffer *pbuf = NULL;
+	int idx = ringbuf_get_readpos(&cfshm->rx);
+
+	if (idx < 0)
+		goto out;
+	pbuf = cfshm->rx_bufs[idx];
+out:
+	return pbuf;
+}
+
+static struct shmbuffer *new_rx_buf(struct cfshm *cfshm)
+{
+	struct shmbuffer *pbuf = get_rx_buf(cfshm);
+
+	WARN_ON(!spin_is_locked(&cfshm->lock));
+	if (pbuf)
+		pbuf->frames = 0;
+
+	return pbuf;
+}
+
+static struct shmbuffer *get_tx_buf(struct cfshm *cfshm)
+{
+	int idx = ringbuf_get_writepos(&cfshm->tx);
+
+	if (idx < 0)
+		return NULL;
+	return cfshm->tx_bufs[idx];
+}
+
+inline struct shmbuffer *tx_bump_buf(struct cfshm *cfshm,
+			struct shmbuffer *pbuf)
+{
+	u32 desc_size;
+	struct shmbuffer *newpbuf = pbuf;
+
+	WARN_ON(!spin_is_locked(&cfshm->lock));
+	if (pbuf) {
+		cfshm->xshm->cfg.tx.buf_size[pbuf->index] =
+			cpu_to_le32(pbuf->frm_ofs);
+		ringbuf_upd_writeptr(&cfshm->tx);
+		newpbuf = get_tx_buf(cfshm);
+		/* Reset buffer parameters. */
+		desc_size = (cfshm->tx_frms_pr_buf + 1) *
+			sizeof(struct shm_pck_desc);
+		pbuf->frm_ofs = desc_size + (desc_size % cfshm->rx_alignment);
+		pbuf->frames = 0;
+
+	}
+	return newpbuf;
+}
+
+static struct shmbuffer *shm_rx_func(struct cfshm *cfshm, int quota)
+{
+	struct shmbuffer *pbuf;
+	struct sk_buff *skb;
+	int ret;
+	unsigned long flags;
+
+	pbuf = get_rx_buf(cfshm);
+	while (pbuf) {
+		/* Retrieve pointer to start of the packet descriptor area. */
+		struct shm_pck_desc *pck_desc =
+			((struct shm_pck_desc *) pbuf->addr) + pbuf->frames;
+		u32 offset;
+
+		/* Loop until descriptor contains zero offset */
+		while ((offset = pck_desc->offset)) {
+			unsigned int caif_len;
+			struct shm_caif_frm *frm;
+			u32 length = pck_desc->length;
+			u8 hdr_ofs;
+			frm = (struct shm_caif_frm *)(pbuf->addr + offset);
+			hdr_ofs = frm->hdr_ofs;
+			caif_len =
+				length - SHM_HDR_LEN -
+				hdr_ofs;
+
+			pr_devel("copy data buf:%d frm:%d offs:%d @%x len:%d\n",
+					pbuf->index, pbuf->frames, offset,
+					SHM_HDR_LEN + hdr_ofs +
+					offset + pbuf->addr - cfshm->rx_ringbuf,
+					length);
+
+			/* Check whether number of frames is below limit */
+			if (pbuf->frames > cfshm->rx_frms_pr_buf) {
+				pr_warn("Too many frames in buffer.\n");
+				++cfshm->ndev->stats.rx_frame_errors;
+				goto desc_err;
+			}
+
+			/* Check whether offset is below low limits */
+			if (pbuf->addr + offset
+					<= (u8 *)(pck_desc + 1)) {
+				pr_warn("Offset in desc. below buffer area.\n");
+				++cfshm->ndev->stats.rx_frame_errors;
+				goto desc_err;
+			}
+
+			/* Check whether offset above upper limit */
+			if (offset + length > pbuf->len) {
+				pr_warn("Offset outside buffer area:\n");
+				++cfshm->ndev->stats.rx_frame_errors;
+				goto desc_err;
+			}
+
+			skb = netdev_alloc_skb(cfshm->ndev,
+							caif_len + 1);
+			if (skb == NULL) {
+				pr_debug("Couldn't allocate SKB\n");
+				++cfshm->ndev->stats.rx_dropped;
+				goto out;
+			}
+
+			memcpy(skb_put(skb, caif_len),
+					SHM_HDR_LEN + hdr_ofs +
+					offset + pbuf->addr,
+					caif_len);
+
+			skb->protocol = htons(ETH_P_CAIF);
+			skb_reset_mac_header(skb);
+			skb->dev = cfshm->ndev;
+
+			/* Push received packet up the stack. */
+			ret = netif_receive_skb(skb);
+
+			if (!ret) {
+				cfshm->ndev->stats.rx_packets++;
+				cfshm->ndev->stats.rx_bytes +=
+					length;
+			} else
+				++cfshm->ndev->stats.rx_dropped;
+			/* Move to next packet descriptor. */
+			pck_desc++;
+
+			pbuf->frames++;
+			if (--quota <= 0) {
+				pr_devel("Quota exeeded (pbuf:%p)\n", pbuf);
+				goto out;
+			}
+		}
+desc_err:
+		pbuf->frames = 0;
+
+		spin_lock_irqsave(&cfshm->lock, flags);
+		ringbuf_upd_readptr(&cfshm->rx);
+		pbuf = new_rx_buf(cfshm);
+		spin_unlock_irqrestore(&cfshm->lock, flags);
+
+	}
+	cfshm->xshm->ipc_rx_release(cfshm->xshm, false);
+out:
+	return pbuf;
+}
+
+static int insert_skb_in_buf(struct cfshm *cfshm, struct sk_buff *skb,
+					struct shmbuffer *pbuf)
+{
+	struct shm_pck_desc *pck_desc;
+	unsigned int frmlen;
+	struct shm_caif_frm *frm;
+	u8 hdr_ofs;
+	struct caif_payload_info *info = (struct caif_payload_info *)&skb->cb;
+
+	WARN_ON(!spin_is_locked(&cfshm->lock));
+
+	if (unlikely(pbuf->frames >= cfshm->tx_frms_pr_buf)) {
+		pr_devel("-ENOSPC exeeded frames: %d >= %d\n",
+				pbuf->frames, cfshm->tx_frms_pr_buf);
+			return -ENOSPC;
+	}
+
+	/*
+	 * Align the address of the entire CAIF frame (incl padding),
+	 * so the modem can do efficient DMA of this frame
+	 */
+	pbuf->frm_ofs = roundup(pbuf->frm_ofs, cfshm->tx_alignment);
+
+
+	/* Make the payload (IP packet) inside the frame aligned */
+	hdr_ofs = (unsigned long) &pbuf->frm_ofs;
+	hdr_ofs = roundup(hdr_ofs + SHM_HDR_LEN + info->hdr_len,
+			cfshm->tx_alignment);
+
+	frm = (struct shm_caif_frm *)
+		(pbuf->addr + pbuf->frm_ofs);
+
+	frmlen = SHM_HDR_LEN + hdr_ofs + skb->len;
+
+	/*
+	 * Verify that packet, header and additional padding
+	 * can fit within the buffer frame area.
+	 */
+	if (pbuf->len < pbuf->frm_ofs + frmlen) {
+		pr_devel("-ENOSPC exeeded offset %d < %d\n",
+				pbuf->len, pbuf->frm_ofs + frmlen);
+			return -ENOSPC;
+	}
+
+	/* Copy in CAIF frame. */
+	frm->hdr_ofs = hdr_ofs;
+	skb_copy_bits(skb, 0, pbuf->addr +
+			pbuf->frm_ofs + SHM_HDR_LEN +
+			hdr_ofs, skb->len);
+
+	pr_devel("copy data buf:%d frm:%d offs:%d @%d len:%d\n",
+			pbuf->index, pbuf->frames,
+			pbuf->frm_ofs,
+			pbuf->addr + pbuf->frm_ofs +
+				SHM_HDR_LEN + hdr_ofs - cfshm->tx_ringbuf,
+			skb->len);
+
+	cfshm->ndev->stats.tx_packets++;
+	cfshm->ndev->stats.tx_bytes += frmlen;
+	/* Fill in the shared memory packet descriptor area. */
+	pck_desc = (struct shm_pck_desc *) (pbuf->addr);
+	/* Forward to current frame. */
+	pck_desc += pbuf->frames;
+	pck_desc->offset = pbuf->frm_ofs;
+	pck_desc->length = frmlen;
+	/* Terminate packet descriptor area. */
+	pck_desc++;
+	pck_desc->offset = 0;
+	pck_desc->length = 0;
+	/* Update buffer parameters. */
+	pbuf->frames++;
+	pbuf->frm_ofs += frmlen;
+
+	return 0;
+}
+
+static struct shmbuffer *queue_to_ringbuf(struct cfshm *cfshm, int *new_bufs)
+{
+	struct shmbuffer *pbuf;
+	struct sk_buff *skb;
+	int err;
+
+	WARN_ON(!spin_is_locked(&cfshm->lock));
+
+	pbuf = get_tx_buf(cfshm);
+	while (pbuf != NULL) {
+		skb = skb_peek(&cfshm->sk_qhead);
+		if (skb == NULL)
+			break;
+		err = insert_skb_in_buf(cfshm, skb, pbuf);
+		if (unlikely(err == -ENOSPC)) {
+			pr_devel("No more space in buffer\n");
+			++(*new_bufs);
+			pbuf = tx_bump_buf(cfshm, pbuf);
+			continue;
+		}
+		skb = skb_dequeue(&cfshm->sk_qhead);
+		/* We're always in NET_*_SOFTIRQ */
+		dev_kfree_skb(skb);
+	}
+	return pbuf;
+}
+
+static int shm_netdev_open(struct net_device *netdev)
+{
+	struct cfshm *cfshm = netdev_priv(netdev);
+	int err = 0;
+
+	cfshm->state = CFSHM_OPENING;
+	netif_carrier_off(netdev);
+	napi_enable(&cfshm->napi);
+	if (cfshm->xshm != NULL && cfshm->xshm->open != NULL)
+		cfshm->xshm->open(cfshm->xshm);
+
+	return err;
+
+}
+
+static int shm_netdev_close(struct net_device *netdev)
+{
+	struct cfshm *cfshm = netdev_priv(netdev);
+
+	napi_disable(&cfshm->napi);
+
+	if (cfshm->xshm != NULL && cfshm->xshm->close != NULL)
+		cfshm->xshm->close(cfshm->xshm);
+
+	return 0;
+}
+
+static int open_cb(void *drv)
+{
+	struct cfshm *cfshm = drv;
+
+	cfshm->state = CFSHM_OPEN;
+	netif_carrier_on(cfshm->ndev);
+	return 0;
+}
+
+static void close_cb(void *drv)
+{
+	struct cfshm *cfshm = drv;
+
+	cfshm->state = CFSHM_CLOSED;
+	netif_carrier_off(cfshm->ndev);
+}
+
+static int caif_shmdrv_rx_cb(void *drv)
+{
+	struct cfshm *cfshm = drv;
+	if (unlikely(*cfshm->xshm->cfg.rx.state == cpu_to_le32(XSHM_CLOSED)))
+		return -ESHUTDOWN;
+
+	napi_schedule(&cfshm->napi);
+	return 0;
+}
+
+static int send_pending_txbufs(struct cfshm *cfshm, int usedbufs)
+{
+	unsigned long flags;
+
+	/* Send the started buffer if used buffers are low enough */
+	WARN_ON(!spin_is_locked(&cfshm->lock));
+	if (likely(usedbufs < cfshm->stuff_mark)) {
+		struct shmbuffer *pbuf = get_tx_buf(cfshm);
+		if (unlikely(pbuf->frames > 0)) {
+			if (spin_trylock_irqsave(&cfshm->lock, flags)) {
+				WARN_ON(!spin_is_locked(&cfshm->lock));
+				pbuf = get_tx_buf(cfshm);
+				tx_bump_buf(cfshm, pbuf);
+				spin_unlock_irqrestore(&cfshm->lock, flags);
+				cfshm->xshm->ipc_tx(cfshm->xshm);
+							return 0;
+			} else {
+							return -EBUSY;
+			}
+		}
+	}
+	return 0;
+}
+
+static int caif_shmdrv_tx_release_cb(void *drv)
+{
+	struct cfshm *cfshm = drv;
+	int usedbufs;
+
+	usedbufs = ringbuf_used(&cfshm->tx);
+
+	/* Send flow-on if we have sent flow-off and get below low-water */
+	if (usedbufs <= cfshm->low_xoff_water && !cfshm->tx_flow_on) {
+		pr_debug("Flow on\n");
+		cfshm->tx_flow_on = true;
+		cfshm->cfdev.flowctrl(cfshm->ndev, CAIF_FLOW_ON);
+	}
+
+	/* If ringbuf is full, schedule NAPI to start sending */
+	if (skb_peek(&cfshm->sk_qhead) != NULL) {
+		pr_debug("Schedule NAPI to empty queue\n");
+		napi_schedule(&cfshm->napi);
+			return 0;
+	}
+
+	/* Send the started buffer if used buffers are low enough */
+	if (usedbufs < cfshm->stuff_mark) {
+		struct shmbuffer *pbuf = get_tx_buf(cfshm);
+		if (pbuf != NULL && pbuf->frames > 0)
+			napi_schedule(&cfshm->napi);
+	}
+	return 0;
+}
+
+static int shm_rx_poll(struct napi_struct *napi, int quota)
+{
+	struct cfshm *cfshm = container_of(napi, struct cfshm, napi);
+	int new_bufs;
+	struct shmbuffer *pbuf;
+	int usedbufs;
+	unsigned long flags;
+
+	/* Simply return if rx_poll is already called on other CPU */
+	if (atomic_read(&cfshm->dbg_smp_rxactive) > 0)
+		return quota;
+	atomic_inc_return(&cfshm->dbg_smp_rxactive);
+
+	pbuf = shm_rx_func(cfshm, quota);
+
+	usedbufs = ringbuf_used(&cfshm->tx);
+
+	if (spin_trylock_irqsave(&cfshm->lock, flags)) {
+
+		/* Check if we're below "Stuff" limit, and send pending data */
+		send_pending_txbufs(cfshm, usedbufs);
+
+		/* Check if we have queued packets */
+		if (unlikely(skb_peek(&cfshm->sk_qhead) != NULL)) {
+			struct shmbuffer *txbuf;
+			WARN_ON(!spin_is_locked(&cfshm->lock));
+			pr_debug("Try to empty tx-queue\n");
+			new_bufs = 0;
+			txbuf = queue_to_ringbuf(cfshm, &new_bufs);
+
+			/* Bump out if we are configured with few buffers */
+			if (txbuf && cfshm->xshm->cfg.tx.buffers < 3) {
+				tx_bump_buf(cfshm, txbuf);
+
+				spin_unlock_irqrestore(&cfshm->lock, flags);
+				cfshm->xshm->ipc_tx(cfshm->xshm);
+				goto txdone;
+			}
+		}
+		spin_unlock_irqrestore(&cfshm->lock, flags);
+	}
+txdone:
+
+	if (pbuf == NULL)
+		napi_complete(&cfshm->napi);
+
+	atomic_dec(&cfshm->dbg_smp_rxactive);
+	return 0;
+}
+
+static int shm_netdev_tx(struct sk_buff *skb, struct net_device *shm_netdev)
+{
+	struct shmbuffer *pbuf = NULL;
+	int usedbufs;
+	int new_bufs = 0;
+	struct cfshm *cfshm = netdev_priv(shm_netdev);
+	unsigned long flags;
+
+	/*
+	 * If we have packets in queue, keep queueing to avoid
+	 * out-of-order delivery
+	 */
+	spin_lock_irqsave(&cfshm->lock, flags);
+
+	skb_queue_tail(&cfshm->sk_qhead, skb);
+	pbuf = queue_to_ringbuf(cfshm, &new_bufs);
+
+	usedbufs = ringbuf_used(&cfshm->tx);
+
+	if (usedbufs > cfshm->high_xoff_water && cfshm->tx_flow_on) {
+		pr_debug("Flow off\n");
+		cfshm->tx_flow_on = false;
+		spin_unlock_irqrestore(&cfshm->lock, flags);
+		cfshm->cfdev.flowctrl(cfshm->ndev, CAIF_FLOW_OFF);
+		return 0;
+	}
+
+	/* Check if we should accumulate more packets */
+	if (new_bufs == 0 && usedbufs > cfshm->stuff_mark) {
+		spin_unlock_irqrestore(&cfshm->lock, flags);
+		return 0;
+	}
+	tx_bump_buf(cfshm, pbuf);
+	spin_unlock_irqrestore(&cfshm->lock, flags);
+	cfshm->xshm->ipc_tx(cfshm->xshm);
+	return 0;
+}
+
+static const struct net_device_ops netdev_ops = {
+	.ndo_open = shm_netdev_open,
+	.ndo_stop = shm_netdev_close,
+	.ndo_start_xmit = shm_netdev_tx,
+};
+
+static void shm_netdev_setup(struct net_device *pshm_netdev)
+{
+	struct cfshm *cfshm;
+
+	cfshm = netdev_priv(pshm_netdev);
+	pshm_netdev->netdev_ops = &netdev_ops;
+	pshm_netdev->type = ARPHRD_CAIF;
+	pshm_netdev->hard_header_len = CAIF_NEEDED_HEADROOM;
+	pshm_netdev->tx_queue_len = 0;
+	pshm_netdev->destructor = free_netdev;
+
+	/* Initialize structures in a clean state. */
+	memset(cfshm, 0, sizeof(struct cfshm));
+}
+
+static void deinit_bufs(struct cfshm *cfshm)
+{
+	int j;
+
+	if (cfshm == NULL)
+		return;
+
+	for (j = 0; j < cfshm->xshm->cfg.rx.buffers; j++)
+		kfree(cfshm->rx_bufs[j]);
+	kfree(cfshm->rx_bufs);
+
+	for (j = 0; j < cfshm->xshm->cfg.tx.buffers; j++)
+		kfree(cfshm->tx_bufs[j]);
+	kfree(cfshm->tx_bufs);
+}
+
+static int cfshm_probe(struct platform_device *pdev)
+{
+	int err, j;
+	struct xshm_dev *xshm = pdev->dev.platform_data;
+	struct cfshm *cfshm = NULL;
+	struct net_device *netdev;
+	u32 buf_size;
+	unsigned long flags;
+
+	if (xshm == NULL)
+		return 0;
+
+	if (xshm->cfg.tx.ch_size / xshm->cfg.tx.buffers <
+			xshm->cfg.tx.packets * sizeof(struct shm_pck_desc) +
+				xshm->cfg.tx.mtu) {
+		pr_warn("Bad packet TX-channel size");
+		return -EINVAL;
+	}
+
+	if (xshm->cfg.rx.ch_size / xshm->cfg.rx.buffers <
+			sizeof(struct shm_pck_desc) + xshm->cfg.rx.mtu) {
+		pr_warn("Bad packet RX-channel size");
+		return -EINVAL;
+	}
+
+	if (xshm->cfg.rx.buffers < 2 || xshm->cfg.tx.buffers < 2) {
+		pr_warn("Too few buffers in channel");
+		return -EINVAL;
+	}
+
+	err = -ENOMEM;
+	netdev = alloc_netdev(sizeof(struct cfshm), "cfshm%d",
+			shm_netdev_setup);
+
+	if (netdev == NULL)
+		goto error;
+
+	cfshm = netdev_priv(netdev);
+	cfshm->state = CFSHM_CLOSED;
+	cfshm->xshm = xshm;
+	xshm->driver_data = cfshm;
+	cfshm->ndev = netdev;
+	netdev->mtu = xshm->cfg.tx.mtu;
+	cfshm->high_xoff_water =
+		(xshm->cfg.rx.buffers * HIGH_XOFF_WATERMARK) / 100;
+	cfshm->low_xoff_water =
+		(xshm->cfg.rx.buffers * LOW_XOFF_WATERMARK) / 100;
+	cfshm->stuff_mark = (xshm->cfg.rx.buffers * STUFF_MARK) / 100;
+
+	cfshm->tx_frms_pr_buf = xshm->cfg.tx.packets;
+	cfshm->rx_frms_pr_buf = xshm->cfg.rx.packets;
+	cfshm->rx_alignment = xshm->cfg.rx.alignment;
+	cfshm->tx_alignment = xshm->cfg.tx.alignment;
+
+	if (xshm->cfg.latency)
+		cfshm->cfdev.link_select = CAIF_LINK_LOW_LATENCY;
+	else
+		cfshm->cfdev.link_select = CAIF_LINK_HIGH_BANDW;
+
+	cfshm->tx.rip = xshm->cfg.tx.read;
+	cfshm->tx.wip = xshm->cfg.tx.write;
+	cfshm->tx.bufsize = xshm->cfg.tx.buf_size;
+	cfshm->tx.size = xshm->cfg.tx.buffers;
+
+	cfshm->rx.rip = xshm->cfg.rx.read;
+	cfshm->rx.wip = xshm->cfg.rx.write;
+	cfshm->rx.bufsize = xshm->cfg.rx.buf_size;
+	cfshm->rx.size = xshm->cfg.rx.buffers;
+	pr_devel("RX ri:%d wi:%d size:%d\n",
+		le32_to_cpu(*cfshm->rx.rip),
+			le32_to_cpu(*cfshm->rx.wip), cfshm->rx.size);
+	pr_devel("TX ri:%d wi:%d size:%d\n",
+		le32_to_cpu(*cfshm->tx.rip),
+			le32_to_cpu(*cfshm->tx.wip), cfshm->rx.size);
+	pr_devel("frms_pr_buf:%d %d\n", cfshm->rx_frms_pr_buf,
+			cfshm->tx_frms_pr_buf);
+
+	spin_lock_init(&cfshm->lock);
+	netif_carrier_off(netdev);
+	skb_queue_head_init(&cfshm->sk_qhead);
+
+	pr_devel("SHM DEVICE[%p] PROBED BY DRIVER, NEW SHM DRIVER"
+			" INSTANCE AT cfshm =0x%p\n",
+			cfshm->xshm, cfshm);
+
+	cfshm->tx_ringbuf = xshm->cfg.tx.addr;
+	cfshm->rx_ringbuf = xshm->cfg.rx.addr;
+
+	pr_devel("TX-BASE:%p RX-BASE:%p\n",
+			cfshm->tx_ringbuf,
+			cfshm->rx_ringbuf);
+
+	cfshm->tx_bufs = kzalloc(sizeof(struct shmbuffer *) *
+			xshm->cfg.tx.buffers, GFP_KERNEL);
+	if (cfshm->tx_bufs == NULL)
+		goto error;
+	buf_size = xshm->cfg.tx.ch_size / xshm->cfg.tx.buffers;
+
+	pr_devel("TX: buffers:%d buf_size:%d frms:%d mtu:%d\n",
+			xshm->cfg.tx.buffers, buf_size,
+			cfshm->tx_frms_pr_buf, netdev->mtu);
+
+	for (j = 0; j < xshm->cfg.tx.buffers; j++) {
+		u32 desc_size;
+		struct shmbuffer *tx_buf =
+				kzalloc(sizeof(struct shmbuffer), GFP_KERNEL);
+
+		if (tx_buf == NULL) {
+			pr_warn("ERROR, Could not"
+					" allocate dynamic mem. for tx_buf, "
+					" Bailing out ...\n");
+			goto error;
+		}
+
+		tx_buf->index = j;
+
+		tx_buf->addr = cfshm->tx_ringbuf + (buf_size * j);
+		tx_buf->len = buf_size;
+		tx_buf->frames = 0;
+		desc_size = (cfshm->tx_frms_pr_buf + 1) *
+				sizeof(struct shm_pck_desc);
+
+		tx_buf->frm_ofs = desc_size + (desc_size % cfshm->tx_alignment);
+
+		cfshm->tx_bufs[j] = tx_buf;
+
+		pr_devel("tx_buf[%d] addr:%p len:%d\n",
+				tx_buf->index,
+				tx_buf->addr,
+				tx_buf->len);
+	}
+
+	cfshm->rx_bufs = kzalloc(sizeof(struct shmbuffer *) *
+				xshm->cfg.rx.buffers, GFP_KERNEL);
+	if (cfshm->rx_bufs == NULL)
+		goto error;
+	buf_size = xshm->cfg.tx.ch_size / xshm->cfg.tx.buffers;
+	pr_devel("RX: buffers:%d buf_size:%d frms:%d mtu:%d\n",
+			xshm->cfg.rx.buffers, buf_size,
+			cfshm->rx_frms_pr_buf, netdev->mtu);
+
+	for (j = 0; j < xshm->cfg.rx.buffers; j++) {
+		struct shmbuffer *rx_buf =
+				kzalloc(sizeof(struct shmbuffer), GFP_KERNEL);
+
+		if (rx_buf == NULL) {
+			pr_warn("ERROR, Could not"
+					" allocate dynamic mem.for rx_buf, "
+					" Bailing out ...\n");
+			goto error;
+		}
+
+		rx_buf->index = j;
+
+		rx_buf->addr = cfshm->rx_ringbuf + (buf_size * j);
+		rx_buf->len = buf_size;
+		cfshm->rx_bufs[j] = rx_buf;
+		pr_devel("rx_buf[%d] addr:%p len:%d\n",
+				rx_buf->index,
+				rx_buf->addr,
+				rx_buf->len);
+	}
+
+	cfshm->tx_flow_on = 1;
+	cfshm->xshm->ipc_rx_cb = caif_shmdrv_rx_cb;
+	cfshm->xshm->ipc_tx_release_cb = caif_shmdrv_tx_release_cb;
+	cfshm->xshm->open_cb = open_cb;
+	cfshm->xshm->close_cb = close_cb;
+
+	spin_lock_irqsave(&cfshm->lock, flags);
+	get_tx_buf(cfshm);
+	new_rx_buf(cfshm);
+	spin_unlock_irqrestore(&cfshm->lock, flags);
+
+	netif_napi_add(netdev, &cfshm->napi, shm_rx_poll,
+			2 * cfshm->rx_frms_pr_buf);
+
+	err = register_netdev(netdev);
+	if (err) {
+		pr_warn("ERROR[%d], SHM could not, "
+			"register with NW FRMWK Bailing out ...\n", err);
+		goto error;
+	}
+
+	/* Add CAIF SHM device to list. */
+	spin_lock(&cfshm_list_lock);
+	list_add_tail(&cfshm->node, &cfshm_list);
+	spin_unlock(&cfshm_list_lock);
+
+	return err;
+error:
+	deinit_bufs(cfshm);
+	free_netdev(netdev);
+	return err;
+}
+
+static int cfshm_remove(struct platform_device *pdev)
+{
+	struct xshm_dev *xshm;
+	struct cfshm *cfshm;
+
+	xshm = pdev->dev.platform_data;
+
+	if (xshm == NULL || xshm->driver_data == NULL)
+		return 0;
+
+	cfshm = xshm->driver_data;
+
+	spin_lock(&cfshm_list_lock);
+	list_del(&cfshm->node);
+	spin_unlock(&cfshm_list_lock);
+
+	deinit_bufs(cfshm);
+
+	unregister_netdev(cfshm->ndev);
+
+	xshm->ipc_rx_cb = NULL;
+	xshm->ipc_tx_release_cb = NULL;
+	xshm->open_cb = NULL;
+	xshm->close_cb = NULL;
+	xshm->driver_data = NULL;
+
+	return 0;
+}
+
+static struct platform_driver cfshm_plat_drv = {
+	.probe = cfshm_probe,
+	.remove = cfshm_remove,
+	.driver = {
+		.name = "xshmp",
+		.owner = THIS_MODULE,
+	},
+};
+
+static void __exit cfshm_exit_module(void)
+{
+	platform_driver_unregister(&cfshm_plat_drv);
+}
+
+static int __init cfshm_init_module(void)
+{
+	int err;
+
+	spin_lock_init(&cfshm_list_lock);
+
+	err = platform_driver_register(&cfshm_plat_drv);
+	if (err) {
+		printk(KERN_ERR "Could not register platform SHM driver: %d.\n",
+			err);
+		goto err_dev_register;
+	}
+	return err;
+
+ err_dev_register:
+	return err;
+}
+
+module_init(cfshm_init_module);
+module_exit(cfshm_exit_module);
-- 
1.7.1

^ permalink raw reply related

* [PATCH] net: remove ipv6_addr_copy()
From: Alexey Dobriyan @ 2011-11-21 13:39 UTC (permalink / raw)
  To: davem; +Cc: netdev

C assignment can handle struct in6_addr copying.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 drivers/infiniband/core/addr.c         |    6 ++--
 drivers/infiniband/core/cma.c          |    8 ++---
 drivers/net/bonding/bond_ipv6.c        |    8 ++---
 drivers/net/ethernet/broadcom/cnic.c   |    2 -
 fs/dlm/lowcomms.c                      |    2 -
 include/linux/sunrpc/clnt.h            |    2 -
 include/net/inetpeer.h                 |    2 -
 include/net/ip_vs.h                    |    8 ++---
 include/net/ipv6.h                     |    5 ---
 include/net/xfrm.h                     |    4 +-
 net/bridge/br_multicast.c              |   10 +++----
 net/core/pktgen.c                      |   15 ++++------
 net/dccp/ipv6.c                        |   42 +++++++++++++++---------------
 net/dccp/minisocks.c                   |    4 +-
 net/ipv4/inet_diag.c                   |   18 ++++--------
 net/ipv4/tcp_minisocks.c               |    4 +-
 net/ipv6/addrconf.c                    |    8 ++---
 net/ipv6/af_inet6.c                    |   14 +++++-----
 net/ipv6/ah6.c                         |   12 ++++----
 net/ipv6/anycast.c                     |    4 +-
 net/ipv6/datagram.c                    |   34 ++++++++++++------------
 net/ipv6/exthdrs.c                     |   18 ++++++------
 net/ipv6/fib6_rules.c                  |    2 -
 net/ipv6/icmp.c                        |   18 ++++++------
 net/ipv6/inet6_connection_sock.c       |   12 ++++----
 net/ipv6/ip6_flowlabel.c               |    2 -
 net/ipv6/ip6_output.c                  |   18 ++++++------
 net/ipv6/ip6_tunnel.c                  |   12 ++++----
 net/ipv6/ip6mr.c                       |   12 ++++----
 net/ipv6/ipv6_sockglue.c               |    8 ++---
 net/ipv6/mcast.c                       |    6 ++--
 net/ipv6/mip6.c                        |    4 +-
 net/ipv6/ndisc.c                       |    6 ++--
 net/ipv6/netfilter/ip6t_REJECT.c       |    8 ++---
 net/ipv6/raw.c                         |   10 +++----
 net/ipv6/reassembly.c                  |    4 +-
 net/ipv6/route.c                       |   42 +++++++++++++++---------------
 net/ipv6/sit.c                         |    4 +-
 net/ipv6/syncookies.c                  |    8 ++---
 net/ipv6/tcp_ipv6.c                    |   46 +++++++++++++++------------------
 net/ipv6/udp.c                         |    7 ++---
 net/ipv6/xfrm6_mode_beet.c             |    8 ++---
 net/ipv6/xfrm6_mode_tunnel.c           |    4 +-
 net/ipv6/xfrm6_output.c                |    4 +-
 net/ipv6/xfrm6_policy.c                |    4 +-
 net/ipv6/xfrm6_state.c                 |    4 +-
 net/key/af_key.c                       |    2 -
 net/netfilter/ipset/ip_set_hash_ip.c   |    2 -
 net/netfilter/ipset/ip_set_hash_net.c  |    2 -
 net/netfilter/ipvs/ip_vs_core.c        |    2 -
 net/netfilter/ipvs/ip_vs_sync.c        |    6 ++--
 net/netfilter/ipvs/ip_vs_xmit.c        |   10 +++----
 net/netfilter/nf_conntrack_h323_main.c |    4 +-
 net/netfilter/xt_TCPMSS.c              |    2 -
 net/netfilter/xt_addrtype.c            |    2 -
 net/netlabel/netlabel_kapi.c           |    4 +-
 net/netlabel/netlabel_mgmt.c           |    4 +-
 net/netlabel/netlabel_unlabeled.c      |    4 +-
 net/sctp/ipv6.c                        |   40 +++++++++++++---------------
 net/sctp/socket.c                      |    2 -
 net/sunrpc/svcauth_unix.c              |    6 ++--
 net/sunrpc/svcsock.c                   |    4 +-
 net/xfrm/xfrm_state.c                  |   12 ++------
 security/lsm_audit.c                   |    4 +-
 security/selinux/hooks.c               |    6 ++--
 security/selinux/netnode.c             |    2 -
 66 files changed, 288 insertions(+), 315 deletions(-)

--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -243,8 +243,8 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 	int ret;
 
 	memset(&fl6, 0, sizeof fl6);
-	ipv6_addr_copy(&fl6.daddr, &dst_in->sin6_addr);
-	ipv6_addr_copy(&fl6.saddr, &src_in->sin6_addr);
+	fl6.daddr = dst_in->sin6_addr;
+	fl6.saddr = src_in->sin6_addr;
 	fl6.flowi6_oif = addr->bound_dev_if;
 
 	dst = ip6_route_output(&init_net, NULL, &fl6);
@@ -258,7 +258,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 			goto put;
 
 		src_in->sin6_family = AF_INET6;
-		ipv6_addr_copy(&src_in->sin6_addr, &fl6.saddr);
+		src_in->sin6_addr = fl6.saddr;
 	}
 
 	if (dst->dev->flags & IFF_LOOPBACK) {
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2005,11 +2005,11 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
 	if (cma_zero_addr(src)) {
 		dst = (struct sockaddr *) &id_priv->id.route.addr.dst_addr;
 		if ((src->sa_family = dst->sa_family) == AF_INET) {
-			((struct sockaddr_in *) src)->sin_addr.s_addr =
-				((struct sockaddr_in *) dst)->sin_addr.s_addr;
+			((struct sockaddr_in *)src)->sin_addr =
+				((struct sockaddr_in *)dst)->sin_addr;
 		} else {
-			ipv6_addr_copy(&((struct sockaddr_in6 *) src)->sin6_addr,
-				       &((struct sockaddr_in6 *) dst)->sin6_addr);
+			((struct sockaddr_in6 *)src)->sin6_addr =
+				((struct sockaddr_in6 *)dst)->sin6_addr;
 		}
 	}
 
--- a/drivers/net/bonding/bond_ipv6.c
+++ b/drivers/net/bonding/bond_ipv6.c
@@ -50,7 +50,7 @@ static void bond_glean_dev_ipv6(struct net_device *dev, struct in6_addr *addr)
 		struct inet6_ifaddr *ifa
 			= list_first_entry(&idev->addr_list,
 					   struct inet6_ifaddr, if_list);
-		ipv6_addr_copy(addr, &ifa->addr);
+		*addr = ifa->addr;
 	} else
 		ipv6_addr_set(addr, 0, 0, 0, 0);
 
@@ -168,8 +168,7 @@ static int bond_inet6addr_event(struct notifier_block *this,
 			switch (event) {
 			case NETDEV_UP:
 				if (ipv6_addr_any(&bond->master_ipv6))
-					ipv6_addr_copy(&bond->master_ipv6,
-						       &ifa->addr);
+					bond->master_ipv6 = ifa->addr;
 				return NOTIFY_OK;
 			case NETDEV_DOWN:
 				if (ipv6_addr_equal(&bond->master_ipv6,
@@ -191,8 +190,7 @@ static int bond_inet6addr_event(struct notifier_block *this,
 				switch (event) {
 				case NETDEV_UP:
 					if (ipv6_addr_any(&vlan->vlan_ipv6))
-						ipv6_addr_copy(&vlan->vlan_ipv6,
-							       &ifa->addr);
+						vlan->vlan_ipv6 = ifa->addr;
 					return NOTIFY_OK;
 				case NETDEV_DOWN:
 					if (ipv6_addr_equal(&vlan->vlan_ipv6,
--- a/drivers/net/ethernet/broadcom/cnic.c
+++ b/drivers/net/ethernet/broadcom/cnic.c
@@ -3475,7 +3475,7 @@ static int cnic_get_v6_route(struct sockaddr_in6 *dst_addr,
 	struct flowi6 fl6;
 
 	memset(&fl6, 0, sizeof(fl6));
-	ipv6_addr_copy(&fl6.daddr, &dst_addr->sin6_addr);
+	fl6.daddr = dst_addr->sin6_addr;
 	if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL)
 		fl6.flowi6_oif = dst_addr->sin6_scope_id;
 
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -281,7 +281,7 @@ static int nodeid_to_addr(int nodeid, struct sockaddr *retaddr)
 	} else {
 		struct sockaddr_in6 *in6  = (struct sockaddr_in6 *) &addr;
 		struct sockaddr_in6 *ret6 = (struct sockaddr_in6 *) retaddr;
-		ipv6_addr_copy(&ret6->sin6_addr, &in6->sin6_addr);
+		ret6->sin6_addr = in6->sin6_addr;
 	}
 
 	return 0;
--- a/include/linux/sunrpc/clnt.h
+++ b/include/linux/sunrpc/clnt.h
@@ -237,7 +237,7 @@ static inline bool __rpc_copy_addr6(struct sockaddr *dst,
 	struct sockaddr_in6 *dsin6 = (struct sockaddr_in6 *) dst;
 
 	dsin6->sin6_family = ssin6->sin6_family;
-	ipv6_addr_copy(&dsin6->sin6_addr, &ssin6->sin6_addr);
+	dsin6->sin6_addr = ssin6->sin6_addr;
 	return true;
 }
 #else	/* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */
--- a/include/net/inetpeer.h
+++ b/include/net/inetpeer.h
@@ -86,7 +86,7 @@ static inline struct inet_peer *inet_getpeer_v6(const struct in6_addr *v6daddr,
 {
 	struct inetpeer_addr daddr;
 
-	ipv6_addr_copy((struct in6_addr *)daddr.addr.a6, v6daddr);
+	*(struct in6_addr *)daddr.addr.a6 = *v6daddr;
 	daddr.family = AF_INET6;
 	return inet_getpeer(&daddr, create);
 }
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -21,7 +21,7 @@
 #include <linux/netfilter.h>		/* for union nf_inet_addr */
 #include <linux/ip.h>
 #include <linux/ipv6.h>			/* for struct ipv6hdr */
-#include <net/ipv6.h>			/* for ipv6_addr_copy */
+#include <net/ipv6.h>
 #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
 #include <net/netfilter/nf_conntrack.h>
 #endif
@@ -119,8 +119,8 @@ ip_vs_fill_iphdr(int af, const void *nh, struct ip_vs_iphdr *iphdr)
 		const struct ipv6hdr *iph = nh;
 		iphdr->len = sizeof(struct ipv6hdr);
 		iphdr->protocol = iph->nexthdr;
-		ipv6_addr_copy(&iphdr->saddr.in6, &iph->saddr);
-		ipv6_addr_copy(&iphdr->daddr.in6, &iph->daddr);
+		iphdr->saddr.in6 = iph->saddr;
+		iphdr->daddr.in6 = iph->daddr;
 	} else
 #endif
 	{
@@ -137,7 +137,7 @@ static inline void ip_vs_addr_copy(int af, union nf_inet_addr *dst,
 {
 #ifdef CONFIG_IP_VS_IPV6
 	if (af == AF_INET6)
-		ipv6_addr_copy(&dst->in6, &src->in6);
+		dst->in6 = src->in6;
 	else
 #endif
 	dst->ip = src->ip;
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -309,11 +309,6 @@ ipv6_masked_addr_cmp(const struct in6_addr *a1, const struct in6_addr *m,
 		  ((a1->s6_addr32[3] ^ a2->s6_addr32[3]) & m->s6_addr32[3]));
 }
 
-static inline void ipv6_addr_copy(struct in6_addr *a1, const struct in6_addr *a2)
-{
-	memcpy(a1, a2, sizeof(struct in6_addr));
-}
-
 static inline void ipv6_addr_prefix(struct in6_addr *pfx, 
 				    const struct in6_addr *addr,
 				    int plen)
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1209,8 +1209,8 @@ void xfrm_flowi_addr_get(const struct flowi *fl,
 		memcpy(&daddr->a4, &fl->u.ip4.daddr, sizeof(daddr->a4));
 		break;
 	case AF_INET6:
-		ipv6_addr_copy((struct in6_addr *)&saddr->a6, &fl->u.ip6.saddr);
-		ipv6_addr_copy((struct in6_addr *)&daddr->a6, &fl->u.ip6.daddr);
+		*(struct in6_addr *)saddr->a6 = fl->u.ip6.saddr;
+		*(struct in6_addr *)daddr->a6 = fl->u.ip6.daddr;
 		break;
 	}
 }
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -127,7 +127,7 @@ static struct net_bridge_mdb_entry *br_mdb_ip6_get(
 {
 	struct br_ip br_dst;
 
-	ipv6_addr_copy(&br_dst.u.ip6, dst);
+	br_dst.u.ip6 = *dst;
 	br_dst.proto = htons(ETH_P_IPV6);
 
 	return br_mdb_ip_get(mdb, &br_dst);
@@ -154,7 +154,7 @@ struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br,
 		break;
 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	case htons(ETH_P_IPV6):
-		ipv6_addr_copy(&ip.u.ip6, &ipv6_hdr(skb)->daddr);
+		ip.u.ip6 = ipv6_hdr(skb)->daddr;
 		break;
 #endif
 	default:
@@ -474,7 +474,7 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br,
 	mldq->mld_cksum = 0;
 	mldq->mld_maxdelay = htons((u16)jiffies_to_msecs(interval));
 	mldq->mld_reserved = 0;
-	ipv6_addr_copy(&mldq->mld_mca, group);
+	mldq->mld_mca = *group;
 
 	/* checksum */
 	mldq->mld_cksum = csum_ipv6_magic(&ip6h->saddr, &ip6h->daddr,
@@ -783,7 +783,7 @@ static int br_ip6_multicast_add_group(struct net_bridge *br,
 	if (!ipv6_is_transient_multicast(group))
 		return 0;
 
-	ipv6_addr_copy(&br_group.u.ip6, group);
+	br_group.u.ip6 = *group;
 	br_group.proto = htons(ETH_P_IPV6);
 
 	return br_multicast_add_group(br, port, &br_group);
@@ -1344,7 +1344,7 @@ static void br_ip6_multicast_leave_group(struct net_bridge *br,
 	if (!ipv6_is_transient_multicast(group))
 		return;
 
-	ipv6_addr_copy(&br_group.u.ip6, group);
+	br_group.u.ip6 = *group;
 	br_group.proto = htons(ETH_P_IPV6);
 
 	br_multicast_leave_group(br, port, &br_group);
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -1304,7 +1304,7 @@ static ssize_t pktgen_if_write(struct file *file,
 		scan_ip6(buf, pkt_dev->in6_daddr.s6_addr);
 		snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->in6_daddr);
 
-		ipv6_addr_copy(&pkt_dev->cur_in6_daddr, &pkt_dev->in6_daddr);
+		pkt_dev->cur_in6_daddr = pkt_dev->in6_daddr;
 
 		if (debug)
 			printk(KERN_DEBUG "pktgen: dst6 set to: %s\n", buf);
@@ -1327,8 +1327,7 @@ static ssize_t pktgen_if_write(struct file *file,
 		scan_ip6(buf, pkt_dev->min_in6_daddr.s6_addr);
 		snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->min_in6_daddr);
 
-		ipv6_addr_copy(&pkt_dev->cur_in6_daddr,
-			       &pkt_dev->min_in6_daddr);
+		pkt_dev->cur_in6_daddr = pkt_dev->min_in6_daddr;
 		if (debug)
 			printk(KERN_DEBUG "pktgen: dst6_min set to: %s\n", buf);
 
@@ -1371,7 +1370,7 @@ static ssize_t pktgen_if_write(struct file *file,
 		scan_ip6(buf, pkt_dev->in6_saddr.s6_addr);
 		snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->in6_saddr);
 
-		ipv6_addr_copy(&pkt_dev->cur_in6_saddr, &pkt_dev->in6_saddr);
+		pkt_dev->cur_in6_saddr = pkt_dev->in6_saddr;
 
 		if (debug)
 			printk(KERN_DEBUG "pktgen: src6 set to: %s\n", buf);
@@ -2079,9 +2078,7 @@ static void pktgen_setup_inject(struct pktgen_dev *pkt_dev)
 				     ifp = ifp->if_next) {
 					if (ifp->scope == IFA_LINK &&
 					    !(ifp->flags & IFA_F_TENTATIVE)) {
-						ipv6_addr_copy(&pkt_dev->
-							       cur_in6_saddr,
-							       &ifp->addr);
+						pkt_dev->cur_in6_saddr = ifp->addr;
 						err = 0;
 						break;
 					}
@@ -2958,8 +2955,8 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,
 	iph->payload_len = htons(sizeof(struct udphdr) + datalen);
 	iph->nexthdr = IPPROTO_UDP;
 
-	ipv6_addr_copy(&iph->daddr, &pkt_dev->cur_in6_daddr);
-	ipv6_addr_copy(&iph->saddr, &pkt_dev->cur_in6_saddr);
+	iph->daddr = pkt_dev->cur_in6_daddr;
+	iph->saddr = pkt_dev->cur_in6_saddr;
 
 	skb->mac_header = (skb->network_header - ETH_HLEN -
 			   pkt_dev->pkt_overhead);
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -150,8 +150,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 			 */
 			memset(&fl6, 0, sizeof(fl6));
 			fl6.flowi6_proto = IPPROTO_DCCP;
-			ipv6_addr_copy(&fl6.daddr, &np->daddr);
-			ipv6_addr_copy(&fl6.saddr, &np->saddr);
+			fl6.daddr = np->daddr;
+			fl6.saddr = np->saddr;
 			fl6.flowi6_oif = sk->sk_bound_dev_if;
 			fl6.fl6_dport = inet->inet_dport;
 			fl6.fl6_sport = inet->inet_sport;
@@ -244,8 +244,8 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req,
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_DCCP;
-	ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr);
-	ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr);
+	fl6.daddr = ireq6->rmt_addr;
+	fl6.saddr = ireq6->loc_addr;
 	fl6.flowlabel = 0;
 	fl6.flowi6_oif = ireq6->iif;
 	fl6.fl6_dport = inet_rsk(req)->rmt_port;
@@ -270,7 +270,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req,
 		dh->dccph_checksum = dccp_v6_csum_finish(skb,
 							 &ireq6->loc_addr,
 							 &ireq6->rmt_addr);
-		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr);
+		fl6.daddr = ireq6->rmt_addr;
 		err = ip6_xmit(sk, skb, &fl6, opt, np->tclass);
 		err = net_xmit_eval(err);
 	}
@@ -313,8 +313,8 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb)
 							    &rxip6h->daddr);
 
 	memset(&fl6, 0, sizeof(fl6));
-	ipv6_addr_copy(&fl6.daddr, &rxip6h->saddr);
-	ipv6_addr_copy(&fl6.saddr, &rxip6h->daddr);
+	fl6.daddr = rxip6h->saddr;
+	fl6.saddr = rxip6h->daddr;
 
 	fl6.flowi6_proto = IPPROTO_DCCP;
 	fl6.flowi6_oif = inet6_iif(rxskb);
@@ -419,8 +419,8 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
 		goto drop_and_free;
 
 	ireq6 = inet6_rsk(req);
-	ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
-	ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
+	ireq6->rmt_addr = ipv6_hdr(skb)->saddr;
+	ireq6->loc_addr = ipv6_hdr(skb)->daddr;
 
 	if (ipv6_opt_accepted(sk, skb) ||
 	    np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
@@ -491,7 +491,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,
 
 		ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr);
 
-		ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr);
+		newnp->rcv_saddr = newnp->saddr;
 
 		inet_csk(newsk)->icsk_af_ops = &dccp_ipv6_mapped;
 		newsk->sk_backlog_rcv = dccp_v4_do_rcv;
@@ -526,9 +526,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,
 
 		memset(&fl6, 0, sizeof(fl6));
 		fl6.flowi6_proto = IPPROTO_DCCP;
-		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr);
+		fl6.daddr = ireq6->rmt_addr;
 		final_p = fl6_update_dst(&fl6, opt, &final);
-		ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr);
+		fl6.saddr = ireq6->loc_addr;
 		fl6.flowi6_oif = sk->sk_bound_dev_if;
 		fl6.fl6_dport = inet_rsk(req)->rmt_port;
 		fl6.fl6_sport = inet_rsk(req)->loc_port;
@@ -559,9 +559,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,
 
 	memcpy(newnp, np, sizeof(struct ipv6_pinfo));
 
-	ipv6_addr_copy(&newnp->daddr, &ireq6->rmt_addr);
-	ipv6_addr_copy(&newnp->saddr, &ireq6->loc_addr);
-	ipv6_addr_copy(&newnp->rcv_saddr, &ireq6->loc_addr);
+	newnp->daddr = ireq6->rmt_addr;
+	newnp->saddr = ireq6->loc_addr;
+	newnp->rcv_saddr = ireq6->loc_addr;
 	newsk->sk_bound_dev_if = ireq6->iif;
 
 	/* Now IPv6 options...
@@ -877,7 +877,7 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);
 			if (flowlabel == NULL)
 				return -EINVAL;
-			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst);
+			usin->sin6_addr = flowlabel->dst;
 			fl6_sock_release(flowlabel);
 		}
 	}
@@ -910,7 +910,7 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 			return -EINVAL;
 	}
 
-	ipv6_addr_copy(&np->daddr, &usin->sin6_addr);
+	np->daddr = usin->sin6_addr;
 	np->flow_label = fl6.flowlabel;
 
 	/*
@@ -949,8 +949,8 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 		saddr = &np->rcv_saddr;
 
 	fl6.flowi6_proto = IPPROTO_DCCP;
-	ipv6_addr_copy(&fl6.daddr, &np->daddr);
-	ipv6_addr_copy(&fl6.saddr, saddr ? saddr : &np->saddr);
+	fl6.daddr = np->daddr;
+	fl6.saddr = saddr ? *saddr : np->saddr;
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
 	fl6.fl6_dport = usin->sin6_port;
 	fl6.fl6_sport = inet->inet_sport;
@@ -966,11 +966,11 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 
 	if (saddr == NULL) {
 		saddr = &fl6.saddr;
-		ipv6_addr_copy(&np->rcv_saddr, saddr);
+		np->rcv_saddr = *saddr;
 	}
 
 	/* set the source address */
-	ipv6_addr_copy(&np->saddr, saddr);
+	np->saddr = *saddr;
 	inet->inet_rcv_saddr = LOOPBACK4_IPV6;
 
 	__ip6_dst_store(sk, dst, NULL, NULL);
--- a/net/dccp/minisocks.c
+++ b/net/dccp/minisocks.c
@@ -60,8 +60,8 @@ void dccp_time_wait(struct sock *sk, int state, int timeo)
 
 			tw->tw_ipv6_offset = inet6_tw_offset(sk->sk_prot);
 			tw6 = inet6_twsk((struct sock *)tw);
-			ipv6_addr_copy(&tw6->tw_v6_daddr, &np->daddr);
-			ipv6_addr_copy(&tw6->tw_v6_rcv_saddr, &np->rcv_saddr);
+			tw6->tw_v6_daddr = np->daddr;
+			tw6->tw_v6_rcv_saddr = np->rcv_saddr;
 			tw->tw_ipv6only = np->ipv6only;
 		}
 #endif
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -129,10 +129,8 @@ static int inet_csk_diag_fill(struct sock *sk,
 	if (r->idiag_family == AF_INET6) {
 		const struct ipv6_pinfo *np = inet6_sk(sk);
 
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_src,
-			       &np->rcv_saddr);
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_dst,
-			       &np->daddr);
+		*(struct in6_addr *)r->id.idiag_src = np->rcv_saddr;
+		*(struct in6_addr *)r->id.idiag_dst = np->daddr;
 		if (ext & (1 << (INET_DIAG_TOS - 1)))
 			RTA_PUT_U8(skb, INET_DIAG_TOS, np->tclass);
 	}
@@ -224,10 +222,8 @@ static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
 		const struct inet6_timewait_sock *tw6 =
 						inet6_twsk((struct sock *)tw);
 
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_src,
-			       &tw6->tw_v6_rcv_saddr);
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_dst,
-			       &tw6->tw_v6_daddr);
+		*(struct in6_addr *)r->id.idiag_src = tw6->tw_v6_rcv_saddr;
+		*(struct in6_addr *)r->id.idiag_dst = tw6->tw_v6_daddr;
 	}
 #endif
 	nlh->nlmsg_len = skb_tail_pointer(skb) - previous_tail;
@@ -603,10 +599,8 @@ static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk,
 	r->idiag_inode = 0;
 #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
 	if (r->idiag_family == AF_INET6) {
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_src,
-			       &inet6_rsk(req)->loc_addr);
-		ipv6_addr_copy((struct in6_addr *)r->id.idiag_dst,
-			       &inet6_rsk(req)->rmt_addr);
+		*(struct in6_addr *)r->id.idiag_src = inet6_rsk(req)->loc_addr;
+		*(struct in6_addr *)r->id.idiag_dst = inet6_rsk(req)->rmt_addr;
 	}
 #endif
 	nlh->nlmsg_len = skb_tail_pointer(skb) - b;
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -343,8 +343,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
 
 			tw->tw_ipv6_offset = inet6_tw_offset(sk->sk_prot);
 			tw6 = inet6_twsk((struct sock *)tw);
-			ipv6_addr_copy(&tw6->tw_v6_daddr, &np->daddr);
-			ipv6_addr_copy(&tw6->tw_v6_rcv_saddr, &np->rcv_saddr);
+			tw6->tw_v6_daddr = np->daddr;
+			tw6->tw_v6_rcv_saddr = np->rcv_saddr;
 			tw->tw_tclass = np->tclass;
 			tw->tw_ipv6only = np->ipv6only;
 		}
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -636,7 +636,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,
 		goto out;
 	}
 
-	ipv6_addr_copy(&ifa->addr, addr);
+	ifa->addr = *addr;
 
 	spin_lock_init(&ifa->lock);
 	spin_lock_init(&ifa->state_lock);
@@ -1228,7 +1228,7 @@ try_nextdev:
 	if (!hiscore->ifa)
 		return -EADDRNOTAVAIL;
 
-	ipv6_addr_copy(saddr, &hiscore->ifa->addr);
+	*saddr = hiscore->ifa->addr;
 	in6_ifa_put(hiscore->ifa);
 	return 0;
 }
@@ -1249,7 +1249,7 @@ int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
 		list_for_each_entry(ifp, &idev->addr_list, if_list) {
 			if (ifp->scope == IFA_LINK &&
 			    !(ifp->flags & banned_flags)) {
-				ipv6_addr_copy(addr, &ifp->addr);
+				*addr = ifp->addr;
 				err = 0;
 				break;
 			}
@@ -1700,7 +1700,7 @@ addrconf_prefix_route(struct in6_addr *pfx, int plen, struct net_device *dev,
 		.fc_protocol = RTPROT_KERNEL,
 	};
 
-	ipv6_addr_copy(&cfg.fc_dst, pfx);
+	cfg.fc_dst = *pfx;
 
 	/* Prevent useless cloning on PtP SIT.
 	   This thing is done here expecting that the whole
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -361,10 +361,10 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 	inet->inet_rcv_saddr = v4addr;
 	inet->inet_saddr = v4addr;
 
-	ipv6_addr_copy(&np->rcv_saddr, &addr->sin6_addr);
+	np->rcv_saddr = addr->sin6_addr;
 
 	if (!(addr_type & IPV6_ADDR_MULTICAST))
-		ipv6_addr_copy(&np->saddr, &addr->sin6_addr);
+		np->saddr = addr->sin6_addr;
 
 	/* Make sure we are allowed to bind here. */
 	if (sk->sk_prot->get_port(sk, snum)) {
@@ -458,14 +458,14 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
 		    peer == 1)
 			return -ENOTCONN;
 		sin->sin6_port = inet->inet_dport;
-		ipv6_addr_copy(&sin->sin6_addr, &np->daddr);
+		sin->sin6_addr = np->daddr;
 		if (np->sndflow)
 			sin->sin6_flowinfo = np->flow_label;
 	} else {
 		if (ipv6_addr_any(&np->rcv_saddr))
-			ipv6_addr_copy(&sin->sin6_addr, &np->saddr);
+			sin->sin6_addr = np->saddr;
 		else
-			ipv6_addr_copy(&sin->sin6_addr, &np->rcv_saddr);
+			sin->sin6_addr = np->rcv_saddr;
 
 		sin->sin6_port = inet->inet_sport;
 	}
@@ -660,8 +660,8 @@ int inet6_sk_rebuild_header(struct sock *sk)
 
 		memset(&fl6, 0, sizeof(fl6));
 		fl6.flowi6_proto = sk->sk_protocol;
-		ipv6_addr_copy(&fl6.daddr, &np->daddr);
-		ipv6_addr_copy(&fl6.saddr, &np->saddr);
+		fl6.daddr = np->daddr;
+		fl6.saddr = np->saddr;
 		fl6.flowlabel = np->flow_label;
 		fl6.flowi6_oif = sk->sk_bound_dev_if;
 		fl6.flowi6_mark = sk->sk_mark;
--- a/net/ipv6/ah6.c
+++ b/net/ipv6/ah6.c
@@ -193,9 +193,9 @@ static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *des
 						printk(KERN_WARNING "destopt hao: invalid header length: %u\n", hao->length);
 					goto bad;
 				}
-				ipv6_addr_copy(&final_addr, &hao->addr);
-				ipv6_addr_copy(&hao->addr, &iph->saddr);
-				ipv6_addr_copy(&iph->saddr, &final_addr);
+				final_addr = hao->addr;
+				hao->addr = iph->saddr;
+				iph->saddr = final_addr;
 			}
 			break;
 		}
@@ -241,13 +241,13 @@ static void ipv6_rearrange_rthdr(struct ipv6hdr *iph, struct ipv6_rt_hdr *rthdr)
 	segments = rthdr->hdrlen >> 1;
 
 	addrs = ((struct rt0_hdr *)rthdr)->addr;
-	ipv6_addr_copy(&final_addr, addrs + segments - 1);
+	final_addr = addrs[segments - 1];
 
 	addrs += segments - segments_left;
 	memmove(addrs + 1, addrs, (segments_left - 1) * sizeof(*addrs));
 
-	ipv6_addr_copy(addrs, &iph->daddr);
-	ipv6_addr_copy(&iph->daddr, &final_addr);
+	addrs[0] = iph->daddr;
+	iph->daddr = final_addr;
 }
 
 static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir)
--- a/net/ipv6/anycast.c
+++ b/net/ipv6/anycast.c
@@ -75,7 +75,7 @@ int ipv6_sock_ac_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 	if (pac == NULL)
 		return -ENOMEM;
 	pac->acl_next = NULL;
-	ipv6_addr_copy(&pac->acl_addr, addr);
+	pac->acl_addr = *addr;
 
 	rcu_read_lock();
 	if (ifindex == 0) {
@@ -296,7 +296,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr)
 		goto out;
 	}
 
-	ipv6_addr_copy(&aca->aca_addr, addr);
+	aca->aca_addr = *addr;
 	aca->aca_idev = idev;
 	aca->aca_rt = rt;
 	aca->aca_users = 1;
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -71,7 +71,7 @@ int ip6_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
 			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);
 			if (flowlabel == NULL)
 				return -EINVAL;
-			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst);
+			usin->sin6_addr = flowlabel->dst;
 		}
 	}
 
@@ -143,7 +143,7 @@ ipv4_connected:
 		}
 	}
 
-	ipv6_addr_copy(&np->daddr, daddr);
+	np->daddr = *daddr;
 	np->flow_label = fl6.flowlabel;
 
 	inet->inet_dport = usin->sin6_port;
@@ -154,8 +154,8 @@ ipv4_connected:
 	 */
 
 	fl6.flowi6_proto = sk->sk_protocol;
-	ipv6_addr_copy(&fl6.daddr, &np->daddr);
-	ipv6_addr_copy(&fl6.saddr, &np->saddr);
+	fl6.daddr = np->daddr;
+	fl6.saddr = np->saddr;
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
 	fl6.flowi6_mark = sk->sk_mark;
 	fl6.fl6_dport = inet->inet_dport;
@@ -179,10 +179,10 @@ ipv4_connected:
 	/* source address lookup done in ip6_dst_lookup */
 
 	if (ipv6_addr_any(&np->saddr))
-		ipv6_addr_copy(&np->saddr, &fl6.saddr);
+		np->saddr = fl6.saddr;
 
 	if (ipv6_addr_any(&np->rcv_saddr)) {
-		ipv6_addr_copy(&np->rcv_saddr, &fl6.saddr);
+		np->rcv_saddr = fl6.saddr;
 		inet->inet_rcv_saddr = LOOPBACK4_IPV6;
 		if (sk->sk_prot->rehash)
 			sk->sk_prot->rehash(sk);
@@ -257,7 +257,7 @@ void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info)
 	skb_put(skb, sizeof(struct ipv6hdr));
 	skb_reset_network_header(skb);
 	iph = ipv6_hdr(skb);
-	ipv6_addr_copy(&iph->daddr, &fl6->daddr);
+	iph->daddr = fl6->daddr;
 
 	serr = SKB_EXT_ERR(skb);
 	serr->ee.ee_errno = err;
@@ -294,7 +294,7 @@ void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu)
 	skb_put(skb, sizeof(struct ipv6hdr));
 	skb_reset_network_header(skb);
 	iph = ipv6_hdr(skb);
-	ipv6_addr_copy(&iph->daddr, &fl6->daddr);
+	iph->daddr = fl6->daddr;
 
 	mtu_info = IP6CBMTU(skb);
 
@@ -303,7 +303,7 @@ void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu)
 	mtu_info->ip6m_addr.sin6_port = 0;
 	mtu_info->ip6m_addr.sin6_flowinfo = 0;
 	mtu_info->ip6m_addr.sin6_scope_id = fl6->flowi6_oif;
-	ipv6_addr_copy(&mtu_info->ip6m_addr.sin6_addr, &ipv6_hdr(skb)->daddr);
+	mtu_info->ip6m_addr.sin6_addr = ipv6_hdr(skb)->daddr;
 
 	__skb_pull(skb, skb_tail_pointer(skb) - skb->data);
 	skb_reset_transport_header(skb);
@@ -354,8 +354,8 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
 		sin->sin6_port = serr->port;
 		sin->sin6_scope_id = 0;
 		if (skb->protocol == htons(ETH_P_IPV6)) {
-			ipv6_addr_copy(&sin->sin6_addr,
-				  (struct in6_addr *)(nh + serr->addr_offset));
+			sin->sin6_addr =
+				*(struct in6_addr *)(nh + serr->addr_offset);
 			if (np->sndflow)
 				sin->sin6_flowinfo =
 					(*(__be32 *)(nh + serr->addr_offset - 24) &
@@ -376,7 +376,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
 		sin->sin6_flowinfo = 0;
 		sin->sin6_scope_id = 0;
 		if (skb->protocol == htons(ETH_P_IPV6)) {
-			ipv6_addr_copy(&sin->sin6_addr, &ipv6_hdr(skb)->saddr);
+			sin->sin6_addr = ipv6_hdr(skb)->saddr;
 			if (np->rxopt.all)
 				datagram_recv_ctl(sk, msg, skb);
 			if (ipv6_addr_type(&sin->sin6_addr) & IPV6_ADDR_LINKLOCAL)
@@ -451,7 +451,7 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len)
 		sin->sin6_flowinfo = 0;
 		sin->sin6_port = 0;
 		sin->sin6_scope_id = mtu_info.ip6m_addr.sin6_scope_id;
-		ipv6_addr_copy(&sin->sin6_addr, &mtu_info.ip6m_addr.sin6_addr);
+		sin->sin6_addr = mtu_info.ip6m_addr.sin6_addr;
 	}
 
 	put_cmsg(msg, SOL_IPV6, IPV6_PATHMTU, sizeof(mtu_info), &mtu_info);
@@ -475,7 +475,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
 		struct in6_pktinfo src_info;
 
 		src_info.ipi6_ifindex = opt->iif;
-		ipv6_addr_copy(&src_info.ipi6_addr, &ipv6_hdr(skb)->daddr);
+		src_info.ipi6_addr = ipv6_hdr(skb)->daddr;
 		put_cmsg(msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);
 	}
 
@@ -550,7 +550,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
 		struct in6_pktinfo src_info;
 
 		src_info.ipi6_ifindex = opt->iif;
-		ipv6_addr_copy(&src_info.ipi6_addr, &ipv6_hdr(skb)->daddr);
+		src_info.ipi6_addr = ipv6_hdr(skb)->daddr;
 		put_cmsg(msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);
 	}
 	if (np->rxopt.bits.rxohlim) {
@@ -584,7 +584,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
 			 */
 
 			sin6.sin6_family = AF_INET6;
-			ipv6_addr_copy(&sin6.sin6_addr, &ipv6_hdr(skb)->daddr);
+			sin6.sin6_addr = ipv6_hdr(skb)->daddr;
 			sin6.sin6_port = ports[1];
 			sin6.sin6_flowinfo = 0;
 			sin6.sin6_scope_id = 0;
@@ -659,7 +659,7 @@ int datagram_send_ctl(struct net *net, struct sock *sk,
 						   strict ? dev : NULL, 0))
 					err = -EINVAL;
 				else
-					ipv6_addr_copy(&fl6->saddr, &src_info->ipi6_addr);
+					fl6->saddr = src_info->ipi6_addr;
 			}
 
 			rcu_read_unlock();
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -243,9 +243,9 @@ static int ipv6_dest_hao(struct sk_buff *skb, int optoff)
 	if (skb->ip_summed == CHECKSUM_COMPLETE)
 		skb->ip_summed = CHECKSUM_NONE;
 
-	ipv6_addr_copy(&tmp_addr, &ipv6h->saddr);
-	ipv6_addr_copy(&ipv6h->saddr, &hao->addr);
-	ipv6_addr_copy(&hao->addr, &tmp_addr);
+	tmp_addr = ipv6h->saddr;
+	ipv6h->saddr = hao->addr;
+	hao->addr = tmp_addr;
 
 	if (skb->tstamp.tv64 == 0)
 		__net_timestamp(skb);
@@ -461,9 +461,9 @@ looped_back:
 		return -1;
 	}
 
-	ipv6_addr_copy(&daddr, addr);
-	ipv6_addr_copy(addr, &ipv6_hdr(skb)->daddr);
-	ipv6_addr_copy(&ipv6_hdr(skb)->daddr, &daddr);
+	daddr = *addr;
+	*addr = ipv6_hdr(skb)->daddr;
+	ipv6_hdr(skb)->daddr = daddr;
 
 	skb_dst_drop(skb);
 	ip6_route_input(skb);
@@ -690,7 +690,7 @@ static void ipv6_push_rthdr(struct sk_buff *skb, u8 *proto,
 		memcpy(phdr->addr, ihdr->addr + 1,
 		       (hops - 1) * sizeof(struct in6_addr));
 
-	ipv6_addr_copy(phdr->addr + (hops - 1), *addr_p);
+	phdr->addr[hops - 1] = **addr_p;
 	*addr_p = ihdr->addr;
 
 	phdr->rt_hdr.nexthdr = *proto;
@@ -888,8 +888,8 @@ struct in6_addr *fl6_update_dst(struct flowi6 *fl6,
 	if (!opt || !opt->srcrt)
 		return NULL;
 
-	ipv6_addr_copy(orig, &fl6->daddr);
-	ipv6_addr_copy(&fl6->daddr, ((struct rt0_hdr *)opt->srcrt)->addr);
+	*orig = fl6->daddr;
+	fl6->daddr = *((struct rt0_hdr *)opt->srcrt)->addr;
 	return orig;
 }
 
--- a/net/ipv6/fib6_rules.c
+++ b/net/ipv6/fib6_rules.c
@@ -96,7 +96,7 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
 			if (!ipv6_prefix_equal(&saddr, &r->src.addr,
 					       r->src.plen))
 				goto again;
-			ipv6_addr_copy(&flp6->saddr, &saddr);
+			flp6->saddr = saddr;
 		}
 		goto out;
 	}
--- a/net/ipv6/icmp.c
+++ b/net/ipv6/icmp.c
@@ -290,9 +290,9 @@ static void mip6_addr_swap(struct sk_buff *skb)
 		if (likely(off >= 0)) {
 			hao = (struct ipv6_destopt_hao *)
 					(skb_network_header(skb) + off);
-			ipv6_addr_copy(&tmp, &iph->saddr);
-			ipv6_addr_copy(&iph->saddr, &hao->addr);
-			ipv6_addr_copy(&hao->addr, &tmp);
+			tmp = iph->saddr;
+			iph->saddr = hao->addr;
+			hao->addr = tmp;
 		}
 	}
 }
@@ -444,9 +444,9 @@ void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_ICMPV6;
-	ipv6_addr_copy(&fl6.daddr, &hdr->saddr);
+	fl6.daddr = hdr->saddr;
 	if (saddr)
-		ipv6_addr_copy(&fl6.saddr, saddr);
+		fl6.saddr = *saddr;
 	fl6.flowi6_oif = iif;
 	fl6.fl6_icmp_type = type;
 	fl6.fl6_icmp_code = code;
@@ -538,9 +538,9 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_ICMPV6;
-	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->saddr);
+	fl6.daddr = ipv6_hdr(skb)->saddr;
 	if (saddr)
-		ipv6_addr_copy(&fl6.saddr, saddr);
+		fl6.saddr = *saddr;
 	fl6.flowi6_oif = skb->dev->ifindex;
 	fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY;
 	security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
@@ -786,8 +786,8 @@ void icmpv6_flow_init(struct sock *sk, struct flowi6 *fl6,
 		      int oif)
 {
 	memset(fl6, 0, sizeof(*fl6));
-	ipv6_addr_copy(&fl6->saddr, saddr);
-	ipv6_addr_copy(&fl6->daddr, daddr);
+	fl6->saddr = *saddr;
+	fl6->daddr = *daddr;
 	fl6->flowi6_proto 	= IPPROTO_ICMPV6;
 	fl6->fl6_icmp_type	= type;
 	fl6->fl6_icmp_code	= 0;
--- a/net/ipv6/inet6_connection_sock.c
+++ b/net/ipv6/inet6_connection_sock.c
@@ -65,9 +65,9 @@ struct dst_entry *inet6_csk_route_req(struct sock *sk,
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_TCP;
-	ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr);
+	fl6.daddr = treq->rmt_addr;
 	final_p = fl6_update_dst(&fl6, np->opt, &final);
-	ipv6_addr_copy(&fl6.saddr, &treq->loc_addr);
+	fl6.saddr = treq->loc_addr;
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
 	fl6.flowi6_mark = sk->sk_mark;
 	fl6.fl6_dport = inet_rsk(req)->rmt_port;
@@ -157,7 +157,7 @@ void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr * uaddr)
 	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) uaddr;
 
 	sin6->sin6_family = AF_INET6;
-	ipv6_addr_copy(&sin6->sin6_addr, &np->daddr);
+	sin6->sin6_addr = np->daddr;
 	sin6->sin6_port	= inet_sk(sk)->inet_dport;
 	/* We do not store received flowlabel for TCP */
 	sin6->sin6_flowinfo = 0;
@@ -215,8 +215,8 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = sk->sk_protocol;
-	ipv6_addr_copy(&fl6.daddr, &np->daddr);
-	ipv6_addr_copy(&fl6.saddr, &np->saddr);
+	fl6.daddr = np->daddr;
+	fl6.saddr = np->saddr;
 	fl6.flowlabel = np->flow_label;
 	IP6_ECN_flow_xmit(sk, fl6.flowlabel);
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
@@ -246,7 +246,7 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)
 	skb_dst_set_noref(skb, dst);
 
 	/* Restore final destination back after routing done */
-	ipv6_addr_copy(&fl6.daddr, &np->daddr);
+	fl6.daddr = np->daddr;
 
 	res = ip6_xmit(sk, skb, &fl6, np->opt, np->tclass);
 	rcu_read_unlock();
--- a/net/ipv6/ip6_flowlabel.c
+++ b/net/ipv6/ip6_flowlabel.c
@@ -386,7 +386,7 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,
 		err = -EINVAL;
 		goto done;
 	}
-	ipv6_addr_copy(&fl->dst, &freq->flr_dst);
+	fl->dst = freq->flr_dst;
 	atomic_set(&fl->users, 1);
 	switch (fl->share) {
 	case IPV6_FL_S_EXCL:
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -238,8 +238,8 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
 	hdr->nexthdr = proto;
 	hdr->hop_limit = hlimit;
 
-	ipv6_addr_copy(&hdr->saddr, &fl6->saddr);
-	ipv6_addr_copy(&hdr->daddr, first_hop);
+	hdr->saddr = fl6->saddr;
+	hdr->daddr = *first_hop;
 
 	skb->priority = sk->sk_priority;
 	skb->mark = sk->sk_mark;
@@ -290,8 +290,8 @@ int ip6_nd_hdr(struct sock *sk, struct sk_buff *skb, struct net_device *dev,
 	hdr->nexthdr = proto;
 	hdr->hop_limit = np->hop_limit;
 
-	ipv6_addr_copy(&hdr->saddr, saddr);
-	ipv6_addr_copy(&hdr->daddr, daddr);
+	hdr->saddr = *saddr;
+	hdr->daddr = *daddr;
 
 	return 0;
 }
@@ -1063,7 +1063,7 @@ struct dst_entry *ip6_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6,
 	if (err)
 		return ERR_PTR(err);
 	if (final_dst)
-		ipv6_addr_copy(&fl6->daddr, final_dst);
+		fl6->daddr = *final_dst;
 	if (can_sleep)
 		fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP;
 
@@ -1099,7 +1099,7 @@ struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6,
 	if (err)
 		return ERR_PTR(err);
 	if (final_dst)
-		ipv6_addr_copy(&fl6->daddr, final_dst);
+		fl6->daddr = *final_dst;
 	if (can_sleep)
 		fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP;
 
@@ -1592,7 +1592,7 @@ int ip6_push_pending_frames(struct sock *sk)
 	if (np->pmtudisc < IPV6_PMTUDISC_DO)
 		skb->local_df = 1;
 
-	ipv6_addr_copy(final_dst, &fl6->daddr);
+	*final_dst = fl6->daddr;
 	__skb_pull(skb, skb_network_header_len(skb));
 	if (opt && opt->opt_flen)
 		ipv6_push_frag_opts(skb, opt, &proto);
@@ -1608,8 +1608,8 @@ int ip6_push_pending_frames(struct sock *sk)
 
 	hdr->hop_limit = np->cork.hop_limit;
 	hdr->nexthdr = proto;
-	ipv6_addr_copy(&hdr->saddr, &fl6->saddr);
-	ipv6_addr_copy(&hdr->daddr, final_dst);
+	hdr->saddr = fl6->saddr;
+	hdr->daddr = *final_dst;
 
 	skb->priority = sk->sk_priority;
 	skb->mark = sk->sk_mark;
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -977,8 +977,8 @@ static int ip6_tnl_xmit2(struct sk_buff *skb,
 	ipv6_change_dsfield(ipv6h, ~INET_ECN_MASK, dsfield);
 	ipv6h->hop_limit = t->parms.hop_limit;
 	ipv6h->nexthdr = proto;
-	ipv6_addr_copy(&ipv6h->saddr, &fl6->saddr);
-	ipv6_addr_copy(&ipv6h->daddr, &fl6->daddr);
+	ipv6h->saddr = fl6->saddr;
+	ipv6h->daddr = fl6->daddr;
 	nf_reset(skb);
 	pkt_len = skb->len;
 	err = ip6_local_out(skb);
@@ -1153,8 +1153,8 @@ static void ip6_tnl_link_config(struct ip6_tnl *t)
 	memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr));
 
 	/* Set up flowi template */
-	ipv6_addr_copy(&fl6->saddr, &p->laddr);
-	ipv6_addr_copy(&fl6->daddr, &p->raddr);
+	fl6->saddr = p->laddr;
+	fl6->daddr = p->raddr;
 	fl6->flowi6_oif = p->link;
 	fl6->flowlabel = 0;
 
@@ -1210,8 +1210,8 @@ static void ip6_tnl_link_config(struct ip6_tnl *t)
 static int
 ip6_tnl_change(struct ip6_tnl *t, struct ip6_tnl_parm *p)
 {
-	ipv6_addr_copy(&t->parms.laddr, &p->laddr);
-	ipv6_addr_copy(&t->parms.raddr, &p->raddr);
+	t->parms.laddr = p->laddr;
+	t->parms.raddr = p->raddr;
 	t->parms.flags = p->flags;
 	t->parms.hop_limit = p->hop_limit;
 	t->parms.encap_limit = p->encap_limit;
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -1105,8 +1105,8 @@ static int ip6mr_cache_report(struct mr6_table *mrt, struct sk_buff *pkt,
 		msg->im6_msgtype = MRT6MSG_WHOLEPKT;
 		msg->im6_mif = mrt->mroute_reg_vif_num;
 		msg->im6_pad = 0;
-		ipv6_addr_copy(&msg->im6_src, &ipv6_hdr(pkt)->saddr);
-		ipv6_addr_copy(&msg->im6_dst, &ipv6_hdr(pkt)->daddr);
+		msg->im6_src = ipv6_hdr(pkt)->saddr;
+		msg->im6_dst = ipv6_hdr(pkt)->daddr;
 
 		skb->ip_summed = CHECKSUM_UNNECESSARY;
 	} else
@@ -1131,8 +1131,8 @@ static int ip6mr_cache_report(struct mr6_table *mrt, struct sk_buff *pkt,
 	msg->im6_msgtype = assert;
 	msg->im6_mif = mifi;
 	msg->im6_pad = 0;
-	ipv6_addr_copy(&msg->im6_src, &ipv6_hdr(pkt)->saddr);
-	ipv6_addr_copy(&msg->im6_dst, &ipv6_hdr(pkt)->daddr);
+	msg->im6_src = ipv6_hdr(pkt)->saddr;
+	msg->im6_dst = ipv6_hdr(pkt)->daddr;
 
 	skb_dst_set(skb, dst_clone(skb_dst(pkt)));
 	skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -2181,8 +2181,8 @@ int ip6mr_get_route(struct net *net,
 		iph->payload_len = 0;
 		iph->nexthdr = IPPROTO_NONE;
 		iph->hop_limit = 0;
-		ipv6_addr_copy(&iph->saddr, &rt->rt6i_src.addr);
-		ipv6_addr_copy(&iph->daddr, &rt->rt6i_dst.addr);
+		iph->saddr = rt->rt6i_src.addr;
+		iph->daddr = rt->rt6i_dst.addr;
 
 		err = ip6mr_cache_unresolved(mrt, vif, skb2);
 		read_unlock(&mrt_lock);
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -435,7 +435,7 @@ sticky_done:
 			goto e_inval;
 
 		np->sticky_pktinfo.ipi6_ifindex = pkt.ipi6_ifindex;
-		ipv6_addr_copy(&np->sticky_pktinfo.ipi6_addr, &pkt.ipi6_addr);
+		np->sticky_pktinfo.ipi6_addr = pkt.ipi6_addr;
 		retv = 0;
 		break;
 	}
@@ -980,8 +980,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
 				struct in6_pktinfo src_info;
 				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :
 					np->sticky_pktinfo.ipi6_ifindex;
-				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) :
-					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr));
+				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;
 				put_cmsg(&msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);
 			}
 			if (np->rxopt.bits.rxhlim) {
@@ -992,8 +991,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
 				struct in6_pktinfo src_info;
 				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :
 					np->sticky_pktinfo.ipi6_ifindex;
-				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) :
-					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr));
+				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;
 				put_cmsg(&msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);
 			}
 			if (np->rxopt.bits.rxohlim) {
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -155,7 +155,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 		return -ENOMEM;
 
 	mc_lst->next = NULL;
-	ipv6_addr_copy(&mc_lst->addr, addr);
+	mc_lst->addr = *addr;
 
 	rcu_read_lock();
 	if (ifindex == 0) {
@@ -858,7 +858,7 @@ int ipv6_dev_mc_inc(struct net_device *dev, const struct in6_addr *addr)
 
 	setup_timer(&mc->mca_timer, igmp6_timer_handler, (unsigned long)mc);
 
-	ipv6_addr_copy(&mc->mca_addr, addr);
+	mc->mca_addr = *addr;
 	mc->idev = idev; /* (reference taken) */
 	mc->mca_users = 1;
 	/* mca_stamp should be updated upon changes */
@@ -1776,7 +1776,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
 	hdr = (struct mld_msg *) skb_put(skb, sizeof(struct mld_msg));
 	memset(hdr, 0, sizeof(struct mld_msg));
 	hdr->mld_type = type;
-	ipv6_addr_copy(&hdr->mld_mca, addr);
+	hdr->mld_mca = *addr;
 
 	hdr->mld_cksum = csum_ipv6_magic(saddr, snd_addr, len,
 					 IPPROTO_ICMPV6,
--- a/net/ipv6/mip6.c
+++ b/net/ipv6/mip6.c
@@ -195,8 +195,8 @@ static inline int mip6_report_rl_allow(struct timeval *stamp,
 		mip6_report_rl.stamp.tv_sec = stamp->tv_sec;
 		mip6_report_rl.stamp.tv_usec = stamp->tv_usec;
 		mip6_report_rl.iif = iif;
-		ipv6_addr_copy(&mip6_report_rl.src, src);
-		ipv6_addr_copy(&mip6_report_rl.dst, dst);
+		mip6_report_rl.src = *src;
+		mip6_report_rl.dst = *dst;
 		allow = 1;
 	}
 	spin_unlock_bh(&mip6_report_rl.lock);
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -481,7 +481,7 @@ struct sk_buff *ndisc_build_skb(struct net_device *dev,
 
 	opt = skb_transport_header(skb) + sizeof(struct icmp6hdr);
 	if (target) {
-		ipv6_addr_copy((struct in6_addr *)opt, target);
+		*(struct in6_addr *)opt = *target;
 		opt += sizeof(*target);
 	}
 
@@ -1622,9 +1622,9 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,
 	 */
 
 	addrp = (struct in6_addr *)(icmph + 1);
-	ipv6_addr_copy(addrp, target);
+	*addrp = *target;
 	addrp++;
-	ipv6_addr_copy(addrp, &ipv6_hdr(skb)->daddr);
+	*addrp = ipv6_hdr(skb)->daddr;
 
 	opt = (u8*) (addrp + 1);
 
--- a/net/ipv6/netfilter/ip6t_REJECT.c
+++ b/net/ipv6/netfilter/ip6t_REJECT.c
@@ -93,8 +93,8 @@ static void send_reset(struct net *net, struct sk_buff *oldskb)
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_TCP;
-	ipv6_addr_copy(&fl6.saddr, &oip6h->daddr);
-	ipv6_addr_copy(&fl6.daddr, &oip6h->saddr);
+	fl6.saddr = oip6h->daddr;
+	fl6.daddr = oip6h->saddr;
 	fl6.fl6_sport = otcph.dest;
 	fl6.fl6_dport = otcph.source;
 	security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6));
@@ -129,8 +129,8 @@ static void send_reset(struct net *net, struct sk_buff *oldskb)
 	*(__be32 *)ip6h =  htonl(0x60000000 | (tclass << 20));
 	ip6h->hop_limit = ip6_dst_hoplimit(dst);
 	ip6h->nexthdr = IPPROTO_TCP;
-	ipv6_addr_copy(&ip6h->saddr, &oip6h->daddr);
-	ipv6_addr_copy(&ip6h->daddr, &oip6h->saddr);
+	ip6h->saddr = oip6h->daddr;
+	ip6h->daddr = oip6h->saddr;
 
 	tcph = (struct tcphdr *)skb_put(nskb, sizeof(struct tcphdr));
 	/* Truncate to length (no data) */
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -299,9 +299,9 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
 	}
 
 	inet->inet_rcv_saddr = inet->inet_saddr = v4addr;
-	ipv6_addr_copy(&np->rcv_saddr, &addr->sin6_addr);
+	np->rcv_saddr = addr->sin6_addr;
 	if (!(addr_type & IPV6_ADDR_MULTICAST))
-		ipv6_addr_copy(&np->saddr, &addr->sin6_addr);
+		np->saddr = addr->sin6_addr;
 	err = 0;
 out_unlock:
 	rcu_read_unlock();
@@ -495,7 +495,7 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
 	if (sin6) {
 		sin6->sin6_family = AF_INET6;
 		sin6->sin6_port = 0;
-		ipv6_addr_copy(&sin6->sin6_addr, &ipv6_hdr(skb)->saddr);
+		sin6->sin6_addr = ipv6_hdr(skb)->saddr;
 		sin6->sin6_flowinfo = 0;
 		sin6->sin6_scope_id = 0;
 		if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)
@@ -846,11 +846,11 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
 		goto out;
 
 	if (!ipv6_addr_any(daddr))
-		ipv6_addr_copy(&fl6.daddr, daddr);
+		fl6.daddr = *daddr;
 	else
 		fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */
 	if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr))
-		ipv6_addr_copy(&fl6.saddr, &np->saddr);
+		fl6.saddr = np->saddr;
 
 	final_p = fl6_update_dst(&fl6, opt, &final);
 
--- a/net/ipv6/reassembly.c
+++ b/net/ipv6/reassembly.c
@@ -153,8 +153,8 @@ void ip6_frag_init(struct inet_frag_queue *q, void *a)
 
 	fq->id = arg->id;
 	fq->user = arg->user;
-	ipv6_addr_copy(&fq->saddr, arg->src);
-	ipv6_addr_copy(&fq->daddr, arg->dst);
+	fq->saddr = *arg->src;
+	fq->daddr = *arg->dst;
 }
 EXPORT_SYMBOL(ip6_frag_init);
 
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -729,14 +729,14 @@ static struct rt6_info *rt6_alloc_cow(const struct rt6_info *ort,
 			if (rt->rt6i_dst.plen != 128 &&
 			    ipv6_addr_equal(&ort->rt6i_dst.addr, daddr))
 				rt->rt6i_flags |= RTF_ANYCAST;
-			ipv6_addr_copy(&rt->rt6i_gateway, daddr);
+			rt->rt6i_gateway = *daddr;
 		}
 
 		rt->rt6i_flags |= RTF_CACHE;
 
 #ifdef CONFIG_IPV6_SUBTREES
 		if (rt->rt6i_src.plen && saddr) {
-			ipv6_addr_copy(&rt->rt6i_src.addr, saddr);
+			rt->rt6i_src.addr = *saddr;
 			rt->rt6i_src.plen = 128;
 		}
 #endif
@@ -932,7 +932,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, struct dst_entry *dst_ori
 			in6_dev_hold(rt->rt6i_idev);
 		rt->rt6i_expires = 0;
 
-		ipv6_addr_copy(&rt->rt6i_gateway, &ort->rt6i_gateway);
+		rt->rt6i_gateway = ort->rt6i_gateway;
 		rt->rt6i_flags = ort->rt6i_flags & ~RTF_EXPIRES;
 		rt->rt6i_metric = 0;
 
@@ -1087,7 +1087,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
 	rt->dst.output  = ip6_output;
 	dst_set_neighbour(&rt->dst, neigh);
 	atomic_set(&rt->dst.__refcnt, 1);
-	ipv6_addr_copy(&rt->rt6i_dst.addr, addr);
+	rt->rt6i_dst.addr = *addr;
 	rt->rt6i_dst.plen = 128;
 	rt->rt6i_idev     = idev;
 	dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255);
@@ -1324,7 +1324,7 @@ int ip6_route_add(struct fib6_config *cfg)
 		int gwa_type;
 
 		gw_addr = &cfg->fc_gateway;
-		ipv6_addr_copy(&rt->rt6i_gateway, gw_addr);
+		rt->rt6i_gateway = *gw_addr;
 		gwa_type = ipv6_addr_type(gw_addr);
 
 		if (gwa_type != (IPV6_ADDR_LINKLOCAL|IPV6_ADDR_UNICAST)) {
@@ -1378,7 +1378,7 @@ int ip6_route_add(struct fib6_config *cfg)
 			err = -EINVAL;
 			goto out;
 		}
-		ipv6_addr_copy(&rt->rt6i_prefsrc.addr, &cfg->fc_prefsrc);
+		rt->rt6i_prefsrc.addr = cfg->fc_prefsrc;
 		rt->rt6i_prefsrc.plen = 128;
 	} else
 		rt->rt6i_prefsrc.plen = 0;
@@ -1575,7 +1575,7 @@ static struct rt6_info *ip6_route_redirect(const struct in6_addr *dest,
 		},
 	};
 
-	ipv6_addr_copy(&rdfl.gateway, gateway);
+	rdfl.gateway = *gateway;
 
 	if (rt6_need_strict(dest))
 		flags |= RT6_LOOKUP_F_IFACE;
@@ -1631,7 +1631,7 @@ void rt6_redirect(const struct in6_addr *dest, const struct in6_addr *src,
 	if (on_link)
 		nrt->rt6i_flags &= ~RTF_GATEWAY;
 
-	ipv6_addr_copy(&nrt->rt6i_gateway, (struct in6_addr*)neigh->primary_key);
+	nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key;
 	dst_set_neighbour(&nrt->dst, neigh_clone(neigh));
 
 	if (ip6_ins_rt(nrt))
@@ -1777,7 +1777,7 @@ static struct rt6_info *ip6_rt_copy(const struct rt6_info *ort,
 		rt->dst.output = ort->dst.output;
 		rt->dst.flags |= DST_HOST;
 
-		ipv6_addr_copy(&rt->rt6i_dst.addr, dest);
+		rt->rt6i_dst.addr = *dest;
 		rt->rt6i_dst.plen = 128;
 		dst_copy_metrics(&rt->dst, &ort->dst);
 		rt->dst.error = ort->dst.error;
@@ -1787,7 +1787,7 @@ static struct rt6_info *ip6_rt_copy(const struct rt6_info *ort,
 		rt->dst.lastuse = jiffies;
 		rt->rt6i_expires = 0;
 
-		ipv6_addr_copy(&rt->rt6i_gateway, &ort->rt6i_gateway);
+		rt->rt6i_gateway = ort->rt6i_gateway;
 		rt->rt6i_flags = ort->rt6i_flags & ~RTF_EXPIRES;
 		rt->rt6i_metric = 0;
 
@@ -1850,8 +1850,8 @@ static struct rt6_info *rt6_add_route_info(struct net *net,
 		.fc_nlinfo.nl_net = net,
 	};
 
-	ipv6_addr_copy(&cfg.fc_dst, prefix);
-	ipv6_addr_copy(&cfg.fc_gateway, gwaddr);
+	cfg.fc_dst = *prefix;
+	cfg.fc_gateway = *gwaddr;
 
 	/* We should treat it as a default route if prefix length is 0. */
 	if (!prefixlen)
@@ -1900,7 +1900,7 @@ struct rt6_info *rt6_add_dflt_router(const struct in6_addr *gwaddr,
 		.fc_nlinfo.nl_net = dev_net(dev),
 	};
 
-	ipv6_addr_copy(&cfg.fc_gateway, gwaddr);
+	cfg.fc_gateway = *gwaddr;
 
 	ip6_route_add(&cfg);
 
@@ -1946,9 +1946,9 @@ static void rtmsg_to_fib6_config(struct net *net,
 
 	cfg->fc_nlinfo.nl_net = net;
 
-	ipv6_addr_copy(&cfg->fc_dst, &rtmsg->rtmsg_dst);
-	ipv6_addr_copy(&cfg->fc_src, &rtmsg->rtmsg_src);
-	ipv6_addr_copy(&cfg->fc_gateway, &rtmsg->rtmsg_gateway);
+	cfg->fc_dst = rtmsg->rtmsg_dst;
+	cfg->fc_src = rtmsg->rtmsg_src;
+	cfg->fc_gateway = rtmsg->rtmsg_gateway;
 }
 
 int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg)
@@ -2082,7 +2082,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
 	}
 	dst_set_neighbour(&rt->dst, neigh);
 
-	ipv6_addr_copy(&rt->rt6i_dst.addr, addr);
+	rt->rt6i_dst.addr = *addr;
 	rt->rt6i_dst.plen = 128;
 	rt->rt6i_table = fib6_get_table(net, RT6_TABLE_LOCAL);
 
@@ -2100,7 +2100,7 @@ int ip6_route_get_saddr(struct net *net,
 	struct inet6_dev *idev = ip6_dst_idev((struct dst_entry*)rt);
 	int err = 0;
 	if (rt->rt6i_prefsrc.plen)
-		ipv6_addr_copy(saddr, &rt->rt6i_prefsrc.addr);
+		*saddr = rt->rt6i_prefsrc.addr;
 	else
 		err = ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,
 					 daddr, prefs, saddr);
@@ -2439,7 +2439,7 @@ static int rt6_fill_node(struct net *net,
 
 	if (rt->rt6i_prefsrc.plen) {
 		struct in6_addr saddr_buf;
-		ipv6_addr_copy(&saddr_buf, &rt->rt6i_prefsrc.addr);
+		saddr_buf = rt->rt6i_prefsrc.addr;
 		NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
 	}
 
@@ -2513,14 +2513,14 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void
 		if (nla_len(tb[RTA_SRC]) < sizeof(struct in6_addr))
 			goto errout;
 
-		ipv6_addr_copy(&fl6.saddr, nla_data(tb[RTA_SRC]));
+		fl6.saddr = *(struct in6_addr *)nla_data(tb[RTA_SRC]);
 	}
 
 	if (tb[RTA_DST]) {
 		if (nla_len(tb[RTA_DST]) < sizeof(struct in6_addr))
 			goto errout;
 
-		ipv6_addr_copy(&fl6.daddr, nla_data(tb[RTA_DST]));
+		fl6.daddr = *(struct in6_addr *)nla_data(tb[RTA_DST]);
 	}
 
 	if (tb[RTA_IIF])
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -914,7 +914,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
 				goto done;
 #ifdef CONFIG_IPV6_SIT_6RD
 		} else {
-			ipv6_addr_copy(&ip6rd.prefix, &t->ip6rd.prefix);
+			ip6rd.prefix = t->ip6rd.prefix;
 			ip6rd.relay_prefix = t->ip6rd.relay_prefix;
 			ip6rd.prefixlen = t->ip6rd.prefixlen;
 			ip6rd.relay_prefixlen = t->ip6rd.relay_prefixlen;
@@ -1082,7 +1082,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
 			if (relay_prefix != ip6rd.relay_prefix)
 				goto done;
 
-			ipv6_addr_copy(&t->ip6rd.prefix, &prefix);
+			t->ip6rd.prefix = prefix;
 			t->ip6rd.relay_prefix = relay_prefix;
 			t->ip6rd.prefixlen = ip6rd.prefixlen;
 			t->ip6rd.relay_prefixlen = ip6rd.relay_prefixlen;
--- a/net/ipv6/syncookies.c
+++ b/net/ipv6/syncookies.c
@@ -200,8 +200,8 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
 	req->mss = mss;
 	ireq->rmt_port = th->source;
 	ireq->loc_port = th->dest;
-	ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
-	ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
+	ireq6->rmt_addr = ipv6_hdr(skb)->saddr;
+	ireq6->loc_addr = ipv6_hdr(skb)->daddr;
 	if (ipv6_opt_accepted(sk, skb) ||
 	    np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
 	    np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
@@ -237,9 +237,9 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
 		struct flowi6 fl6;
 		memset(&fl6, 0, sizeof(fl6));
 		fl6.flowi6_proto = IPPROTO_TCP;
-		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr);
+		fl6.daddr = ireq6->rmt_addr;
 		final_p = fl6_update_dst(&fl6, np->opt, &final);
-		ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr);
+		fl6.saddr = ireq6->loc_addr;
 		fl6.flowi6_oif = sk->sk_bound_dev_if;
 		fl6.flowi6_mark = sk->sk_mark;
 		fl6.fl6_dport = inet_rsk(req)->rmt_port;
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -153,7 +153,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);
 			if (flowlabel == NULL)
 				return -EINVAL;
-			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst);
+			usin->sin6_addr = flowlabel->dst;
 			fl6_sock_release(flowlabel);
 		}
 	}
@@ -195,7 +195,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 		tp->write_seq = 0;
 	}
 
-	ipv6_addr_copy(&np->daddr, &usin->sin6_addr);
+	np->daddr = usin->sin6_addr;
 	np->flow_label = fl6.flowlabel;
 
 	/*
@@ -244,9 +244,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 		saddr = &np->rcv_saddr;
 
 	fl6.flowi6_proto = IPPROTO_TCP;
-	ipv6_addr_copy(&fl6.daddr, &np->daddr);
-	ipv6_addr_copy(&fl6.saddr,
-		       (saddr ? saddr : &np->saddr));
+	fl6.daddr = np->daddr;
+	fl6.saddr = saddr ? *saddr : np->saddr;
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
 	fl6.flowi6_mark = sk->sk_mark;
 	fl6.fl6_dport = usin->sin6_port;
@@ -264,11 +263,11 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 
 	if (saddr == NULL) {
 		saddr = &fl6.saddr;
-		ipv6_addr_copy(&np->rcv_saddr, saddr);
+		np->rcv_saddr = *saddr;
 	}
 
 	/* set the source address */
-	ipv6_addr_copy(&np->saddr, saddr);
+	np->saddr = *saddr;
 	inet->inet_rcv_saddr = LOOPBACK4_IPV6;
 
 	sk->sk_gso_type = SKB_GSO_TCPV6;
@@ -398,8 +397,8 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 			 */
 			memset(&fl6, 0, sizeof(fl6));
 			fl6.flowi6_proto = IPPROTO_TCP;
-			ipv6_addr_copy(&fl6.daddr, &np->daddr);
-			ipv6_addr_copy(&fl6.saddr, &np->saddr);
+			fl6.daddr = np->daddr;
+			fl6.saddr = np->saddr;
 			fl6.flowi6_oif = sk->sk_bound_dev_if;
 			fl6.flowi6_mark = sk->sk_mark;
 			fl6.fl6_dport = inet->inet_dport;
@@ -489,8 +488,8 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = IPPROTO_TCP;
-	ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr);
-	ipv6_addr_copy(&fl6.saddr, &treq->loc_addr);
+	fl6.daddr = treq->rmt_addr;
+	fl6.saddr = treq->loc_addr;
 	fl6.flowlabel = 0;
 	fl6.flowi6_oif = treq->iif;
 	fl6.flowi6_mark = sk->sk_mark;
@@ -512,7 +511,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,
 	if (skb) {
 		__tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr);
 
-		ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr);
+		fl6.daddr = treq->rmt_addr;
 		err = ip6_xmit(sk, skb, &fl6, opt, np->tclass);
 		err = net_xmit_eval(err);
 	}
@@ -617,8 +616,7 @@ static int tcp_v6_md5_do_add(struct sock *sk, const struct in6_addr *peer,
 			tp->md5sig_info->alloced6++;
 		}
 
-		ipv6_addr_copy(&tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr,
-			       peer);
+		tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr = *peer;
 		tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.key = newkey;
 		tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.keylen = newkeylen;
 
@@ -750,8 +748,8 @@ static int tcp_v6_md5_hash_pseudoheader(struct tcp_md5sig_pool *hp,
 
 	bp = &hp->md5_blk.ip6;
 	/* 1. TCP pseudo-header (RFC2460) */
-	ipv6_addr_copy(&bp->saddr, saddr);
-	ipv6_addr_copy(&bp->daddr, daddr);
+	bp->saddr = *saddr;
+	bp->daddr = *daddr;
 	bp->protocol = cpu_to_be32(IPPROTO_TCP);
 	bp->len = cpu_to_be32(nbytes);
 
@@ -1039,8 +1037,8 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
 #endif
 
 	memset(&fl6, 0, sizeof(fl6));
-	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->saddr);
-	ipv6_addr_copy(&fl6.saddr, &ipv6_hdr(skb)->daddr);
+	fl6.daddr = ipv6_hdr(skb)->saddr;
+	fl6.saddr = ipv6_hdr(skb)->daddr;
 
 	buff->ip_summed = CHECKSUM_PARTIAL;
 	buff->csum = 0;
@@ -1250,8 +1248,8 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
 	tcp_openreq_init(req, &tmp_opt, skb);
 
 	treq = inet6_rsk(req);
-	ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr);
-	ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr);
+	treq->rmt_addr = ipv6_hdr(skb)->saddr;
+	treq->loc_addr = ipv6_hdr(skb)->daddr;
 	if (!want_cookie || tmp_opt.tstamp_ok)
 		TCP_ECN_create_request(req, tcp_hdr(skb));
 
@@ -1380,7 +1378,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
 
 		ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr);
 
-		ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr);
+		newnp->rcv_saddr = newnp->saddr;
 
 		inet_csk(newsk)->icsk_af_ops = &ipv6_mapped;
 		newsk->sk_backlog_rcv = tcp_v4_do_rcv;
@@ -1444,9 +1442,9 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
 
 	memcpy(newnp, np, sizeof(struct ipv6_pinfo));
 
-	ipv6_addr_copy(&newnp->daddr, &treq->rmt_addr);
-	ipv6_addr_copy(&newnp->saddr, &treq->loc_addr);
-	ipv6_addr_copy(&newnp->rcv_saddr, &treq->loc_addr);
+	newnp->daddr = treq->rmt_addr;
+	newnp->saddr = treq->loc_addr;
+	newnp->rcv_saddr = treq->loc_addr;
 	newsk->sk_bound_dev_if = treq->iif;
 
 	/* Now IPv6 options...
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -417,8 +417,7 @@ try_again:
 			ipv6_addr_set_v4mapped(ip_hdr(skb)->saddr,
 					       &sin6->sin6_addr);
 		else {
-			ipv6_addr_copy(&sin6->sin6_addr,
-				       &ipv6_hdr(skb)->saddr);
+			sin6->sin6_addr = ipv6_hdr(skb)->saddr;
 			if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)
 				sin6->sin6_scope_id = IP6CB(skb)->iif;
 		}
@@ -1115,11 +1114,11 @@ do_udp_sendmsg:
 
 	fl6.flowi6_proto = sk->sk_protocol;
 	if (!ipv6_addr_any(daddr))
-		ipv6_addr_copy(&fl6.daddr, daddr);
+		fl6.daddr = *daddr;
 	else
 		fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */
 	if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr))
-		ipv6_addr_copy(&fl6.saddr, &np->saddr);
+		fl6.saddr = np->saddr;
 	fl6.fl6_sport = inet->inet_sport;
 
 	final_p = fl6_update_dst(&fl6, opt, &final);
--- a/net/ipv6/xfrm6_mode_beet.c
+++ b/net/ipv6/xfrm6_mode_beet.c
@@ -72,8 +72,8 @@ static int xfrm6_beet_output(struct xfrm_state *x, struct sk_buff *skb)
 		top_iph->nexthdr = IPPROTO_BEETPH;
 	}
 
-	ipv6_addr_copy(&top_iph->saddr, (struct in6_addr *)&x->props.saddr);
-	ipv6_addr_copy(&top_iph->daddr, (struct in6_addr *)&x->id.daddr);
+	top_iph->saddr = *(struct in6_addr *)&x->props.saddr;
+	top_iph->daddr = *(struct in6_addr *)&x->id.daddr;
 	return 0;
 }
 
@@ -99,8 +99,8 @@ static int xfrm6_beet_input(struct xfrm_state *x, struct sk_buff *skb)
 
 	ip6h = ipv6_hdr(skb);
 	ip6h->payload_len = htons(skb->len - size);
-	ipv6_addr_copy(&ip6h->daddr, (struct in6_addr *) &x->sel.daddr.a6);
-	ipv6_addr_copy(&ip6h->saddr, (struct in6_addr *) &x->sel.saddr.a6);
+	ip6h->daddr = *(struct in6_addr *)&x->sel.daddr.a6;
+	ip6h->saddr = *(struct in6_addr *)&x->sel.saddr.a6;
 	err = 0;
 out:
 	return err;
--- a/net/ipv6/xfrm6_mode_tunnel.c
+++ b/net/ipv6/xfrm6_mode_tunnel.c
@@ -55,8 +55,8 @@ static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
 		dsfield &= ~INET_ECN_MASK;
 	ipv6_change_dsfield(top_iph, 0, dsfield);
 	top_iph->hop_limit = ip6_dst_hoplimit(dst->child);
-	ipv6_addr_copy(&top_iph->saddr, (const struct in6_addr *)&x->props.saddr);
-	ipv6_addr_copy(&top_iph->daddr, (const struct in6_addr *)&x->id.daddr);
+	top_iph->saddr = *(struct in6_addr *)&x->props.saddr;
+	top_iph->daddr = *(struct in6_addr *)&x->id.daddr;
 	return 0;
 }
 
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -49,7 +49,7 @@ static void xfrm6_local_rxpmtu(struct sk_buff *skb, u32 mtu)
 	struct sock *sk = skb->sk;
 
 	fl6.flowi6_oif = sk->sk_bound_dev_if;
-	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->daddr);
+	fl6.daddr = ipv6_hdr(skb)->daddr;
 
 	ipv6_local_rxpmtu(sk, &fl6, mtu);
 }
@@ -60,7 +60,7 @@ static void xfrm6_local_error(struct sk_buff *skb, u32 mtu)
 	struct sock *sk = skb->sk;
 
 	fl6.fl6_dport = inet_sk(sk)->inet_dport;
-	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->daddr);
+	fl6.daddr = ipv6_hdr(skb)->daddr;
 
 	ipv6_local_error(sk, EMSGSIZE, &fl6, mtu);
 }
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -132,8 +132,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
 	memset(fl6, 0, sizeof(struct flowi6));
 	fl6->flowi6_mark = skb->mark;
 
-	ipv6_addr_copy(&fl6->daddr, reverse ? &hdr->saddr : &hdr->daddr);
-	ipv6_addr_copy(&fl6->saddr, reverse ? &hdr->daddr : &hdr->saddr);
+	fl6->daddr = reverse ? hdr->saddr : hdr->daddr;
+	fl6->saddr = reverse ? hdr->daddr : hdr->saddr;
 
 	while (nh + offset + 1 < skb->data ||
 	       pskb_may_pull(skb, nh + offset + 1 - skb->data)) {
--- a/net/ipv6/xfrm6_state.c
+++ b/net/ipv6/xfrm6_state.c
@@ -27,8 +27,8 @@ __xfrm6_init_tempsel(struct xfrm_selector *sel, const struct flowi *fl)
 
 	/* Initialize temporary selector matching only
 	 * to current session. */
-	ipv6_addr_copy((struct in6_addr *)&sel->daddr, &fl6->daddr);
-	ipv6_addr_copy((struct in6_addr *)&sel->saddr, &fl6->saddr);
+	*(struct in6_addr *)&sel->daddr = fl6->daddr;
+	*(struct in6_addr *)&sel->saddr = fl6->saddr;
 	sel->dport = xfrm_flowi_dport(fl, &fl6->uli);
 	sel->dport_mask = htons(0xffff);
 	sel->sport = xfrm_flowi_sport(fl, &fl6->uli);
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -712,7 +712,7 @@ static unsigned int pfkey_sockaddr_fill(const xfrm_address_t *xaddr, __be16 port
 		sin6->sin6_family = AF_INET6;
 		sin6->sin6_port = port;
 		sin6->sin6_flowinfo = 0;
-		ipv6_addr_copy(&sin6->sin6_addr, (const struct in6_addr *)xaddr->a6);
+		sin6->sin6_addr = *(struct in6_addr *)xaddr->a6;
 		sin6->sin6_scope_id = 0;
 		return 128;
 	    }
--- a/net/netfilter/ipset/ip_set_hash_ip.c
+++ b/net/netfilter/ipset/ip_set_hash_ip.c
@@ -241,7 +241,7 @@ hash_ip6_data_isnull(const struct hash_ip6_elem *elem)
 static inline void
 hash_ip6_data_copy(struct hash_ip6_elem *dst, const struct hash_ip6_elem *src)
 {
-	ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
+	dst->ip.in6 = src->ip.in6;
 }
 
 static inline void
--- a/net/netfilter/ipset/ip_set_hash_net.c
+++ b/net/netfilter/ipset/ip_set_hash_net.c
@@ -267,7 +267,7 @@ static inline void
 hash_net6_data_copy(struct hash_net6_elem *dst,
 		    const struct hash_net6_elem *src)
 {
-	ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
+	dst->ip.in6 = src->ip.in6;
 	dst->cidr = src->cidr;
 }
 
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -983,7 +983,7 @@ static int ip_vs_out_icmp_v6(struct sk_buff *skb, int *related,
 	if (!cp)
 		return NF_ACCEPT;
 
-	ipv6_addr_copy(&snet.in6, &iph->saddr);
+	snet.in6 = iph->saddr;
 	return handle_response_icmp(AF_INET6, skb, &snet, cih->nexthdr, cp,
 				    pp, offset, sizeof(struct ipv6hdr));
 }
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -603,9 +603,9 @@ sloop:
 #ifdef CONFIG_IP_VS_IPV6
 	if (cp->af == AF_INET6) {
 		p += sizeof(struct ip_vs_sync_v6);
-		ipv6_addr_copy(&s->v6.caddr, &cp->caddr.in6);
-		ipv6_addr_copy(&s->v6.vaddr, &cp->vaddr.in6);
-		ipv6_addr_copy(&s->v6.daddr, &cp->daddr.in6);
+		s->v6.caddr = cp->caddr.in6;
+		s->v6.vaddr = cp->vaddr.in6;
+		s->v6.daddr = cp->daddr.in6;
 	} else
 #endif
 	{
--- a/net/netfilter/ipvs/ip_vs_xmit.c
+++ b/net/netfilter/ipvs/ip_vs_xmit.c
@@ -235,7 +235,7 @@ __ip_vs_route_output_v6(struct net *net, struct in6_addr *daddr,
 			goto out_err;
 		}
 	}
-	ipv6_addr_copy(ret_saddr, &fl6.saddr);
+	*ret_saddr = fl6.saddr;
 	return dst;
 
 out_err:
@@ -279,7 +279,7 @@ __ip_vs_get_out_rt_v6(struct sk_buff *skb, struct ip_vs_dest *dest,
 				  atomic_read(&rt->dst.__refcnt));
 		}
 		if (ret_saddr)
-			ipv6_addr_copy(ret_saddr, &dest->dst_saddr.in6);
+			*ret_saddr = dest->dst_saddr.in6;
 		spin_unlock(&dest->dst_lock);
 	} else {
 		dst = __ip_vs_route_output_v6(net, daddr, ret_saddr, do_xfrm);
@@ -705,7 +705,7 @@ ip_vs_nat_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
 	/* mangle the packet */
 	if (pp->dnat_handler && !pp->dnat_handler(skb, pp, cp))
 		goto tx_error;
-	ipv6_addr_copy(&ipv6_hdr(skb)->daddr, &cp->daddr.in6);
+	ipv6_hdr(skb)->daddr = cp->daddr.in6;
 
 	if (!local || !skb->dev) {
 		/* drop the old route when skb is not shared */
@@ -967,8 +967,8 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
 	be16_add_cpu(&iph->payload_len, sizeof(*old_iph));
 	iph->priority		=	old_iph->priority;
 	memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl));
-	ipv6_addr_copy(&iph->daddr, &cp->daddr.in6);
-	ipv6_addr_copy(&iph->saddr, &saddr);
+	iph->daddr = cp->daddr.in6;
+	iph->saddr = saddr;
 	iph->hop_limit		=	old_iph->hop_limit;
 
 	/* Another hack: avoid icmp_send in ip_fragment */
--- a/net/netfilter/nf_conntrack_h323_main.c
+++ b/net/netfilter/nf_conntrack_h323_main.c
@@ -750,10 +750,10 @@ static int callforward_do_filter(const union nf_inet_addr *src,
 		struct rt6_info *rt1, *rt2;
 
 		memset(&fl1, 0, sizeof(fl1));
-		ipv6_addr_copy(&fl1.daddr, &src->in6);
+		fl1.daddr = src->in6;
 
 		memset(&fl2, 0, sizeof(fl2));
-		ipv6_addr_copy(&fl2.daddr, &dst->in6);
+		fl2.daddr = dst->in6;
 		if (!afinfo->route(&init_net, (struct dst_entry **)&rt1,
 				   flowi6_to_flowi(&fl1), false)) {
 			if (!afinfo->route(&init_net, (struct dst_entry **)&rt2,
--- a/net/netfilter/xt_TCPMSS.c
+++ b/net/netfilter/xt_TCPMSS.c
@@ -161,7 +161,7 @@ static u_int32_t tcpmss_reverse_mtu(const struct sk_buff *skb,
 		struct flowi6 *fl6 = &fl.u.ip6;
 
 		memset(fl6, 0, sizeof(*fl6));
-		ipv6_addr_copy(&fl6->daddr, &ipv6_hdr(skb)->saddr);
+		fl6->daddr = ipv6_hdr(skb)->saddr;
 	}
 	rcu_read_lock();
 	ai = nf_get_afinfo(family);
--- a/net/netfilter/xt_addrtype.c
+++ b/net/netfilter/xt_addrtype.c
@@ -42,7 +42,7 @@ static u32 match_lookup_rt6(struct net *net, const struct net_device *dev,
 	int route_err;
 
 	memset(&flow, 0, sizeof(flow));
-	ipv6_addr_copy(&flow.daddr, addr);
+	flow.daddr = *addr;
 	if (dev)
 		flow.flowi6_oif = dev->ifindex;
 
--- a/net/netlabel/netlabel_kapi.c
+++ b/net/netlabel/netlabel_kapi.c
@@ -155,12 +155,12 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
 			if (map6 == NULL)
 				goto cfg_unlbl_map_add_failure;
 			map6->type = NETLBL_NLTYPE_UNLABELED;
-			ipv6_addr_copy(&map6->list.addr, addr6);
+			map6->list.addr = *addr6;
 			map6->list.addr.s6_addr32[0] &= mask6->s6_addr32[0];
 			map6->list.addr.s6_addr32[1] &= mask6->s6_addr32[1];
 			map6->list.addr.s6_addr32[2] &= mask6->s6_addr32[2];
 			map6->list.addr.s6_addr32[3] &= mask6->s6_addr32[3];
-			ipv6_addr_copy(&map6->list.mask, mask6);
+			map6->list.mask = *mask6;
 			map6->list.valid = 1;
 			ret_val = netlbl_af4list_add(&map4->list,
 						     &addrmap->list4);
--- a/net/netlabel/netlabel_mgmt.c
+++ b/net/netlabel/netlabel_mgmt.c
@@ -216,12 +216,12 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
 			ret_val = -ENOMEM;
 			goto add_failure;
 		}
-		ipv6_addr_copy(&map->list.addr, addr);
+		map->list.addr = *addr;
 		map->list.addr.s6_addr32[0] &= mask->s6_addr32[0];
 		map->list.addr.s6_addr32[1] &= mask->s6_addr32[1];
 		map->list.addr.s6_addr32[2] &= mask->s6_addr32[2];
 		map->list.addr.s6_addr32[3] &= mask->s6_addr32[3];
-		ipv6_addr_copy(&map->list.mask, mask);
+		map->list.mask = *mask;
 		map->list.valid = 1;
 		map->type = entry->type;
 
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -300,12 +300,12 @@ static int netlbl_unlhsh_add_addr6(struct netlbl_unlhsh_iface *iface,
 	if (entry == NULL)
 		return -ENOMEM;
 
-	ipv6_addr_copy(&entry->list.addr, addr);
+	entry->list.addr = *addr;
 	entry->list.addr.s6_addr32[0] &= mask->s6_addr32[0];
 	entry->list.addr.s6_addr32[1] &= mask->s6_addr32[1];
 	entry->list.addr.s6_addr32[2] &= mask->s6_addr32[2];
 	entry->list.addr.s6_addr32[3] &= mask->s6_addr32[3];
-	ipv6_addr_copy(&entry->list.mask, mask);
+	entry->list.mask = *mask;
 	entry->list.valid = 1;
 	entry->secid = secid;
 
--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -107,7 +107,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
 		if (addr) {
 			addr->a.v6.sin6_family = AF_INET6;
 			addr->a.v6.sin6_port = 0;
-			ipv6_addr_copy(&addr->a.v6.sin6_addr, &ifa->addr);
+			addr->a.v6.sin6_addr = ifa->addr;
 			addr->a.v6.sin6_scope_id = ifa->idev->dev->ifindex;
 			addr->valid = 1;
 			spin_lock_bh(&sctp_local_addr_lock);
@@ -219,8 +219,8 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport)
 	/* Fill in the dest address from the route entry passed with the skb
 	 * and the source address from the transport.
 	 */
-	ipv6_addr_copy(&fl6.daddr, &transport->ipaddr.v6.sin6_addr);
-	ipv6_addr_copy(&fl6.saddr, &transport->saddr.v6.sin6_addr);
+	fl6.daddr = transport->ipaddr.v6.sin6_addr;
+	fl6.saddr = transport->saddr.v6.sin6_addr;
 
 	fl6.flowlabel = np->flow_label;
 	IP6_ECN_flow_xmit(sk, fl6.flowlabel);
@@ -231,7 +231,7 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport)
 
 	if (np->opt && np->opt->srcrt) {
 		struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt;
-		ipv6_addr_copy(&fl6.daddr, rt0->addr);
+		fl6.daddr = *rt0->addr;
 	}
 
 	SCTP_DEBUG_PRINTK("%s: skb:%p, len:%d, src:%pI6 dst:%pI6\n",
@@ -265,7 +265,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
 	sctp_scope_t scope;
 
 	memset(fl6, 0, sizeof(struct flowi6));
-	ipv6_addr_copy(&fl6->daddr, &daddr->v6.sin6_addr);
+	fl6->daddr = daddr->v6.sin6_addr;
 	fl6->fl6_dport = daddr->v6.sin6_port;
 	fl6->flowi6_proto = IPPROTO_SCTP;
 	if (ipv6_addr_type(&daddr->v6.sin6_addr) & IPV6_ADDR_LINKLOCAL)
@@ -277,7 +277,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
 		fl6->fl6_sport = htons(asoc->base.bind_addr.port);
 
 	if (saddr) {
-		ipv6_addr_copy(&fl6->saddr, &saddr->v6.sin6_addr);
+		fl6->saddr = saddr->v6.sin6_addr;
 		fl6->fl6_sport = saddr->v6.sin6_port;
 		SCTP_DEBUG_PRINTK("SRC=%pI6 - ", &fl6->saddr);
 	}
@@ -334,7 +334,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
 	}
 	rcu_read_unlock();
 	if (baddr) {
-		ipv6_addr_copy(&fl6->saddr, &baddr->v6.sin6_addr);
+		fl6->saddr = baddr->v6.sin6_addr;
 		fl6->fl6_sport = baddr->v6.sin6_port;
 		dst = ip6_dst_lookup_flow(sk, fl6, NULL, false);
 	}
@@ -375,7 +375,7 @@ static void sctp_v6_get_saddr(struct sctp_sock *sk,
 
 	if (t->dst) {
 		saddr->v6.sin6_family = AF_INET6;
-		ipv6_addr_copy(&saddr->v6.sin6_addr, &fl6->saddr);
+		saddr->v6.sin6_addr = fl6->saddr;
 	}
 }
 
@@ -400,7 +400,7 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
 		if (addr) {
 			addr->a.v6.sin6_family = AF_INET6;
 			addr->a.v6.sin6_port = 0;
-			ipv6_addr_copy(&addr->a.v6.sin6_addr, &ifp->addr);
+			addr->a.v6.sin6_addr = ifp->addr;
 			addr->a.v6.sin6_scope_id = dev->ifindex;
 			addr->valid = 1;
 			INIT_LIST_HEAD(&addr->list);
@@ -416,7 +416,6 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
 static void sctp_v6_from_skb(union sctp_addr *addr,struct sk_buff *skb,
 			     int is_saddr)
 {
-	void *from;
 	__be16 *port;
 	struct sctphdr *sh;
 
@@ -428,12 +427,11 @@ static void sctp_v6_from_skb(union sctp_addr *addr,struct sk_buff *skb,
 	sh = sctp_hdr(skb);
 	if (is_saddr) {
 		*port  = sh->source;
-		from = &ipv6_hdr(skb)->saddr;
+		addr->v6.sin6_addr = ipv6_hdr(skb)->saddr;
 	} else {
 		*port = sh->dest;
-		from = &ipv6_hdr(skb)->daddr;
+		addr->v6.sin6_addr = ipv6_hdr(skb)->daddr;
 	}
-	ipv6_addr_copy(&addr->v6.sin6_addr, from);
 }
 
 /* Initialize an sctp_addr from a socket. */
@@ -441,7 +439,7 @@ static void sctp_v6_from_sk(union sctp_addr *addr, struct sock *sk)
 {
 	addr->v6.sin6_family = AF_INET6;
 	addr->v6.sin6_port = 0;
-	ipv6_addr_copy(&addr->v6.sin6_addr, &inet6_sk(sk)->rcv_saddr);
+	addr->v6.sin6_addr = inet6_sk(sk)->rcv_saddr;
 }
 
 /* Initialize sk->sk_rcv_saddr from sctp_addr. */
@@ -454,7 +452,7 @@ static void sctp_v6_to_sk_saddr(union sctp_addr *addr, struct sock *sk)
 		inet6_sk(sk)->rcv_saddr.s6_addr32[3] =
 			addr->v4.sin_addr.s_addr;
 	} else {
-		ipv6_addr_copy(&inet6_sk(sk)->rcv_saddr, &addr->v6.sin6_addr);
+		inet6_sk(sk)->rcv_saddr = addr->v6.sin6_addr;
 	}
 }
 
@@ -467,7 +465,7 @@ static void sctp_v6_to_sk_daddr(union sctp_addr *addr, struct sock *sk)
 		inet6_sk(sk)->daddr.s6_addr32[2] = htonl(0x0000ffff);
 		inet6_sk(sk)->daddr.s6_addr32[3] = addr->v4.sin_addr.s_addr;
 	} else {
-		ipv6_addr_copy(&inet6_sk(sk)->daddr, &addr->v6.sin6_addr);
+		inet6_sk(sk)->daddr = addr->v6.sin6_addr;
 	}
 }
 
@@ -479,7 +477,7 @@ static void sctp_v6_from_addr_param(union sctp_addr *addr,
 	addr->v6.sin6_family = AF_INET6;
 	addr->v6.sin6_port = port;
 	addr->v6.sin6_flowinfo = 0; /* BUG */
-	ipv6_addr_copy(&addr->v6.sin6_addr, &param->v6.addr);
+	addr->v6.sin6_addr = param->v6.addr;
 	addr->v6.sin6_scope_id = iif;
 }
 
@@ -493,7 +491,7 @@ static int sctp_v6_to_addr_param(const union sctp_addr *addr,
 
 	param->v6.param_hdr.type = SCTP_PARAM_IPV6_ADDRESS;
 	param->v6.param_hdr.length = htons(length);
-	ipv6_addr_copy(&param->v6.addr, &addr->v6.sin6_addr);
+	param->v6.addr = addr->v6.sin6_addr;
 
 	return length;
 }
@@ -504,7 +502,7 @@ static void sctp_v6_to_addr(union sctp_addr *addr, struct in6_addr *saddr,
 {
 	addr->sa.sa_family = AF_INET6;
 	addr->v6.sin6_port = port;
-	ipv6_addr_copy(&addr->v6.sin6_addr, saddr);
+	addr->v6.sin6_addr = *saddr;
 }
 
 /* Compare addresses exactly.
@@ -759,7 +757,7 @@ static void sctp_inet6_event_msgname(struct sctp_ulpevent *event,
 		}
 
 		sin6from = &asoc->peer.primary_addr.v6;
-		ipv6_addr_copy(&sin6->sin6_addr, &sin6from->sin6_addr);
+		sin6->sin6_addr = sin6from->sin6_addr;
 		if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)
 			sin6->sin6_scope_id = sin6from->sin6_scope_id;
 	}
@@ -787,7 +785,7 @@ static void sctp_inet6_skb_msgname(struct sk_buff *skb, char *msgname,
 		}
 
 		/* Otherwise, just copy the v6 address. */
-		ipv6_addr_copy(&sin6->sin6_addr, &ipv6_hdr(skb)->saddr);
+		sin6->sin6_addr = ipv6_hdr(skb)->saddr;
 		if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL) {
 			struct sctp_ulpevent *ev = sctp_skb2event(skb);
 			sin6->sin6_scope_id = ev->iif;
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -804,7 +804,7 @@ static int sctp_send_asconf_del_ip(struct sock		*sk,
 				struct sockaddr_in6 *sin6;
 
 				sin6 = (struct sockaddr_in6 *)addrs;
-				ipv6_addr_copy(&asoc->asconf_addr_del_pending->v6.sin6_addr, &sin6->sin6_addr);
+				asoc->asconf_addr_del_pending->v6.sin6_addr = sin6->sin6_addr;
 			}
 			SCTP_DEBUG_PRINTK_IPADDR("send_asconf_del_ip: keep the last address asoc: %p ",
 			    " at %p\n", asoc, asoc->asconf_addr_del_pending,
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -134,7 +134,7 @@ static void ip_map_init(struct cache_head *cnew, struct cache_head *citem)
 	struct ip_map *item = container_of(citem, struct ip_map, h);
 
 	strcpy(new->m_class, item->m_class);
-	ipv6_addr_copy(&new->m_addr, &item->m_addr);
+	new->m_addr = item->m_addr;
 }
 static void update(struct cache_head *cnew, struct cache_head *citem)
 {
@@ -274,7 +274,7 @@ static int ip_map_show(struct seq_file *m,
 	}
 	im = container_of(h, struct ip_map, h);
 	/* class addr domain */
-	ipv6_addr_copy(&addr, &im->m_addr);
+	addr = im->m_addr;
 
 	if (test_bit(CACHE_VALID, &h->flags) &&
 	    !test_bit(CACHE_NEGATIVE, &h->flags))
@@ -297,7 +297,7 @@ static struct ip_map *__ip_map_lookup(struct cache_detail *cd, char *class,
 	struct cache_head *ch;
 
 	strcpy(ip.m_class, class);
-	ipv6_addr_copy(&ip.m_addr, addr);
+	ip.m_addr = *addr;
 	ch = sunrpc_cache_lookup(cd, &ip.h,
 				 hash_str(class, IP_HASHBITS) ^
 				 hash_ip6(*addr));
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -157,7 +157,7 @@ static void svc_set_cmsg_data(struct svc_rqst *rqstp, struct cmsghdr *cmh)
 			cmh->cmsg_level = SOL_IPV6;
 			cmh->cmsg_type = IPV6_PKTINFO;
 			pki->ipi6_ifindex = daddr->sin6_scope_id;
-			ipv6_addr_copy(&pki->ipi6_addr,	&daddr->sin6_addr);
+			pki->ipi6_addr = daddr->sin6_addr;
 			cmh->cmsg_len = CMSG_LEN(sizeof(*pki));
 		}
 		break;
@@ -523,7 +523,7 @@ static int svc_udp_get_dest_address6(struct svc_rqst *rqstp,
 		return 0;
 
 	daddr->sin6_family = AF_INET6;
-	ipv6_addr_copy(&daddr->sin6_addr, &pki->ipi6_addr);
+	daddr->sin6_addr = pki->ipi6_addr;
 	daddr->sin6_scope_id = pki->ipi6_ifindex;
 	return 1;
 }
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1035,16 +1035,12 @@ static struct xfrm_state *__find_acq_core(struct net *net, struct xfrm_mark *m,
 			break;
 
 		case AF_INET6:
-			ipv6_addr_copy((struct in6_addr *)x->sel.daddr.a6,
-				       (const struct in6_addr *)daddr);
-			ipv6_addr_copy((struct in6_addr *)x->sel.saddr.a6,
-				       (const struct in6_addr *)saddr);
+			*(struct in6_addr *)x->sel.daddr.a6 = *(struct in6_addr *)daddr;
+			*(struct in6_addr *)x->sel.saddr.a6 = *(struct in6_addr *)saddr;
 			x->sel.prefixlen_d = 128;
 			x->sel.prefixlen_s = 128;
-			ipv6_addr_copy((struct in6_addr *)x->props.saddr.a6,
-				       (const struct in6_addr *)saddr);
-			ipv6_addr_copy((struct in6_addr *)x->id.daddr.a6,
-				       (const struct in6_addr *)daddr);
+			*(struct in6_addr *)x->props.saddr.a6 = *(struct in6_addr *)saddr;
+			*(struct in6_addr *)x->id.daddr.a6 = *(struct in6_addr *)daddr;
 			break;
 		}
 
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -118,8 +118,8 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb,
 	ip6 = ipv6_hdr(skb);
 	if (ip6 == NULL)
 		return -EINVAL;
-	ipv6_addr_copy(&ad->u.net.v6info.saddr, &ip6->saddr);
-	ipv6_addr_copy(&ad->u.net.v6info.daddr, &ip6->daddr);
+	ad->u.net.v6info.saddr = ip6->saddr;
+	ad->u.net.v6info.daddr = ip6->daddr;
 	ret = 0;
 	/* IPv6 can have several extension header before the Transport header
 	 * skip them */
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3567,8 +3567,8 @@ static int selinux_parse_skb_ipv6(struct sk_buff *skb,
 	if (ip6 == NULL)
 		goto out;
 
-	ipv6_addr_copy(&ad->u.net.v6info.saddr, &ip6->saddr);
-	ipv6_addr_copy(&ad->u.net.v6info.daddr, &ip6->daddr);
+	ad->u.net.v6info.saddr = ip6->saddr;
+	ad->u.net.v6info.daddr = ip6->daddr;
 	ret = 0;
 
 	nexthdr = ip6->nexthdr;
@@ -3871,7 +3871,7 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, in
 		if (family == PF_INET)
 			ad.u.net.v4info.saddr = addr4->sin_addr.s_addr;
 		else
-			ipv6_addr_copy(&ad.u.net.v6info.saddr, &addr6->sin6_addr);
+			ad.u.net.v6info.saddr = addr6->sin6_addr;
 
 		err = avc_has_perm(sksec->sid, sid,
 				   sksec->sclass, node_perm, &ad);
--- a/security/selinux/netnode.c
+++ b/security/selinux/netnode.c
@@ -220,7 +220,7 @@ static int sel_netnode_sid_slow(void *addr, u16 family, u32 *sid)
 	case PF_INET6:
 		ret = security_node_sid(PF_INET6,
 					addr, sizeof(struct in6_addr), sid);
-		ipv6_addr_copy(&new->nsec.addr.ipv6, addr);
+		new->nsec.addr.ipv6 = *(struct in6_addr *)addr;
 		break;
 	default:
 		BUG();

^ permalink raw reply

* Re: WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413
From: Markus Trippelsdorf @ 2011-11-21 13:15 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Alex,Shi, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Christoph Lameter, Pekka Enberg, Matt Mackall,
	netdev@vger.kernel.org
In-Reply-To: <1321866988.2552.10.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>

On 2011.11.21 at 10:16 +0100, Eric Dumazet wrote:
> Le lundi 21 novembre 2011 à 09:24 +0100, Markus Trippelsdorf a écrit :
> > On 2011.11.21 at 09:05 +0100, Markus Trippelsdorf wrote:
> > > On 2011.11.21 at 08:44 +0800, Alex,Shi wrote:
> > > > On Fri, 2011-11-18 at 20:02 +0800, Markus Trippelsdorf wrote:
> > > > > On 2011.11.18 at 09:54 +0100, Markus Trippelsdorf wrote:
> > > > > > On 2011.11.18 at 16:43 +0800, Alex,Shi wrote:
> > > > > > > > > 
> > > > > > > > > The dirty flag comes from a bunch of unrelated xfs patches from Christoph, that
> > > > > > > > > I'm testing right now.
> > > > > > > 
> > > > > > > Where is the xfs patchset? I am wondering if it is due to slub code. 
> > > > > 
> > > > > I begin to wonder if this might be the result of a compiler bug. 
> > > > > The kernel in question was compiled with gcc version 4.7.0 20111117. And
> > > > > there was commit to the gcc repository today that looks suspicious:
> > > > > http://gcc.gnu.org/viewcvs?view=revision&revision=181466
> > > > > 
> > > > 
> > > > Tell us if it is still there and you can reproduce it.
> > > 
> > > Hm, just noticed the "3.2.0-rc1 panic on PowerPC" thread:
> > > http://thread.gmane.org/gmane.linux.kernel/1215584
> > > 
> > > The backtraces look suspiciously similar to mine.
> > 
> > So everything points to commit 87fb4b7b533:
> > "net: more accurate skb truesize"
> > 
> > Can you take a look Eric?
> 
> 
> This commit was followed by a fix (for SLOB, since SLUB/SLAB were not
> affected)
> 
> Check commit bc417e30f8df (net: Add back alignment for size for
> __alloc_skb)
> 
> If current kernel still crash, I believe there is a problem elsewhere (a
> refcounting problem) that makes underlying page being reused :
> 
> The ksize(skb->head) call in pskb_expand_head() assumes skb->head is a
> valid zone, not an already freed one...

I've enabled CONFIG_SLUB_DEBUG_ON and this is what happend:


Nov 21 13:58:21 x4 kernel: Freeing unused kernel memory: 1212k freed
Nov 21 13:58:21 x4 kernel: Freeing unused kernel memory: 128k freed
Nov 21 13:58:21 x4 kernel: XFS (sda): Mounting Filesystem
Nov 21 13:58:21 x4 kernel: XFS (sda): Ending clean mount
Nov 21 13:58:21 x4 kernel: ATL1E 0000:02:00.0: irq 40 for MSI/MSI-X
Nov 21 13:58:21 x4 kernel: ATL1E 0000:02:00.0: eth0: NIC Link is Up <100 Mbps Full Duplex>
Nov 21 13:58:21 x4 kernel: ATL1E 0000:02:00.0: eth0: NIC Link is Up <100 Mbps Full Duplex>
Nov 21 13:58:22 x4 kernel: Adding 2097148k swap on /var/tmp/swap/swapfile.  Priority:-1 extents:2 across:2634672k 
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ce6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ce7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ce8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ce9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ceac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cebc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cecc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cedc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ceec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cefc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cf9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cfac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cfbc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cfcc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cfdc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cfec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6cffc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d00c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d01c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d02c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d03c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d04c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d05c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d06c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d07c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d08c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d09c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d0fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d10c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d11c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d12c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d13c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d14c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d15c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d16c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d17c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d18c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d19c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d1fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d20c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d21c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d22c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d23c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d24c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d25c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d26c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d27c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d28c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d29c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d2fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d30c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d31c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d32c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d33c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d34c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d35c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d36c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d37c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d38c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d39c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d3fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d40c: 00 00 00 00 90 15 09 11 02 88 ff ff 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d41c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d42c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d43c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d44c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d45c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d46c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d47c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d48c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d49c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d4fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d50c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d51c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d52c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d53c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d54c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d55c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d56c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d57c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d58c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d59c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d5fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d60c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d61c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d62c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d63c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d64c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d65c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d66c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d67c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d68c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d69c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d6fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d70c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d71c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d72c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d73c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d74c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d75c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d76c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d77c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d78c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d79c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d7fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d80c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d81c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d82c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d83c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d84c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d85c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d86c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d87c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d88c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d89c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d8fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d90c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d91c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d92c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d93c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d94c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d95c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d96c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d97c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d98c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d99c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6d9fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6da9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6daac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dabc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dacc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dadc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6daec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dafc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6db9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbbc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbcc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbdc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dbfc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dc9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dcac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dcbc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dccc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dcdc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dcec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dcfc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dd9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ddac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ddbc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ddcc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dddc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ddec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6ddfc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6de9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6deac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6debc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6decc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dedc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6deec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6defc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df0c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df1c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df2c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df3c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df4c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df5c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df6c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df8c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6df9c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dfac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dfbc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dfcc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dfdc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dfec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6dffc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e00c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e01c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e02c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e03c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e04c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e05c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e06c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e07c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e08c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e09c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e0fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e10c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e11c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e12c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e13c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e14c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e15c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e16c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e17c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e18c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e19c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1cc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e1fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e20c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e21c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e22c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e23c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e24c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e25c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e26c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e27c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e28c: 00 00 00 00 cc cc cc cc cc cc cc cc 48 a1 c6 15  ............H...
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e29c: 02 88 ff ff 9d 4f 8a 81 ff ff ff ff f1 64 4c 81  .....O.......dL.
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2ac: ff ff ff ff 01 4f 10 81 ff ff ff ff 9d 4f 8a 81  .....O.......O..
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2bc: ff ff ff ff 83 08 89 81 ff ff ff ff cc 09 89 81  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2cc: ff ff ff ff b4 dd 4c 81 ff ff ff ff 00 00 00 00  ......L.........
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2dc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2ec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e2fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e30c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e31c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e32c: 01 00 00 00 75 6f fb ff 00 00 00 00 00 00 00 00  ....uo..........
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e33c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e34c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e35c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e36c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e37c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e38c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e39c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3ac: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3bc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3cc: 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ....ZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3dc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3ec: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3fc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e40c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e41c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e42c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e43c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e44c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e45c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e46c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e47c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e48c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e49c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4ac: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4bc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4cc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4dc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4ec: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e4fc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e50c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e51c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e52c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e53c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e54c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e55c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e56c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e57c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e58c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e59c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5ac: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5bc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5cc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5dc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5ec: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e5fc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e60c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e61c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e62c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e63c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e64c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e65c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e66c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e67c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e68c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e69c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6ac: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6bc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6cc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6dc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6ec: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e6fc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e70c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e71c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e72c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e73c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e74c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e75c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e76c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e77c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e78c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e79c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7ac: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7bc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7cc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7dc: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7ec: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e7fc: 5a 5a 5a 5a 00 00 00 00                          ZZZZ....
Nov 21 14:02:54 x4 kernel: FIX kmalloc-8192: Restoring 0xffff880215c6cbdc-0xffff880215c6e803=0x5a
Nov 21 14:02:54 x4 kernel: 
Nov 21 14:02:54 x4 kernel: =============================================================================
Nov 21 14:02:54 x4 kernel: BUG kmalloc-8192: Redzone overwritten
Nov 21 14:02:54 x4 kernel: -----------------------------------------------------------------------------
Nov 21 14:02:54 x4 kernel: 
Nov 21 14:02:54 x4 kernel: INFO: 0xffff880215c6e290-0xffff880215c6e297. First byte 0x5a instead of 0xcc
Nov 21 14:02:54 x4 kernel: INFO: Allocated in 0x5a5a5a5a5a5a5a5a age=11936128522577594085 cpu=1515870810 pid=1515870810
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: INFO: Freed in 0x5a5a5a5a5a5a5a5a age=11936128522577594085 cpu=1515870810 pid=1515870810
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: INFO: Slab 0xffffea0008571a00 objects=3 used=3 fp=0x          (null) flags=0x4000000000004081
Nov 21 14:02:54 x4 kernel: INFO: Object 0xffff880215c6c290 @offset=17040 fp=0x5a5a5a5a5a5a5a5a
Nov 21 14:02:54 x4 kernel: 
Nov 21 14:02:54 x4 kernel: Bytes b4 ffff880215c6c280: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a  ........ZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2a0: e0 19 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2c0: 00 00 00 00 00 00 00 00 e0 02 09 11 02 88 ff ff  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c310: 00 00 00 00 00 00 00 00 50 1b 09 11 02 88 ff ff  ........P.......
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c380: b0 12 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c390: 00 00 00 00 00 00 00 00 40 11 09 11 02 88 ff ff  ........@.......
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3b0: 00 00 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6c9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ca90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6caa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6caf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cb90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cbb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cbc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cbd0: 00 00 00 00 00 00 00 00 00 00 00 00 5a 5a 5a 5a  ............ZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cbe0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cbf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cc90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cca0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ccb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ccc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ccd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cce0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ccf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cd90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cda0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cdb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cdc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cdd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cde0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cdf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ce90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cea0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ceb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cec0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6ced0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cee0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cef0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cf90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cfa0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cfb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cfc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cfd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cfe0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6cff0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d000: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d010: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d020: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d030: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d040: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d050: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d060: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d070: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d080: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d090: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0a0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0c0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0e0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d0f0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d100: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d110: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d120: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d130: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d140: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d150: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d160: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d170: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d180: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d190: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1a0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1c0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1e0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d1f0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d200: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d210: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d220: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d230: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d240: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d250: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d260: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d270: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Object ffff880215c6d280: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Redzone ffff880215c6e290: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Padding ffff880215c6e3d0: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
Nov 21 14:02:54 x4 kernel: Pid: 4956, comm: slabinfo Not tainted 3.2.0-rc2-00274-g6fe4c6d #70
Nov 21 14:02:54 x4 kernel: Call Trace:
Nov 21 14:02:54 x4 kernel: [<ffffffff81101cf8>] ? print_section+0x38/0x40
Nov 21 14:02:54 x4 kernel: [<ffffffff811021f3>] print_trailer+0xe3/0x150
Nov 21 14:02:54 x4 kernel: [<ffffffff811023f0>] check_bytes_and_report+0xe0/0x100
Nov 21 14:02:54 x4 kernel: [<ffffffff811031a3>] check_object+0x183/0x240
Nov 21 14:02:54 x4 kernel: [<ffffffff81103cc0>] validate_slab_slab+0x1c0/0x230
Nov 21 14:02:54 x4 kernel: [<ffffffff811061f6>] validate_store+0xf6/0x190
Nov 21 14:02:54 x4 kernel: [<ffffffff8110163c>] slab_attr_store+0x1c/0x30
Nov 21 14:02:54 x4 kernel: [<ffffffff811634f8>] sysfs_write_file+0xc8/0x140
Nov 21 14:02:54 x4 kernel: [<ffffffff8110dc93>] vfs_write+0xa3/0x160
Nov 21 14:02:54 x4 kernel: [<ffffffff8110de25>] sys_write+0x45/0x90
Nov 21 14:02:54 x4 kernel: [<ffffffff814ccbfb>] system_call_fastpath+0x16/0x1b
Nov 21 14:02:54 x4 kernel: FIX kmalloc-8192: Restoring 0xffff880215c6e290-0xffff880215c6e297=0xcc
Nov 21 14:02:54 x4 kernel: 
Nov 21 14:06:43 x4 kernel: =============================================================================
Nov 21 14:06:43 x4 kernel: BUG kmalloc-8192: Freepointer corrupt
Nov 21 14:06:43 x4 kernel: -----------------------------------------------------------------------------
Nov 21 14:06:43 x4 kernel: 
Nov 21 14:06:43 x4 kernel: INFO: Allocated in 0x5a5a5a5a5a5a5a5a age=11936128522577823240 cpu=1515870810 pid=1515870810
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: INFO: Freed in 0x5a5a5a5a5a5a5a5a age=11936128522577823240 cpu=1515870810 pid=1515870810
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 	0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: INFO: Slab 0xffffea0008571a00 objects=3 used=3 fp=0x          (null) flags=0x4000000000004081
Nov 21 14:06:43 x4 kernel: INFO: Object 0xffff880215c6c290 @offset=17040 fp=0x5a5a5a5a5a5a5a5a
Nov 21 14:06:43 x4 kernel: 
Nov 21 14:06:43 x4 kernel: Bytes b4 ffff880215c6c280: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a  ........ZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2a0: e0 19 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2c0: 00 00 00 00 00 00 00 00 e0 02 09 11 02 88 ff ff  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c310: 00 00 00 00 00 00 00 00 50 1b 09 11 02 88 ff ff  ........P.......
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c380: b0 12 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c390: 00 00 00 00 00 00 00 00 40 11 09 11 02 88 ff ff  ........@.......
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3b0: 00 00 09 11 02 88 ff ff 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6c9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ca90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6caa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6caf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cb90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cbb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cbc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cbd0: 00 00 00 00 00 00 00 00 00 00 00 00 5a 5a 5a 5a  ............ZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cbe0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cbf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cc90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cca0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ccb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ccc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ccd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cce0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ccf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cd90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cda0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cdb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cdc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cdd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cde0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cdf0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ce90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cea0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ceb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cec0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6ced0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cee0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cef0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf00: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf10: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf20: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf30: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf40: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf50: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf60: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf70: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf80: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cf90: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cfa0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cfb0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cfc0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cfd0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cfe0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6cff0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d000: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d010: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d020: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d030: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d040: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d050: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d060: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d070: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d080: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d090: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0a0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0c0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0e0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d0f0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d100: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d110: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d120: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d130: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d140: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d150: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d160: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d170: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d180: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d190: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1a0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1c0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1e0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d1f0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d200: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d210: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d220: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d230: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d240: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d250: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d260: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d270: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Object ffff880215c6d280: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Redzone ffff880215c6e290: cc cc cc cc cc cc cc cc                          ........
Nov 21 14:06:43 x4 kernel: Padding ffff880215c6e3d0: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
Nov 21 14:06:43 x4 kernel: Pid: 7254, comm: slabinfo Not tainted 3.2.0-rc2-00274-g6fe4c6d #70
Nov 21 14:06:43 x4 kernel: Call Trace:
Nov 21 14:06:43 x4 kernel: [<ffffffff81101cf8>] ? print_section+0x38/0x40
Nov 21 14:06:43 x4 kernel: [<ffffffff811021f3>] print_trailer+0xe3/0x150
Nov 21 14:06:43 x4 kernel: [<ffffffff8110229c>] object_err+0x3c/0x50
Nov 21 14:06:43 x4 kernel: [<ffffffff81103155>] check_object+0x135/0x240
Nov 21 14:06:43 x4 kernel: [<ffffffff81103cc0>] validate_slab_slab+0x1c0/0x230
Nov 21 14:06:43 x4 kernel: [<ffffffff811061f6>] validate_store+0xf6/0x190
Nov 21 14:06:43 x4 kernel: [<ffffffff8110163c>] slab_attr_store+0x1c/0x30
Nov 21 14:06:43 x4 kernel: [<ffffffff811634f8>] sysfs_write_file+0xc8/0x140
Nov 21 14:06:43 x4 kernel: [<ffffffff8110dc93>] vfs_write+0xa3/0x160
Nov 21 14:06:43 x4 kernel: [<ffffffff8110de25>] sys_write+0x45/0x90
Nov 21 14:06:43 x4 kernel: [<ffffffff814ccbfb>] system_call_fastpath+0x16/0x1b
Nov 21 14:06:49 x4 kernel: general protection fault: 0000 [#1] PREEMPT SMP 
Nov 21 14:06:49 x4 kernel: CPU 0 
Nov 21 14:06:49 x4 kernel: Pid: 4203, comm: git Not tainted 3.2.0-rc2-00274-g6fe4c6d #70 System manufacturer System Product Name/M4A78T-E
Nov 21 14:06:49 x4 kernel: RIP: 0010:[<ffffffff8110b26c>]  [<ffffffff8110b26c>] __khugepaged_enter+0x8c/0x140
Nov 21 14:06:49 x4 kernel: RSP: 0018:ffff88020020dd60  EFLAGS: 00010206
Nov 21 14:06:49 x4 kernel: RAX: 5a5a5a5a5a5a5a5a RBX: ffff880211090fd0 RCX: 0000000000000000
Nov 21 14:06:49 x4 kernel: RDX: ffff880215c6d4e0 RSI: 0000000000000000 RDI: ffffffff8195b7a0
Nov 21 14:06:49 x4 kernel: RBP: ffff88020020dd90 R08: 0000000000000000 R09: ffff880211090fd0
Nov 21 14:06:49 x4 kernel: R10: 0000000000000000 R11: 0000000000000030 R12: ffff880213de7200
Nov 21 14:06:49 x4 kernel: R13: ffff880208dc2440 R14: ffff8802144c6d40 R15: ffff880213d33200
Nov 21 14:06:49 x4 kernel: FS:  00007fa9f36d1700(0000) GS:ffff88021fc00000(0000) knlGS:0000000000000000
Nov 21 14:06:49 x4 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Nov 21 14:06:49 x4 kernel: CR2: 00007f5514127000 CR3: 0000000200305000 CR4: 00000000000006f0
Nov 21 14:06:49 x4 kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Nov 21 14:06:49 x4 kernel: DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Nov 21 14:06:49 x4 kernel: Process git (pid: 4203, threadinfo ffff88020020c000, task ffff880216aade40)
Nov 21 14:06:49 x4 kernel: Stack:
Nov 21 14:06:49 x4 kernel: ffff880213de7200 ffff880208dc2440 ffff88020020dd90 ffff880208dc2440
Nov 21 14:06:49 x4 kernel: ffff880213de7200 ffff880208dc2440 ffff88020020de20 ffffffff8106ae68
Nov 21 14:06:49 x4 kernel: ffff88020020ddf0 0000000001200011 ffff880213de7260 ffff8802144c6da0
Nov 21 14:06:49 x4 kernel: Call Trace:
Nov 21 14:06:49 x4 kernel: [<ffffffff8106ae68>] dup_mm+0x318/0x4a0
Nov 21 14:06:49 x4 kernel: [<ffffffff81104dd8>] ? kmem_cache_alloc+0x148/0x150
Nov 21 14:06:49 x4 kernel: [<ffffffff8106bb70>] ? copy_process+0xb50/0xf60
Nov 21 14:06:49 x4 kernel: [<ffffffff8106bd28>] copy_process+0xd08/0xf60
Nov 21 14:06:49 x4 kernel: [<ffffffff8110ed38>] ? get_empty_filp+0x78/0x130
Nov 21 14:06:49 x4 kernel: [<ffffffff8106c0b0>] do_fork+0x100/0x2b0
Nov 21 14:06:49 x4 kernel: [<ffffffff81116e95>] ? do_pipe_flags+0x95/0xf0
Nov 21 14:06:49 x4 kernel: [<ffffffff81044d63>] sys_clone+0x23/0x30
Nov 21 14:06:49 x4 kernel: [<ffffffff814cce63>] stub_clone+0x13/0x20
Nov 21 14:06:49 x4 kernel: [<ffffffff814ccbfb>] ? system_call_fastpath+0x16/0x1b
Nov 21 14:06:49 x4 kernel: Code: c5 4e ec c4 4e ec c4 4e 4c 89 63 20 48 f7 e2 48 c1 ea 05 81 e2 f8 1f 00 00 48 03 15 9f a4 76 00 48 8b 02 48 85 c0 48 89 03 74 04 
Nov 21 14:06:49 x4 kernel: RIP  [<ffffffff8110b26c>] __khugepaged_enter+0x8c/0x140
Nov 21 14:06:49 x4 kernel: RSP <ffff88020020dd60>
Nov 21 14:06:49 x4 kernel: ---[ end trace ded3169f729e0239 ]---
Nov 21 14:06:49 x4 kernel: note: git[4203] exited with preempt_count 1
Nov 21 14:06:49 x4 kernel: BUG: scheduling while atomic: git/4203/0x00000002
Nov 21 14:06:49 x4 kernel: Pid: 4203, comm: git Tainted: G      D      3.2.0-rc2-00274-g6fe4c6d #70
Nov 21 14:06:49 x4 kernel: Call Trace:
Nov 21 14:06:49 x4 kernel: [<ffffffff814c44fb>] __schedule_bug+0x50/0x55
Nov 21 14:06:49 x4 kernel: [<ffffffff814c9ef8>] __schedule+0x558/0x7e0
Nov 21 14:06:49 x4 kernel: [<ffffffff810ac8f1>] ? taskstats_exit+0x281/0x380
Nov 21 14:06:49 x4 kernel: [<ffffffff814ca1ba>] schedule+0x3a/0x50
Nov 21 14:06:49 x4 kernel: [<ffffffff814cbd3d>] rwsem_down_failed_common+0xbd/0x150
Nov 21 14:06:49 x4 kernel: [<ffffffff814cbde5>] rwsem_down_read_failed+0x15/0x20
Nov 21 14:06:49 x4 kernel: [<ffffffff8120cf84>] call_rwsem_down_read_failed+0x14/0x30
Nov 21 14:06:49 x4 kernel: [<ffffffff814cb622>] ? down_read+0x12/0x20
Nov 21 14:06:49 x4 kernel: [<ffffffff8106ead7>] exit_mm+0x37/0x120
Nov 21 14:06:49 x4 kernel: [<ffffffff810702fe>] do_exit+0x13e/0x7f0
Nov 21 14:06:49 x4 kernel: [<ffffffff8106e70d>] ? kmsg_dump+0xbd/0xf0
Nov 21 14:06:49 x4 kernel: [<ffffffff8103f81f>] oops_end+0x8f/0xd0
Nov 21 14:06:49 x4 kernel: [<ffffffff8103f9a3>] die+0x53/0x80
Nov 21 14:06:49 x4 kernel: [<ffffffff8103d1c2>] do_general_protection+0x152/0x160
Nov 21 14:06:49 x4 kernel: [<ffffffff814cc7bf>] general_protection+0x1f/0x30
Nov 21 14:06:49 x4 kernel: [<ffffffff8110b26c>] ? __khugepaged_enter+0x8c/0x140
Nov 21 14:06:49 x4 kernel: [<ffffffff8106ae68>] dup_mm+0x318/0x4a0
Nov 21 14:06:49 x4 kernel: [<ffffffff81104dd8>] ? kmem_cache_alloc+0x148/0x150
Nov 21 14:06:49 x4 kernel: [<ffffffff8106bb70>] ? copy_process+0xb50/0xf60
Nov 21 14:06:49 x4 kernel: [<ffffffff8106bd28>] copy_process+0xd08/0xf60
Nov 21 14:06:49 x4 kernel: [<ffffffff8110ed38>] ? get_empty_filp+0x78/0x130
Nov 21 14:06:49 x4 kernel: [<ffffffff8106c0b0>] do_fork+0x100/0x2b0
Nov 21 14:06:49 x4 kernel: [<ffffffff81116e95>] ? do_pipe_flags+0x95/0xf0
Nov 21 14:06:49 x4 kernel: [<ffffffff81044d63>] sys_clone+0x23/0x30
Nov 21 14:06:49 x4 kernel: [<ffffffff814cce63>] stub_clone+0x13/0x20
Nov 21 14:06:49 x4 kernel: [<ffffffff814ccbfb>] ? system_call_fastpath+0x16/0x1b

-- 
Markus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [PATCH for 2.6.32 (untested)] netns: Add quota for number of NET_NS instances.
From: Tetsuo Handa @ 2011-11-21 13:07 UTC (permalink / raw)
  To: ebiederm; +Cc: netdev
In-Reply-To: <m1mxbqurax.fsf@fess.ebiederm.org>

Eric W. Biederman wrote:
> I am suggesting that if a netns instance is being cleaned up we should
> wait for one netns instance to be cleaned up.  A single netns instance
> does not take long to clean up (in general).  But a lot of netns
> instances do take a while.
> 
> With waiting for one netns instance to be cleaned up we should be able
> to guarantee that we don't develop a substantial backlog network
> namespaces to be cleaned up.  And that was the problem.

Ah, you are suggesting to wait for completion of cleaning up.
But unfortunately, we cannot sleep at __put_net().

> But the reality is that under high connection load if we actually want
> to use network namespaces we have to wait for previous network
> namespaces to clean up.

Right. Some quota with wait queue like below is wanted?
----------
This patch introduces /proc/sys/net/core/netns_max interface that limits
max number of network namespace instances. When number of network namespace
instances exceeded this quota, the process will be blocked in a killable state
rather than returning immediately. Setting this quota to 0 means nobody can
create new network namespace instances.

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
---
 include/net/sock.h         |    4 ++++
 net/core/net_namespace.c   |   15 +++++++++++++++
 net/core/sysctl_net_core.c |   10 ++++++++++
 3 files changed, 29 insertions(+)

--- linux-2.6.32.48.orig/include/net/sock.h
+++ linux-2.6.32.48/include/net/sock.h
@@ -1598,4 +1598,8 @@ extern int sysctl_optmem_max;
 extern __u32 sysctl_wmem_default;
 extern __u32 sysctl_rmem_default;
 
+#ifdef CONFIG_NET_NS
+extern int max_netns_count;
+#endif
+
 #endif	/* _SOCK_H */
--- linux-2.6.32.48.orig/net/core/net_namespace.c
+++ linux-2.6.32.48/net/core/net_namespace.c
@@ -81,12 +81,22 @@ static struct net_generic *net_alloc_gen
 #ifdef CONFIG_NET_NS
 static struct kmem_cache *net_cachep;
 static struct workqueue_struct *netns_wq;
+static atomic_t used_netns_count = ATOMIC_INIT(0);
+static DECLARE_WAIT_QUEUE_HEAD(netns_alloc_wait);
+unsigned int max_netns_count;
 
 static struct net *net_alloc(void)
 {
 	struct net *net = NULL;
 	struct net_generic *ng;
 
+	atomic_inc(&used_netns_count);
+	wait_event_killable(netns_alloc_wait,
+			    !max_netns_count ||
+			    atomic_read(&used_netns_count) <= max_netns_count);
+	if (atomic_read(&used_netns_count) > max_netns_count)
+		goto out;
+
 	ng = net_alloc_generic();
 	if (!ng)
 		goto out;
@@ -96,7 +106,10 @@ static struct net *net_alloc(void)
 		goto out_free;
 
 	rcu_assign_pointer(net->gen, ng);
+	return net;
 out:
+	atomic_dec(&used_netns_count);
+	wake_up(&netns_alloc_wait);
 	return net;
 
 out_free:
@@ -115,6 +128,8 @@ static void net_free(struct net *net)
 #endif
 	kfree(net->gen);
 	kmem_cache_free(net_cachep, net);
+	atomic_dec(&used_netns_count);
+	wake_up(&netns_alloc_wait);
 }
 
 static struct net *net_create(void)
--- linux-2.6.32.48.orig/net/core/sysctl_net_core.c
+++ linux-2.6.32.48/net/core/sysctl_net_core.c
@@ -89,6 +89,16 @@ static struct ctl_table net_core_table[]
 		.mode		= 0644,
 		.proc_handler	= proc_dointvec
 	},
+#ifdef CONFIG_NET_NS
+	{
+		.ctl_name       = CTL_UNNUMBERED,
+		.procname       = "netns_max",
+		.data           = &max_netns_count,
+		.maxlen         = sizeof(int),
+		.mode           = 0644,
+		.proc_handler   = proc_dointvec,
+	},
+#endif
 #endif /* CONFIG_NET */
 	{
 		.ctl_name	= NET_CORE_BUDGET,

> There is of course debian's solution which was to simply tweak vsftp
> to not use network namespaces on 2.6.32 and only enable the feature
> on later kernels.

Thank you for info. I added link to this thread to #790863 and would like to
wait for how they want to handle this problem. (Maybe they don't reenable
NET_NS, maybe they reenable NET_NS with some quota.)

Thanks.

^ permalink raw reply

* Re: [RFC PATCH 00/17] netfilter: IPv6 NAT
From: Jan Engelhardt @ 2011-11-21 13:05 UTC (permalink / raw)
  To: kaber; +Cc: netfilter-devel, netdev, ulrich.weber
In-Reply-To: <1321854369-3432-1-git-send-email-kaber@trash.net>

On Monday 2011-11-21 06:45, kaber@trash.net wrote:

> net/ipv4/netfilter/ipt_REDIRECT.c                  |   23 +-
> .../{nf_nat_standalone.c => iptable_nat.c}         |  265 ++++-----
> net/ipv4/netfilter/nf_nat_irc.c                    |    4 +-
> net/netfilter/nf_conntrack_sip.c                   |  119 +++--

Pablo once hinted that the patches (and not just the diffstat) should 
also be produced using move semantics rather than the delete-add cycle, 
for the reader's benefit. To do this, so I have found, one can use

 git send-email ... --format-patch -M

^ permalink raw reply

* Re: [PATCH net-next 4/4] net: Add Open vSwitch kernel components.
From: jamal @ 2011-11-21 12:29 UTC (permalink / raw)
  To: Jesse Gross
  Cc: dev-yBygre7rU0TnMu66kgdUjQ, netdev-u79uwXL29TY76Z2rM5mHXA,
	David S. Miller
In-Reply-To: <1321878007.2291.12.camel@mojatatu>


Reading your website - it seems you indicate the code to be portable
across other platforms. That is a noble reason - but i dont think
it is good enough a reason in my opinion to have your own
replicated infrastructure on top of Linux. 

cheers,
jamal

On Mon, 2011-11-21 at 07:20 -0500, jamal wrote:

> 
> So the last time we had a discussion on this on the list, we seemed
> to agree that you could use the tc classifier-action infrastructure.
> For simplicity, we agreed you will need to do a speacilized classifier.
> You may need to add a few more actions. What happened since?
> 
> You are replicating a lot of code and semantic that exist (not just on
> classifier actions). You could improve the exisiting infrastructure
> instead. We are eventually going to have two competing interfaces as 
> a result. You may only need 1 or 2 different classification schemes
> today and try to justify you need it for simplicity - but in a few
> months you'll need one more then another action and another and 
> you'll keep adding to your infrastructure.
> 
> cheers,
> jamal
> 

^ permalink raw reply

* Kernel v3.0.8 igb driver dies when pulling network cable
From: Stefan Priebe @ 2011-11-21 12:26 UTC (permalink / raw)
  To: Stable Tree
  Cc: stable, Greg KH, LKML, Linux Netdev List, Jeff Kirsher,
	Jesse Brandeburg <jesse.brandeburg@intel.com> Bruce Allan,
	Carolyn Wyborny, Don Skidmore, Greg Rose, PJ Waskiewicz,
	Alex Duyck, John Ronciak

Hi List,

i triggered this bug nultiple times by just pulling out the network 
cable while running v3.0.8.

[  838.740689] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow 
Control: RX/TX
[  838.761489] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  848.654167] ------------[ cut here ]------------
[  848.673476] WARNING: at net/sched/sch_generic.c:255 
dev_watchdog+0x25d/0x270()
[  848.692857] Hardware name: X8DTN
[  848.712062] NETDEV WATCHDOG: eth0 (igb): transmit queue 0 timed out
[  848.731613] Modules linked in: xt_tcpudp iptable_filter ip_tables 
x_tables coretemp k8temp ipv6 dm_snapshot dm_mod
[  848.752265] Pid: 0, comm: swapper Not tainted 2.6.40.8intel #3
[  848.773156] Call Trace:
[  848.793730]  <IRQ>  [<ffffffff8153be3d>] ? dev_watchdog+0x25d/0x270
[  848.793740]  [<ffffffff81045eb0>] warn_slowpath_common+0x80/0xc0
[  848.793744]  [<ffffffff81045fe9>] warn_slowpath_fmt+0x69/0x70
[  848.793749]  [<ffffffff81012288>] ? intel_pmu_nhm_enable_all+0x158/0x190
[  848.793755]  [<ffffffff81469917>] ? igb_poll+0x807/0xde0
[  848.793758]  [<ffffffff810125e4>] ? x86_pmu_enable+0x1f4/0x270
[  848.793763]  [<ffffffff810b1666>] ? perf_event_task_tick+0xa6/0x2e0
[  848.793767]  [<ffffffff8153be3d>] dev_watchdog+0x25d/0x270
[  848.793772]  [<ffffffff8105511c>] run_timer_softirq+0x1cc/0x320
[  848.793776]  [<ffffffff8153bbe0>] ? __netdev_watchdog_up+0x80/0x80
[  848.793782]  [<ffffffff8101d0d8>] ? lapic_next_event+0x18/0x20
[  848.793787]  [<ffffffff8104c390>] __do_softirq+0xd0/0x1c0
[  848.793793]  [<ffffffff815e288c>] call_softirq+0x1c/0x30
[  848.793798]  [<ffffffff810047b5>] do_softirq+0x55/0x90
[  848.793801]  [<ffffffff8104c16d>] irq_exit+0xad/0xe0
[  848.793805]  [<ffffffff8101ddc9>] smp_apic_timer_interrupt+0x69/0xa0
[  848.793809]  [<ffffffff815e2053>] apic_timer_interrupt+0x13/0x20
[  848.793811]  <EOI>  [<ffffffff81317093>] ? intel_idle+0xb3/0x120
[  848.793820]  [<ffffffff81317075>] ? intel_idle+0x95/0x120
[  848.793824]  [<ffffffff814f7d5c>] cpuidle_idle_call+0xdc/0x1a0
[  848.793829]  [<ffffffff81002091>] cpu_idle+0xb1/0x110
[  848.793833]  [<ffffffff815c54dd>] rest_init+0x6d/0x80
[  848.793837]  [<ffffffff81acbc5d>] start_kernel+0x3a2/0x44c
[  848.793847]  [<ffffffff81acb295>] x86_64_start_reservations+0xa5/0xc9
[  848.793851]  [<ffffffff81acb3a2>] x86_64_start_kernel+0xe9/0xfb
[  848.793853] ---[ end trace 737c145f3289e2ce ]---
[  848.794085] igb 0000:0a:00.0: eth0: Reset adapter
[  849.019407] eth0: no IPv6 routers present
[  851.626949] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow 
Control: RX/TX
[  861.637255] igb 0000:0a:00.0: eth0: Reset adapter
[  864.479252] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow 
Control: RX/TX

Greet Stefan

^ permalink raw reply

* [PATCH 1/1]   PHY configuration for compatible issue
From: AriesLee @ 2011-11-21 20:20 UTC (permalink / raw)
  To: Aries Lee, Guo-Fu Tseng, netdev; +Cc: AriesLee

To perform PHY calibration and set a different EA value by chip ID,
Whenever the NIC chip power on, ie booting or resuming, we need to
force HW to calibrate PHY parameter again, and also set a proper EA
value which gather from experiment.

Those procedures help to reduce compatible issues(NIC is unable to link
up in some special case) in giga speed.

Signed-off-by: AriesLee <AriesLee@jmicron.com>
---
 drivers/net/ethernet/jme.c |  113 ++++++++++++++++++++++++++++++++++++++++++-
 drivers/net/ethernet/jme.h |   19 +++++++
 2 files changed, 129 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index df3ab83..8ebbb33 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -1745,6 +1745,112 @@ jme_phy_off(struct jme_adapter *jme)
 }
 
 static int
+jme_phy_specreg_read(struct jme_adapter *jme, u32 specreg)
+{
+	u32 phy_addr;
+
+	phy_addr = JM_PHY_SPEC_REG_READ | specreg;
+	jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_ADDR_REG,
+			phy_addr);
+	return jme_mdio_read(jme->dev, jme->mii_if.phy_id,
+			JM_PHY_SPEC_DATA_REG);
+}
+
+static void
+jme_phy_specreg_write(struct jme_adapter *jme, u32 ext_reg, u32 phy_data)
+{
+	u32 phy_addr;
+
+	phy_addr = JM_PHY_SPEC_REG_WRITE | ext_reg;
+	jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_DATA_REG,
+			phy_data);
+	jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_ADDR_REG,
+			phy_addr);
+}
+
+static int
+jme_phy_calibration(struct jme_adapter *jme)
+{
+	u32 ctrl1000, phy_data;
+
+	jme_phy_off(jme);
+	jme_phy_on(jme);
+	/*  Enabel PHY test mode 1 */
+	ctrl1000 = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_CTRL1000);
+	ctrl1000 &= ~PHY_GAD_TEST_MODE_MSK;
+	ctrl1000 |= PHY_GAD_TEST_MODE_1;
+	jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_CTRL1000, ctrl1000);
+
+	phy_data = jme_phy_specreg_read(jme, JM_PHY_EXT_COMM_2_REG);
+	phy_data &= ~JM_PHY_EXT_COMM_2_CALI_MODE_0;
+	phy_data |= JM_PHY_EXT_COMM_2_CALI_LATCH |
+			JM_PHY_EXT_COMM_2_CALI_ENABLE;
+	jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_2_REG, phy_data);
+	msleep(20);
+	phy_data = jme_phy_specreg_read(jme, JM_PHY_EXT_COMM_2_REG);
+	phy_data &= ~(JM_PHY_EXT_COMM_2_CALI_ENABLE |
+			JM_PHY_EXT_COMM_2_CALI_MODE_0 |
+			JM_PHY_EXT_COMM_2_CALI_LATCH);
+	jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_2_REG, phy_data);
+
+	/*  Disable PHY test mode */
+	ctrl1000 = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_CTRL1000);
+	ctrl1000 &= ~PHY_GAD_TEST_MODE_MSK;
+	jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_CTRL1000, ctrl1000);
+	return 0;
+}
+
+static int
+jme_phy_setEA(struct jme_adapter *jme)
+{
+	u32 phy_comm0 = 0, phy_comm1 = 0;
+	u8 nic_ctrl;
+
+	pci_read_config_byte(jme->pdev, PCI_PRIV_SHARE_NICCTRL, &nic_ctrl);
+	if ((nic_ctrl & 0x3) == JME_FLAG_PHYEA_ENABLE)
+		return 0;
+
+	switch (jme->pdev->device) {
+	case PCI_DEVICE_ID_JMICRON_JMC250:
+		if (((jme->chip_main_rev == 5) &&
+			((jme->chip_sub_rev == 0) || (jme->chip_sub_rev == 1) ||
+			(jme->chip_sub_rev == 3))) ||
+			(jme->chip_main_rev >= 6)) {
+			phy_comm0 = 0x008A;
+			phy_comm1 = 0x4109;
+		}
+		if ((jme->chip_main_rev == 3) &&
+			((jme->chip_sub_rev == 1) || (jme->chip_sub_rev == 2)))
+			phy_comm0 = 0xE088;
+		break;
+	case PCI_DEVICE_ID_JMICRON_JMC260:
+		if (((jme->chip_main_rev == 5) &&
+			((jme->chip_sub_rev == 0) || (jme->chip_sub_rev == 1) ||
+			(jme->chip_sub_rev == 3))) ||
+			(jme->chip_main_rev >= 6)) {
+			phy_comm0 = 0x008A;
+			phy_comm1 = 0x4109;
+		}
+		if ((jme->chip_main_rev == 3) &&
+			((jme->chip_sub_rev == 1) || (jme->chip_sub_rev == 2)))
+			phy_comm0 = 0xE088;
+		if ((jme->chip_main_rev == 2) && (jme->chip_sub_rev == 0))
+			phy_comm0 = 0x608A;
+		if ((jme->chip_main_rev == 2) && (jme->chip_sub_rev == 2))
+			phy_comm0 = 0x408A;
+		break;
+	default:
+		return -ENODEV;
+	}
+	if (phy_comm0)
+		jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_0_REG, phy_comm0);
+	if (phy_comm1)
+		jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_1_REG, phy_comm1);
+
+	return 0;
+}
+
+static int
 jme_open(struct net_device *netdev)
 {
 	struct jme_adapter *jme = netdev_priv(netdev);
@@ -1769,7 +1875,8 @@ jme_open(struct net_device *netdev)
 		jme_set_settings(netdev, &jme->old_ecmd);
 	else
 		jme_reset_phy_processor(jme);
-
+	jme_phy_calibration(jme);
+	jme_phy_setEA(jme);
 	jme_reset_link(jme);
 
 	return 0;
@@ -3184,7 +3291,8 @@ jme_resume(struct device *dev)
 		jme_set_settings(netdev, &jme->old_ecmd);
 	else
 		jme_reset_phy_processor(jme);
-
+	jme_phy_calibration(jme);
+	jme_phy_setEA(jme);
 	jme_start_irq(jme);
 	netif_device_attach(netdev);
 
@@ -3239,4 +3347,3 @@ MODULE_DESCRIPTION("JMicron JMC2x0 PCI Express Ethernet driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 MODULE_DEVICE_TABLE(pci, jme_pci_tbl);
-
diff --git a/drivers/net/ethernet/jme.h b/drivers/net/ethernet/jme.h
index 02ea27c..4304072 100644
--- a/drivers/net/ethernet/jme.h
+++ b/drivers/net/ethernet/jme.h
@@ -760,6 +760,25 @@ enum jme_rxmcs_bits {
 				  RXMCS_CHECKSUM,
 };
 
+/*	Extern PHY common register 2	*/
+
+#define PHY_GAD_TEST_MODE_1			0x00002000
+#define PHY_GAD_TEST_MODE_MSK			0x0000E000
+#define JM_PHY_SPEC_REG_READ			0x00004000
+#define JM_PHY_SPEC_REG_WRITE			0x00008000
+#define PHY_CALIBRATION_DELAY			20
+#define JM_PHY_SPEC_ADDR_REG			0x1E
+#define JM_PHY_SPEC_DATA_REG			0x1F
+
+#define JM_PHY_EXT_COMM_0_REG			0x30
+#define JM_PHY_EXT_COMM_1_REG			0x31
+#define JM_PHY_EXT_COMM_2_REG			0x32
+#define JM_PHY_EXT_COMM_2_CALI_ENABLE		0x01
+#define JM_PHY_EXT_COMM_2_CALI_MODE_0		0x02
+#define JM_PHY_EXT_COMM_2_CALI_LATCH		0x10
+#define PCI_PRIV_SHARE_NICCTRL			0xF5
+#define JME_FLAG_PHYEA_ENABLE			0x2
+
 /*
  * Wakeup Frame setup interface registers
  */
-- 
1.7.4.4

^ permalink raw reply related

* Re: [PATCH net-next 4/4] net: Add Open vSwitch kernel components.
From: jamal @ 2011-11-21 12:20 UTC (permalink / raw)
  To: Jesse Gross
  Cc: dev-yBygre7rU0TnMu66kgdUjQ, netdev-u79uwXL29TY76Z2rM5mHXA,
	David S. Miller
In-Reply-To: <1321657938-21761-5-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

On Fri, 2011-11-18 at 15:12 -0800, Jesse Gross wrote:
> Open vSwitch is a multilayer Ethernet switch targeted at virtualized
> environments.  In addition to supporting a variety of features
> expected in a traditional hardware switch, it enables fine-grained
> programmatic extension and flow-based control of the network.
> This control is useful in a wide variety of applications but is
> particularly important in multi-server virtualization deployments,
> which are often characterized by highly dynamic endpoints and the need
> to maintain logical abstractions for multiple tenants.
> 
> The Open vSwitch datapath provides an in-kernel fast path for packet
> forwarding.  It is complemented by a userspace daemon, ovs-vswitchd,
> which is able to accept configuration from a variety of sources and
> translate it into packet processing rules.
> 

So the last time we had a discussion on this on the list, we seemed
to agree that you could use the tc classifier-action infrastructure.
For simplicity, we agreed you will need to do a speacilized classifier.
You may need to add a few more actions. What happened since?

You are replicating a lot of code and semantic that exist (not just on
classifier actions). You could improve the exisiting infrastructure
instead. We are eventually going to have two competing interfaces as 
a result. You may only need 1 or 2 different classification schemes
today and try to justify you need it for simplicity - but in a few
months you'll need one more then another action and another and 
you'll keep adding to your infrastructure.

cheers,
jamal

^ permalink raw reply

* [PATCH 6/8] net/mlx4_en: allow setting number of rx rings for, RSS/TCP
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Amir Vadai <amirv@mellanox.co.il>

Make RSS TCP divert packets only to part of the rx rings, other could be
accessed by using flow steering or RFS acceleration

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/en_main.c |    7 ++++---
 drivers/net/ethernet/mellanox/mlx4/en_rx.c   |    9 ++++++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_main.c b/drivers/net/ethernet/mellanox/mlx4/en_main.c
index a06096f..f70bafb 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_main.c
@@ -63,9 +63,10 @@ static const char mlx4_en_version[] =
  */
 
 
-/* Enable RSS TCP traffic */
-MLX4_EN_PARM_INT(tcp_rss, 1,
-		 "Enable RSS for incomming TCP traffic or disabled (0)");
+/* RSS TCP usage */
+MLX4_EN_PARM_INT(tcp_rss, -1,
+		 "0 to disable RSS TCP, if n > 0, use n rx rings by RSS TCP. -1 "
+		 "for all rx rings");
 /* Enable RSS UDP traffic */
 MLX4_EN_PARM_INT(udp_rss, 1,
 		 "Enable RSS for incomming UDP traffic or disabled (0)");
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index 3c24e16..044123a 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -834,6 +834,7 @@ int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv)
 	struct mlx4_en_rss_map *rss_map = &priv->rss_map;
 	struct mlx4_qp_context context;
 	struct mlx4_rss_context *rss_context;
+	int tcp_rss_table_size;
 	void *ptr;
 	u8 rss_mask = (MLX4_RSS_IPV4 | MLX4_RSS_TCP_IPV4 | MLX4_RSS_IPV6 |
 			MLX4_RSS_TCP_IPV6);
@@ -874,10 +875,16 @@ int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv)
 	mlx4_en_fill_qp_context(priv, 0, 0, 0, 1, priv->base_qpn,
 				priv->rx_ring[0].cqn, &context);
 
+	if (priv->mdev->profile.tcp_rss == -1 ||
+	    priv->mdev->profile.tcp_rss > priv->rx_ring_num)
+		tcp_rss_table_size = priv->rx_ring_num;
+	else
+		tcp_rss_table_size = max(1, priv->mdev->profile.tcp_rss);
+
 	ptr = ((void *) &context) + offsetof(struct mlx4_qp_context, pri_path)
 					+ MLX4_RSS_OFFSET_IN_QPC_PRI_PATH;
 	rss_context = ptr;
-	rss_context->base_qpn = cpu_to_be32(ilog2(priv->rx_ring_num) << 24 |
+	rss_context->base_qpn = cpu_to_be32(ilog2(tcp_rss_table_size) << 24 |
 					    (rss_map->base_qpn));
 	if (priv->mdev->profile.udp_rss) {
 		rss_mask |=  MLX4_RSS_UDP_IPV4 | MLX4_RSS_UDP_IPV6;
-- 
1.7.7

^ permalink raw reply related

* [PATCH] net: correct comments of skb_shift
From: Feng King @ 2011-11-21 11:47 UTC (permalink / raw)
  To: davem; +Cc: netdev, Feng King

when skb_shift, we want to shift paged data from skb to tgt frag area.
Original comments revert the shift order

Signed-off-by: Feng King <kinwin2008@gmail.com>
---
 net/core/skbuff.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 387703f..ed6e992 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -2211,7 +2211,7 @@ static int skb_prepare_for_shift(struct sk_buff *skb)
  * @shiftlen: shift up to this many bytes
  *
  * Attempts to shift up to shiftlen worth of bytes, which may be less than
- * the length of the skb, from tgt to skb. Returns number bytes shifted.
+ * the length of the skb, from skb to tgt. Returns number bytes shifted.
  * It's up to caller to free skb if everything was shifted.
  *
  * If @tgt runs out of frags, the whole operation is aborted.
-- 
1.7.1

^ permalink raw reply related

* [PATCH 8/8] net/mlx4_en: bug fix for the case of vlan id 0 and UP 0
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Amir Vadai <amirv@mellanox.co.il>

When using vlan 0 and UP 0, vlan header wasn't placed.

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/en_tx.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
index f9093b5..70743a1 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -566,7 +566,8 @@ static void build_inline_wqe(struct mlx4_en_tx_desc *tx_desc, struct sk_buff *sk
 		inl->byte_count = cpu_to_be32(1 << 31 | (skb->len - spc));
 	}
 	tx_desc->ctrl.vlan_tag = cpu_to_be16(*vlan_tag);
-	tx_desc->ctrl.ins_vlan = MLX4_WQE_CTRL_INS_VLAN * !!(*vlan_tag);
+	tx_desc->ctrl.ins_vlan = MLX4_WQE_CTRL_INS_VLAN *
+		(!!vlan_tx_tag_present(skb));
 	tx_desc->ctrl.fence_size = (real_size / 16) & 0x3f;
 }
 
@@ -677,7 +678,8 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
 	/* Prepare ctrl segement apart opcode+ownership, which depends on
 	 * whether LSO is used */
 	tx_desc->ctrl.vlan_tag = cpu_to_be16(vlan_tag);
-	tx_desc->ctrl.ins_vlan = MLX4_WQE_CTRL_INS_VLAN * !!vlan_tag;
+	tx_desc->ctrl.ins_vlan = MLX4_WQE_CTRL_INS_VLAN *
+		!!vlan_tx_tag_present(skb);
 	tx_desc->ctrl.fence_size = (real_size / 16) & 0x3f;
 	tx_desc->ctrl.srcrb_flags = cpu_to_be32(MLX4_WQE_CTRL_CQ_UPDATE |
 						MLX4_WQE_CTRL_SOLICITED);
-- 
1.7.7

^ permalink raw reply related

* [PATCH 7/8] net/mlx4_en: adding loopback support
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Amir Vadai <amirv@mellanox.co.il>

Device must be in promiscious mode or DMAC must be same as the host MAC, or
else packet will be dropped by the HW rx filtering.

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c |    1 +
 drivers/net/ethernet/mellanox/mlx4/en_tx.c     |    3 +++
 include/linux/mlx4/qp.h                        |    1 +
 3 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 78d776b..55fdbce 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -1088,6 +1088,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
 	dev->features = dev->hw_features | NETIF_F_HIGHDMA |
 			NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX |
 			NETIF_F_HW_VLAN_FILTER;
+	dev->hw_features |= NETIF_F_LOOPBACK;
 
 	mdev->pndev[port] = dev;
 
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
index 3094f94..f9093b5 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -681,6 +681,9 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
 	tx_desc->ctrl.fence_size = (real_size / 16) & 0x3f;
 	tx_desc->ctrl.srcrb_flags = cpu_to_be32(MLX4_WQE_CTRL_CQ_UPDATE |
 						MLX4_WQE_CTRL_SOLICITED);
+	if (dev->features & NETIF_F_LOOPBACK)
+		tx_desc->ctrl.srcrb_flags |=
+			cpu_to_be32(MLX4_WQE_CTRL_FORCE_LOOPBACK);
 	if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) {
 		tx_desc->ctrl.srcrb_flags |= cpu_to_be32(MLX4_WQE_CTRL_IP_CSUM |
 							 MLX4_WQE_CTRL_TCP_UDP_CSUM);
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h
index 6562ff6..bee8fa2 100644
--- a/include/linux/mlx4/qp.h
+++ b/include/linux/mlx4/qp.h
@@ -210,6 +210,7 @@ struct mlx4_wqe_ctrl_seg {
 	 * [4]   IP checksum
 	 * [3:2] C (generate completion queue entry)
 	 * [1]   SE (solicited event)
+	 * [0]   FL (force loopback)
 	 */
 	__be32			srcrb_flags;
 	/*
-- 
1.7.7

^ permalink raw reply related

* [PATCH 5/8] net/mlx4_en: fix WOL handlers were always looking at port2, capability bit
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Oren Duer <oren@mellanox.co.il>

There are 2 capability bits for WOL, one for each port.
WOL handlers were looking only on the second bit, regardless of the port.

Signed-off-by: Oren Duer <oren@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c |   20 ++++++++++++++++++--
 include/linux/mlx4/device.h                     |    3 ++-
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index ee637a2..7dbc6a2 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -106,8 +106,17 @@ static void mlx4_en_get_wol(struct net_device *netdev,
 	struct mlx4_en_priv *priv = netdev_priv(netdev);
 	int err = 0;
 	u64 config = 0;
+	u64 mask;
 
-	if (!(priv->mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_WOL)) {
+	if ((priv->port < 1) || (priv->port > 2)) {
+		en_err(priv, "Failed to get WoL information\n");
+		return;
+	}
+
+	mask = (priv->port == 1) ? MLX4_DEV_CAP_FLAG_WOL_PORT1 :
+		MLX4_DEV_CAP_FLAG_WOL_PORT2;
+
+	if (!(priv->mdev->dev->caps.flags & mask)) {
 		wol->supported = 0;
 		wol->wolopts = 0;
 		return;
@@ -136,8 +145,15 @@ static int mlx4_en_set_wol(struct net_device *netdev,
 	struct mlx4_en_priv *priv = netdev_priv(netdev);
 	u64 config = 0;
 	int err = 0;
+	u64 mask;
+
+	if ((priv->port < 1) || (priv->port > 2))
+		return -EOPNOTSUPP;
+
+	mask = (priv->port == 1) ? MLX4_DEV_CAP_FLAG_WOL_PORT1 :
+		MLX4_DEV_CAP_FLAG_WOL_PORT2;
 
-	if (!(priv->mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_WOL))
+	if (!(priv->mdev->dev->caps.flags & mask))
 		return -EOPNOTSUPP;
 
 	if (wol->supported & ~WAKE_MAGIC)
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 84b0b18..ca2c397 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -77,7 +77,8 @@ enum {
 	MLX4_DEV_CAP_FLAG_IBOE		= 1LL << 30,
 	MLX4_DEV_CAP_FLAG_UC_LOOPBACK	= 1LL << 32,
 	MLX4_DEV_CAP_FLAG_FCS_KEEP	= 1LL << 34,
-	MLX4_DEV_CAP_FLAG_WOL		= 1LL << 38,
+	MLX4_DEV_CAP_FLAG_WOL_PORT1	= 1LL << 37,
+	MLX4_DEV_CAP_FLAG_WOL_PORT2	= 1LL << 38,
 	MLX4_DEV_CAP_FLAG_UDP_RSS	= 1LL << 40,
 	MLX4_DEV_CAP_FLAG_VEP_UC_STEER	= 1LL << 41,
 	MLX4_DEV_CAP_FLAG_VEP_MC_STEER	= 1LL << 42,
-- 
1.7.7

^ permalink raw reply related

* [PATCH 4/8] net/mlx4_en: using non collapsed CQ on TX
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Yevgeny Petrilin <yevgenyp@mellanox.co.il>


Moving to regular Completion Queue implementation (not collapsed)
Completion for each transmitted packet is written to new entry.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/en_cq.c |    7 +--
 drivers/net/ethernet/mellanox/mlx4/en_tx.c |   65 ++++++++++++++--------------
 2 files changed, 35 insertions(+), 37 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_cq.c b/drivers/net/ethernet/mellanox/mlx4/en_cq.c
index 227997d..2d1a342 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_cq.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_cq.c
@@ -51,10 +51,7 @@ int mlx4_en_create_cq(struct mlx4_en_priv *priv,
 	int err;
 
 	cq->size = entries;
-	if (mode == RX)
-		cq->buf_size = cq->size * sizeof(struct mlx4_cqe);
-	else
-		cq->buf_size = sizeof(struct mlx4_cqe);
+	cq->buf_size = cq->size * sizeof(struct mlx4_cqe);
 
 	cq->ring = ring;
 	cq->is_tx = mode;
@@ -120,7 +117,7 @@ int mlx4_en_activate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq,
 		cq->size = priv->rx_ring[cq->ring].actual_size;
 
 	err = mlx4_cq_alloc(mdev->dev, cq->size, &cq->wqres.mtt, &mdev->priv_uar,
-			    cq->wqres.db.dma, &cq->mcq, cq->vector, cq->is_tx);
+			    cq->wqres.db.dma, &cq->mcq, cq->vector, 0);
 	if (err)
 		return err;
 
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
index d901b42..3094f94 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -307,59 +307,60 @@ int mlx4_en_free_tx_buf(struct net_device *dev, struct mlx4_en_tx_ring *ring)
 	return cnt;
 }
 
-
 static void mlx4_en_process_tx_cq(struct net_device *dev, struct mlx4_en_cq *cq)
 {
 	struct mlx4_en_priv *priv = netdev_priv(dev);
 	struct mlx4_cq *mcq = &cq->mcq;
 	struct mlx4_en_tx_ring *ring = &priv->tx_ring[cq->ring];
-	struct mlx4_cqe *cqe = cq->buf;
+	struct mlx4_cqe *cqe;
 	u16 index;
-	u16 new_index;
+	u16 new_index, ring_index;
 	u32 txbbs_skipped = 0;
-	u32 cq_last_sav;
-
-	/* index always points to the first TXBB of the last polled descriptor */
-	index = ring->cons & ring->size_mask;
-	new_index = be16_to_cpu(cqe->wqe_index) & ring->size_mask;
-	if (index == new_index)
-		return;
+	u32 cons_index = mcq->cons_index;
+	int size = cq->size;
+	u32 size_mask = ring->size_mask;
+	struct mlx4_cqe *buf = cq->buf;
 
 	if (!priv->port_up)
 		return;
 
-	/*
-	 * We use a two-stage loop:
-	 * - the first samples the HW-updated CQE
-	 * - the second frees TXBBs until the last sample
-	 * This lets us amortize CQE cache misses, while still polling the CQ
-	 * until is quiescent.
-	 */
-	cq_last_sav = mcq->cons_index;
-	do {
+	index = cons_index & size_mask;
+	cqe = &buf[index];
+	ring_index = ring->cons & size_mask;
+
+	/* Process all completed CQEs */
+	while (XNOR(cqe->owner_sr_opcode & MLX4_CQE_OWNER_MASK,
+			cons_index & size)) {
+		/*
+		 * make sure we read the CQE after we read the
+		 * ownership bit
+		 */
+		rmb();
+
+		/* Skip over last polled CQE */
+		new_index = be16_to_cpu(cqe->wqe_index) & size_mask;
+
 		do {
-			/* Skip over last polled CQE */
-			index = (index + ring->last_nr_txbb) & ring->size_mask;
 			txbbs_skipped += ring->last_nr_txbb;
-
-			/* Poll next CQE */
+			ring_index = (ring_index + ring->last_nr_txbb) & size_mask;
+			/* free next descriptor */
 			ring->last_nr_txbb = mlx4_en_free_tx_desc(
-						priv, ring, index,
-						!!((ring->cons + txbbs_skipped) &
-						   ring->size));
-			++mcq->cons_index;
+					priv, ring, ring_index,
+					!!((ring->cons + txbbs_skipped) &
+							ring->size));
+		} while (ring_index != new_index);
 
-		} while (index != new_index);
+		++cons_index;
+		index = cons_index & size_mask;
+		cqe = &buf[index];
+	}
 
-		new_index = be16_to_cpu(cqe->wqe_index) & ring->size_mask;
-	} while (index != new_index);
-	AVG_PERF_COUNTER(priv->pstats.tx_coal_avg,
-			 (u32) (mcq->cons_index - cq_last_sav));
 
 	/*
 	 * To prevent CQ overflow we first update CQ consumer and only then
 	 * the ring consumer.
 	 */
+	mcq->cons_index = cons_index;
 	mlx4_cq_set_ci(mcq);
 	wmb();
 	ring->cons += txbbs_skipped;
-- 
1.7.7

^ permalink raw reply related

* [PATCH 3/8] net/mlx4_en: fix sparse warning on a cast which, truncates bits from constant value
From: Yevgeny Petrilin @ 2011-11-21  8:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, yevgenyp, ogerlitz, oren, amirv

From: Or Gerlitz <ogerlitz@mellanox.com>

the MLX4_EN_WOL_DO_MODIFY flag which is defined through enum targets
bit 63, this triggers a "cast truncate bits from constant value
(8000000000000000 becomes 0)" warning from sparse, fix that by using
define instead of enum.

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
index 6e2657d..c367832 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
+++ b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
@@ -484,9 +484,9 @@ struct mlx4_en_priv {
 enum mlx4_en_wol {
 	MLX4_EN_WOL_MAGIC = (1ULL << 61),
 	MLX4_EN_WOL_ENABLED = (1ULL << 62),
-	MLX4_EN_WOL_DO_MODIFY = (1ULL << 63),
 };
 
+#define MLX4_EN_WOL_DO_MODIFY (1ULL << 63)
 
 void mlx4_en_destroy_netdev(struct net_device *dev);
 int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
-- 
1.7.7

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox