* 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, ¶m->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(¶m->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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox