Netdev List
 help / color / mirror / Atom feed
* [PATCH v3 3/6] genetlink: Add rcu_dereference_genl and genl_dereference.
From: Jesse Gross @ 2011-12-03 18:38 UTC (permalink / raw)
  To: David S. Miller; +Cc: dev-yBygre7rU0TnMu66kgdUjQ, netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1322937531-8071-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

This adds rcu_dereference_genl and genl_dereference, which are genl
variants of the RTNL functions to enforce proper locking with lockdep
and sparse.

Signed-off-by: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
---
v3: Unchanged.
v2: New patch.
---
 include/linux/genetlink.h |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h
index 59311ad..73c28de 100644
--- a/include/linux/genetlink.h
+++ b/include/linux/genetlink.h
@@ -89,6 +89,27 @@ extern void genl_unlock(void);
 extern int lockdep_genl_is_held(void);
 #endif
 
+/**
+ * rcu_dereference_genl - rcu_dereference with debug checking
+ * @p: The pointer to read, prior to dereferencing
+ *
+ * Do an rcu_dereference(p), but check caller either holds rcu_read_lock()
+ * or genl mutex. Note : Please prefer genl_dereference() or rcu_dereference()
+ */
+#define rcu_dereference_genl(p)					\
+	rcu_dereference_check(p, lockdep_genl_is_held())
+
+/**
+ * genl_dereference - fetch RCU pointer when updates are prevented by genl mutex
+ * @p: The pointer to read, prior to dereferencing
+ *
+ * Return the value of the specified RCU-protected pointer, but omit
+ * both the smp_read_barrier_depends() and the ACCESS_ONCE(), because
+ * caller holds genl mutex.
+ */
+#define genl_dereference(p)					\
+	rcu_dereference_protected(p, lockdep_genl_is_held())
+
 #endif /* __KERNEL__ */
 
 #endif	/* __LINUX_GENERIC_NETLINK_H */
-- 
1.7.5.4

^ permalink raw reply related

* [PATCH v3 2/6] genetlink: Add lockdep_genl_is_held().
From: Jesse Gross @ 2011-12-03 18:38 UTC (permalink / raw)
  To: David S. Miller; +Cc: dev-yBygre7rU0TnMu66kgdUjQ, netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1322937531-8071-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

From: Pravin B Shelar <pshelar-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

Open vSwitch uses genl_mutex locking to protect datapath
data-structures like flow-table, flow-actions. Following patch adds
lockdep_genl_is_held() which is used for rcu annotation to prove
locking.

Signed-off-by: Pravin B Shelar <pshelar-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
---
v2/v3: Unchanged.
---
 include/linux/genetlink.h |    3 +++
 net/netlink/genetlink.c   |    8 ++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h
index 61549b2..59311ad 100644
--- a/include/linux/genetlink.h
+++ b/include/linux/genetlink.h
@@ -85,6 +85,9 @@ enum {
 /* All generic netlink requests are serialized by a global lock.  */
 extern void genl_lock(void);
 extern void genl_unlock(void);
+#ifdef CONFIG_PROVE_LOCKING
+extern int lockdep_genl_is_held(void);
+#endif
 
 #endif /* __KERNEL__ */
 
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 8a36599..28453ae 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -33,6 +33,14 @@ void genl_unlock(void)
 }
 EXPORT_SYMBOL(genl_unlock);
 
+#ifdef CONFIG_PROVE_LOCKING
+int lockdep_genl_is_held(void)
+{
+	return lockdep_is_held(&genl_mutex);
+}
+EXPORT_SYMBOL(lockdep_genl_is_held);
+#endif
+
 #define GENL_FAM_TAB_SIZE	16
 #define GENL_FAM_TAB_MASK	(GENL_FAM_TAB_SIZE - 1)
 
-- 
1.7.5.4

^ permalink raw reply related

* [PATCH v3 1/6] genetlink: Add genl_notify()
From: Jesse Gross @ 2011-12-03 18:38 UTC (permalink / raw)
  To: David S. Miller; +Cc: dev-yBygre7rU0TnMu66kgdUjQ, netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1322937531-8071-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

From: Pravin B Shelar <pshelar-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

Open vSwitch uses Generic Netlink interface for communication
between userspace and kernel module. genl_notify() is used
for sending notification back to userspace.

genl_notify() is analogous to rtnl_notify() but uses genl_sock
instead of rtnl.

Signed-off-by: Pravin B Shelar <pshelar-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
---
v2/v3: Unchanged.
---
 include/net/genetlink.h |    2 ++
 net/netlink/genetlink.c |   13 +++++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index 82d8d09..7db3299 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -128,6 +128,8 @@ extern int genl_register_mc_group(struct genl_family *family,
 				  struct genl_multicast_group *grp);
 extern void genl_unregister_mc_group(struct genl_family *family,
 				     struct genl_multicast_group *grp);
+extern void genl_notify(struct sk_buff *skb, struct net *net, u32 pid,
+			u32 group, struct nlmsghdr *nlh, gfp_t flags);
 
 /**
  * genlmsg_put - Add generic netlink header to netlink message
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 482fa57..8a36599 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -946,3 +946,16 @@ int genlmsg_multicast_allns(struct sk_buff *skb, u32 pid, unsigned int group,
 	return genlmsg_mcast(skb, pid, group, flags);
 }
 EXPORT_SYMBOL(genlmsg_multicast_allns);
+
+void genl_notify(struct sk_buff *skb, struct net *net, u32 pid, u32 group,
+		 struct nlmsghdr *nlh, gfp_t flags)
+{
+	struct sock *sk = net->genl_sock;
+	int report = 0;
+
+	if (nlh)
+		report = nlmsg_report(nlh);
+
+	nlmsg_notify(sk, skb, pid, group, report, flags);
+}
+EXPORT_SYMBOL(genl_notify);
-- 
1.7.5.4

^ permalink raw reply related

* Re: [PATCH 2/3] caif: Add support for flow-control on device's tx-queue
From: Sjur Brændeland @ 2011-12-03 17:35 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev, David Miller, Alexey Orishko
In-Reply-To: <1322836682.2762.8.camel@edumazet-laptop>

Hi Eric,

> >  static int transmit(struct cflayer *layer, struct cfpkt *pkt)
> >  {
> >  	int err;
> > +	struct caif_dev_common *caifdev;
> >  	struct caif_device_entry *caifd =
> >  	    container_of(layer, struct caif_device_entry, layer);
> >  	struct sk_buff *skb;
> > @@ -137,6 +158,33 @@ static int transmit(struct cflayer *layer,
> struct cfpkt *pkt)
> >  	skb->dev = caifd->netdev;
> >  	skb_reset_network_header(skb);
> >  	skb->protocol = htons(ETH_P_CAIF);
> > +	caifdev = netdev_priv(caifd->netdev);
> > +
> > +	if (caifdev->flowctrl == NULL && caifd->netdev->tx_queue_len > 0
> &&
> > +			!caifd->xoff) {
> > +		struct netdev_queue *txq;
> > +		int high;
> > +
> > +		txq = netdev_get_tx_queue(skb->dev, 0);
>
> Why queue 0 and not another one ?

The purpose of flow-control here is to try to avoid loosing
"control" traffic such as AT-commands sent to the modem.

So far we have (too my knowledge) never configured
multiple queues for any CAIF interface. So for current
setup just queue 0 should work just fine.

But in future it might make sense to configure more than one queue:
One queue for control and others for IP traffic or debug.
I think the sensible setup then would be to have control traffic
on queue-0 with flow control, but just ignore overflow other queues
carrying IP and Debug traffic. (For proper IP queue management
this is done in the modem anyway - the radio-link normally
slower than the CAIF link so queues would normally build
in the modem not at the CAIF link interface).

In any case flow control on queue-0 would do.


> > +		high = (caifd->netdev->tx_queue_len * q_high) / 100;
> > +
> > +		/* If we run with a TX queue, check if the queue is too
> long*/
>
> Are you sure only this cpu can run here ? any lock is held ?

I guess there are multiple issues here.
1) Access to tx_queue: I see in net/core/dev.c access to qdisc is RCU
	protected. I believe I should add RCU locking here.

2) I don't believe I need to hold spin_lock for the detection of overflow.
	If I we have races here the worst thing that can
	happened is that Flow-off is a bit off in timing.

3) I think I'll add a spin_lock when accessing caifd->xoff to avoid
	multiple flow-off indications.

I'll make a new patch fixing these issues.

> > +		if (netif_queue_stopped(caifd->netdev) ||
> > +			qdisc_qlen(txq->qdisc) > high) {
> > +
> > +			pr_debug("queue stop(%d) or full (%d>%d) - XOFF\n",
> > +					netif_queue_stopped(caifd->netdev),
> > +					qdisc_qlen(txq->qdisc), high);
> > +			caifd->xoff = 1;
> > +			/* Hijack this skb free callback function. */
> > +			skb_orphan(skb);
> > +			skb->destructor = caif_flow_cb;
> > +			caifd->layer.up->
> > +				ctrlcmd(caifd->layer.up,
> > +					_CAIF_CTRLCMD_PHYIF_FLOW_OFF_IND,
> > +					caifd->layer.id);
> > +		}
> > +	}
> >
> >  	err = dev_queue_xmit(skb);
> >  	if (err > 0)
>
> What prevents dev_queue_xmit() to early orphan skb ?

My understanding is that skb destructor primarily is used for socket
memory accounting. In this case we're fooling the socket accounting,
but it should only happen when hitting the flow-off queue length
threshold. If we have a tx queue on 1000 it would happen at most
every 500 packet, in reality much more seldom.

However I think I can, if I do locking properly, stash away the destructor
and call it when the flow callback is called... what do you think?


Thank you for reviewing this Eric, further feedback welcome.

Regards,
Sjur

^ permalink raw reply

* Re: [PATCH net-next 3/4] cls_flow: use skb_flow_dissect()
From: Dan Siemon @ 2011-12-03 15:42 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: chrisw-H+wXaHxf7aLQT0dZR+AlfA, dev-yBygre7rU0TnMu66kgdUjQ, netdev,
	Florian Westphal, jhs-jkUAjuhPggJWk0Htik3J/w,
	john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w,
	herbert-F6s6mLieUQo7FNHlEwC/lvQIK84fMopw, Stephen Hemminger,
	David Miller
In-Reply-To: <1322493858.2292.71.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>


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

On Mon, 2011-11-28 at 16:24 +0100, Eric Dumazet wrote:
> Instead of using a custom flow dissector, use skb_flow_dissect() and
> benefit from tunnelling support.
> 
> This lack of tunnelling support was mentioned by Dan Siemon.

Thanks Eric. I don't think having the existing keys automatically use
inner tunnel headers meets some key use cases - this is why I had
separate keys in my patch. The most common situation this will cause
trouble is when the admin wants to enforce per-host fairness using the
src or dst keywords. Automatically including the inner headers means any
user behind the router can easily escape from the desired limitations
just by running traffic through a tunnel. Also, I expect the perf hit is
small but in 95% of deployments people won't actually want to look at
the inner headers so it may not make sense to do this for every packet.

Thanks for making a better version of my patch.

> Signed-off-by: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>  net/sched/cls_flow.c |  180 ++++++++++-------------------------------
>  1 file changed, 48 insertions(+), 132 deletions(-)
> 
> diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c
> index 7b58230..a120ec5 100644
> --- a/net/sched/cls_flow.c
> +++ b/net/sched/cls_flow.c
> @@ -26,6 +26,8 @@
>  #include <net/pkt_cls.h>
>  #include <net/ip.h>
>  #include <net/route.h>
> +#include <net/flow_keys.h>
> +
>  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
>  #include <net/netfilter/nf_conntrack.h>
>  #endif
> @@ -66,134 +68,37 @@ static inline u32 addr_fold(void *addr)
>  	return (a & 0xFFFFFFFF) ^ (BITS_PER_LONG > 32 ? a >> 32 : 0);
>  }
>  
> -static u32 flow_get_src(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
> -	__be32 *data = NULL, hdata;
> -
> -	switch (skb->protocol) {
> -	case htons(ETH_P_IP):
> -		data = skb_header_pointer(skb,
> -					  nhoff + offsetof(struct iphdr,
> -							   saddr),
> -					  4, &hdata);
> -		break;
> -	case htons(ETH_P_IPV6):
> -		data = skb_header_pointer(skb,
> -					 nhoff + offsetof(struct ipv6hdr,
> -							  saddr.s6_addr32[3]),
> -					 4, &hdata);
> -		break;
> -	}
> -
> -	if (data)
> -		return ntohl(*data);
> +	if (flow->src)
> +		return ntohl(flow->src);
>  	return addr_fold(skb->sk);
>  }
>  
> -static u32 flow_get_dst(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
> -	__be32 *data = NULL, hdata;
> -
> -	switch (skb->protocol) {
> -	case htons(ETH_P_IP):
> -		data = skb_header_pointer(skb,
> -					  nhoff + offsetof(struct iphdr,
> -							   daddr),
> -					  4, &hdata);
> -		break;
> -	case htons(ETH_P_IPV6):
> -		data = skb_header_pointer(skb,
> -					 nhoff + offsetof(struct ipv6hdr,
> -							  daddr.s6_addr32[3]),
> -					 4, &hdata);
> -		break;
> -	}
> -
> -	if (data)
> -		return ntohl(*data);
> +	if (flow->dst)
> +		return ntohl(flow->dst);
>  	return addr_fold(skb_dst(skb)) ^ (__force u16)skb->protocol;
>  }
>  
> -static u32 flow_get_proto(const struct sk_buff *skb, int nhoff)
> -{
> -	__u8 *data = NULL, hdata;
> -
> -	switch (skb->protocol) {
> -	case htons(ETH_P_IP):
> -		data = skb_header_pointer(skb,
> -					  nhoff + offsetof(struct iphdr,
> -							   protocol),
> -					  1, &hdata);
> -		break;
> -	case htons(ETH_P_IPV6):
> -		data = skb_header_pointer(skb,
> -					 nhoff + offsetof(struct ipv6hdr,
> -							  nexthdr),
> -					 1, &hdata);
> -		break;
> -	}
> -	if (data)
> -		return *data;
> -	return 0;
> -}
> -
> -/* helper function to get either src or dst port */
> -static __be16 *flow_get_proto_common(const struct sk_buff *skb, int nhoff,
> -				     __be16 *_port, int dst)
> +static u32 flow_get_proto(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
> -	__be16 *port = NULL;
> -	int poff;
> -
> -	switch (skb->protocol) {
> -	case htons(ETH_P_IP): {
> -		struct iphdr *iph, _iph;
> -
> -		iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph);
> -		if (!iph)
> -			break;
> -		if (ip_is_fragment(iph))
> -			break;
> -		poff = proto_ports_offset(iph->protocol);
> -		if (poff >= 0)
> -			port = skb_header_pointer(skb,
> -					nhoff + iph->ihl * 4 + poff + dst,
> -					sizeof(*_port), _port);
> -		break;
> -	}
> -	case htons(ETH_P_IPV6): {
> -		struct ipv6hdr *iph, _iph;
> -
> -		iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph);
> -		if (!iph)
> -			break;
> -		poff = proto_ports_offset(iph->nexthdr);
> -		if (poff >= 0)
> -			port = skb_header_pointer(skb,
> -					nhoff + sizeof(*iph) + poff + dst,
> -					sizeof(*_port), _port);
> -		break;
> -	}
> -	}
> -
> -	return port;
> +	return flow->ip_proto;
>  }
>  
> -static u32 flow_get_proto_src(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_proto_src(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
> -	__be16 _port, *port = flow_get_proto_common(skb, nhoff, &_port, 0);
> -
> -	if (port)
> -		return ntohs(*port);
> +	if (flow->ports)
> +		return ntohs(flow->port16[0]);
>  
>  	return addr_fold(skb->sk);
>  }
>  
> -static u32 flow_get_proto_dst(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_proto_dst(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
> -	__be16 _port, *port = flow_get_proto_common(skb, nhoff, &_port, 2);
> -
> -	if (port)
> -		return ntohs(*port);
> +	if (flow->ports)
> +		return ntohs(flow->port16[1]);
>  
>  	return addr_fold(skb_dst(skb)) ^ (__force u16)skb->protocol;
>  }
> @@ -239,7 +144,7 @@ static u32 flow_get_nfct(const struct sk_buff *skb)
>  })
>  #endif
>  
> -static u32 flow_get_nfct_src(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_nfct_src(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
>  	switch (skb->protocol) {
>  	case htons(ETH_P_IP):
> @@ -248,10 +153,10 @@ static u32 flow_get_nfct_src(const struct sk_buff *skb, int nhoff)
>  		return ntohl(CTTUPLE(skb, src.u3.ip6[3]));
>  	}
>  fallback:
> -	return flow_get_src(skb, nhoff);
> +	return flow_get_src(skb, flow);
>  }
>  
> -static u32 flow_get_nfct_dst(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_nfct_dst(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
>  	switch (skb->protocol) {
>  	case htons(ETH_P_IP):
> @@ -260,21 +165,21 @@ static u32 flow_get_nfct_dst(const struct sk_buff *skb, int nhoff)
>  		return ntohl(CTTUPLE(skb, dst.u3.ip6[3]));
>  	}
>  fallback:
> -	return flow_get_dst(skb, nhoff);
> +	return flow_get_dst(skb, flow);
>  }
>  
> -static u32 flow_get_nfct_proto_src(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_nfct_proto_src(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
>  	return ntohs(CTTUPLE(skb, src.u.all));
>  fallback:
> -	return flow_get_proto_src(skb, nhoff);
> +	return flow_get_proto_src(skb, flow);
>  }
>  
> -static u32 flow_get_nfct_proto_dst(const struct sk_buff *skb, int nhoff)
> +static u32 flow_get_nfct_proto_dst(const struct sk_buff *skb, const struct flow_keys *flow)
>  {
>  	return ntohs(CTTUPLE(skb, dst.u.all));
>  fallback:
> -	return flow_get_proto_dst(skb, nhoff);
> +	return flow_get_proto_dst(skb, flow);
>  }
>  
>  static u32 flow_get_rtclassid(const struct sk_buff *skb)
> @@ -314,21 +219,19 @@ static u32 flow_get_rxhash(struct sk_buff *skb)
>  	return skb_get_rxhash(skb);
>  }
>  
> -static u32 flow_key_get(struct sk_buff *skb, int key)
> +static u32 flow_key_get(struct sk_buff *skb, int key, struct flow_keys *flow)
>  {
> -	int nhoff = skb_network_offset(skb);
> -
>  	switch (key) {
>  	case FLOW_KEY_SRC:
> -		return flow_get_src(skb, nhoff);
> +		return flow_get_src(skb, flow);
>  	case FLOW_KEY_DST:
> -		return flow_get_dst(skb, nhoff);
> +		return flow_get_dst(skb, flow);
>  	case FLOW_KEY_PROTO:
> -		return flow_get_proto(skb, nhoff);
> +		return flow_get_proto(skb, flow);
>  	case FLOW_KEY_PROTO_SRC:
> -		return flow_get_proto_src(skb, nhoff);
> +		return flow_get_proto_src(skb, flow);
>  	case FLOW_KEY_PROTO_DST:
> -		return flow_get_proto_dst(skb, nhoff);
> +		return flow_get_proto_dst(skb, flow);
>  	case FLOW_KEY_IIF:
>  		return flow_get_iif(skb);
>  	case FLOW_KEY_PRIORITY:
> @@ -338,13 +241,13 @@ static u32 flow_key_get(struct sk_buff *skb, int key)
>  	case FLOW_KEY_NFCT:
>  		return flow_get_nfct(skb);
>  	case FLOW_KEY_NFCT_SRC:
> -		return flow_get_nfct_src(skb, nhoff);
> +		return flow_get_nfct_src(skb, flow);
>  	case FLOW_KEY_NFCT_DST:
> -		return flow_get_nfct_dst(skb, nhoff);
> +		return flow_get_nfct_dst(skb, flow);
>  	case FLOW_KEY_NFCT_PROTO_SRC:
> -		return flow_get_nfct_proto_src(skb, nhoff);
> +		return flow_get_nfct_proto_src(skb, flow);
>  	case FLOW_KEY_NFCT_PROTO_DST:
> -		return flow_get_nfct_proto_dst(skb, nhoff);
> +		return flow_get_nfct_proto_dst(skb, flow);
>  	case FLOW_KEY_RTCLASSID:
>  		return flow_get_rtclassid(skb);
>  	case FLOW_KEY_SKUID:
> @@ -361,6 +264,16 @@ static u32 flow_key_get(struct sk_buff *skb, int key)
>  	}
>  }
>  
> +#define FLOW_KEYS_NEEDED ((1 << FLOW_KEY_SRC) | 		\
> +			  (1 << FLOW_KEY_DST) |			\
> +			  (1 << FLOW_KEY_PROTO) |		\
> +			  (1 << FLOW_KEY_PROTO_SRC) |		\
> +			  (1 << FLOW_KEY_PROTO_DST) | 		\
> +			  (1 << FLOW_KEY_NFCT_SRC) |		\
> +			  (1 << FLOW_KEY_NFCT_DST) |		\
> +			  (1 << FLOW_KEY_NFCT_PROTO_SRC) |	\
> +			  (1 << FLOW_KEY_NFCT_PROTO_DST))
> + 
>  static int flow_classify(struct sk_buff *skb, const struct tcf_proto *tp,
>  			 struct tcf_result *res)
>  {
> @@ -373,16 +286,19 @@ static int flow_classify(struct sk_buff *skb, const struct tcf_proto *tp,
>  
>  	list_for_each_entry(f, &head->filters, list) {
>  		u32 keys[f->nkeys];
> +		struct flow_keys flow_keys;
>  
>  		if (!tcf_em_tree_match(skb, &f->ematches, NULL))
>  			continue;
>  
>  		keymask = f->keymask;
> +		if (keymask & FLOW_KEYS_NEEDED)
> +			skb_flow_dissect(skb, &flow_keys);
>  
>  		for (n = 0; n < f->nkeys; n++) {
>  			key = ffs(keymask) - 1;
>  			keymask &= ~(1 << key);
> -			keys[n] = flow_key_get(skb, key);
> +			keys[n] = flow_key_get(skb, key, &flow_keys);
>  		}
>  
>  		if (f->mode == FLOW_MODE_HASH)
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply

* Re: Bug in computing data_len in tcp_sendmsg?
From: Eric Dumazet @ 2011-12-03 15:09 UTC (permalink / raw)
  To: David Miller; +Cc: subramanian.vijay, therbert, netdev
In-Reply-To: <20111202.163024.1294014889349291295.davem@davemloft.net>

Le vendredi 02 décembre 2011 à 16:30 -0500, David Miller a écrit :
> From: Eric Dumazet <eric.dumazet@gmail.com>
> Date: Fri, 02 Dec 2011 21:45:56 +0100
> 
> > Retransmits could transmits 3 bytes already ACKed, is it a big deal ?
> 
> Unfortunately this kind of adjustment doesn't work.
> 
> When we trim the head in response to ACK'd data, the stack assumes that
> the first byte sitting at the front of the retransmit queue is ->snd_una.
> 
> So if you just back align the pull, and don't make amends for the setting
> of ->snd_una, we'll retransmit the wrong bytes.  The send queue will be
> out of sync with the sequence number state of the socket.
> 
> This has implications for SACK tagging state bit in the transmit queue
> as well.
> 
> In fact, this is a real dangerous road to go down, I think :-)


Yeah, it was not a good idea :)

My plan is to add a third parameter to pskb_copy(struct sk_buff *skb,
gfp_t gfp_mask, int reserve)

and use pskb_copy() in tcp_retransmit_skb() if it appears we need
between 1 and 3 bytes to re-align skb head before calling
tcp_transmit_skb(), (if NET_IP_ALIGN is not null)

[ In the unlikely case we had to allocate a new skb with pskb_copy(), we
will pass clone_it=0 to tcp_transmit_skb() ]

I'll send a fully tested patch before the end of week end.

Thanks !

^ permalink raw reply

* VERY URGENT===========READ ATTACHMENT
From: FBI @ 2011-12-03 13:06 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 16 bytes --]

OPEN ATTACTMENT

[-- Attachment #2: FBI NOTIFICATION.txt --]
[-- Type: application/octet-stream, Size: 2667 bytes --]


ANTI-TERRORIST AND MONETARY CRIMES DIVISION
FBI HEADQUARTERS IN WASHINGTON, D.C.
Federal Bureau Of Investigation.
FBI-Washington Field Office
601 4th Street, NW
Washington, DC 20535
Website: www.fbi.gov
 
DATE:12/03/2011
 
It has been discovered that your contract/inheritance/winning FUND was about being transferred to an unknown account under your name.This attempt was perpetrated by someone who claims to be working for you, and that you have given him due authority to have the FUND moved to the account specified below:
 
SOUTHWESTERN FEDERAL CREDIT UNION
WESCORP 924 OVERLAND COURT
SAN DIMAS, CA 91772. USA.
ACCOUNT NUMBER: 322682133
ABA/ROUTING NUMBER: 1211-71-41-8
SHARETYPE NO.: 35
FINAL CREDIT  JOHNSON FENZI AND CO. (Beneficiary).
 
The Federal Bureau of Investigation (F.B.I.) waded in after being alerted by the supposed bank. We investigated and found that there is a possible money laundering activity in play.The FUND US$10,500,000.00(Ten Million Five Hundred Thousand United States Dollars) was found to be deposited in Bank of America in your name pending your consent to have it transferred to the new account indicated above. It was further revealed that initial FUND transfer originated from Nigeria to England and now here in Bank of America in USA.
 
These transfers did not follow due process in line with the International FUND transfer rules and regulation.Consequently,we suspect this be a terrorism funding, drug related fund deposit and/or money laundering. As stated above, the FUND has your name on it; and you must have it cleared of any connection with any of these illegal activities.Be informed that FAILURE to have this cleared out will attract a JAIL TERM.We will not hesitate to visit the full weight of the law upon you if you do not clear this fund.There is every indication that you are involved in this shady deal.
 
Finally, you are expected to have the CLEARANCE DOCUMENT obtain from where the FUND originated from to have you and your fund cleared. Only then shall we release your FUND as clean money devoid of any illegality, and you will be free of any involvement. To this end, you are to contact Mr. Anthony Markson of the Anti Graft Department North Carolina Regional Office and have the FUND BENEFICIARY SEAL of TRANSFER (FBST) CLEARANCE DOCUMENT obtained. Contact him through this direct email: antigraft_department@w.cn ,Note that you have 72hrs to obtain this crucial Documentation.

This has to be cleared!
 
Faithfully Yours
Robert S. Mueller III
FBI Director
Federal Bureau Of Investigation.
FBI-Washington Field Office
601 4th Street, NW
Washington, DC 20535
www.fbi.gov

^ permalink raw reply

* Re: WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413
From: Markus Trippelsdorf @ 2011-12-03 12:29 UTC (permalink / raw)
  To: Dave Airlie
  Cc: Jerome Glisse, Christoph Lameter, Alex, Shi, Eric Dumazet,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel,
	Pekka Enberg, linux-mm@kvack.org, Matt Mackall, tj, Alex Deucher
In-Reply-To: <CAPM=9tyjZc9waC_ZBygW9zh+Zq-Wb1X5Y6yfsCCMPYwpFVWOOg@mail.gmail.com>

On 2011.12.03 at 12:20 +0000, Dave Airlie wrote:
> >> > > > > FIX idr_layer_cache: Marking all objects used
> >> > > >
> >> > > > Yesterday I couldn't reproduce the issue at all. But today I've hit
> >> > > > exactly the same spot again. (CCing the drm list)
> 
> If I had to guess it looks like 0 is getting written back to some
> random page by the GPU maybe, it could be that the GPU is in some half
> setup state at boot or on a reboot does it happen from a cold boot or
> just warm boot or kexec?

Only happened with kexec thus far. Cold boot seems to be fine.

-- 
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: Dave Airlie @ 2011-12-03 12:20 UTC (permalink / raw)
  To: Markus Trippelsdorf
  Cc: Jerome Glisse, Christoph Lameter, Alex, Shi, Eric Dumazet,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel,
	Pekka Enberg, linux-mm@kvack.org, Matt Mackall, tj, Alex Deucher
In-Reply-To: <20111203092845.GA1520@x4.trippels.de>

>> > > > > FIX idr_layer_cache: Marking all objects used
>> > > >
>> > > > Yesterday I couldn't reproduce the issue at all. But today I've hit
>> > > > exactly the same spot again. (CCing the drm list)

If I had to guess it looks like 0 is getting written back to some
random page by the GPU maybe, it could be that the GPU is in some half
setup state at boot or on a reboot does it happen from a cold boot or
just warm boot or kexec?

Jerome, might be worth checking the ordering for when bus master gets
enabled or if we turn off the writeback producers before writeback is
enabled.

Dave.

--
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] rt2x00: Use kcalloc instead of kzalloc to allocate array
From: Ivo Van Doorn @ 2011-12-03 11:46 UTC (permalink / raw)
  To: Thomas Meyer
  Cc: gwingerde, helmut.schaa, linville, linux-wireless, users, netdev,
	linux-kernel
In-Reply-To: <1322600880.1534.325.camel@localhost.localdomain>

On Tue, Nov 29, 2011 at 10:08 PM, Thomas Meyer <thomas@m3y3r.de> wrote:
> The advantage of kcalloc is, that will prevent integer overflows which could
> result from the multiplication of number of elements and size and it is also
> a bit nicer to read.
>
> The semantic patch that makes this change is available
> in https://lkml.org/lkml/2011/11/25/107
>
> Signed-off-by: Thomas Meyer <thomas@m3y3r.de>

Acked-by: Ivo van Doorn <IvDoorn@gmail.com>

> ---
>
> diff -u -p a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:36:47.770108588 +0100
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:54:53.495525543 +0100
> @@ -831,11 +831,11 @@ static int rt2x00lib_probe_hw_modes(stru
>        if (spec->supported_rates & SUPPORT_RATE_OFDM)
>                num_rates += 8;
>
> -       channels = kzalloc(sizeof(*channels) * spec->num_channels, GFP_KERNEL);
> +       channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
>        if (!channels)
>                return -ENOMEM;
>
> -       rates = kzalloc(sizeof(*rates) * num_rates, GFP_KERNEL);
> +       rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
>        if (!rates)
>                goto exit_free_channels;
>

^ permalink raw reply

* [net-next 6/6] ixgbe: Remove function prototype for non-existent function
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: Greg Rose, netdev, gospo, sassmann, Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Greg Rose <gregory.v.rose@intel.com>

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
index df04f1a..e8badab 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
@@ -33,7 +33,6 @@ void ixgbe_msg_task(struct ixgbe_adapter *adapter);
 int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask);
 void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter);
 void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter);
-void ixgbe_dump_registers(struct ixgbe_adapter *adapter);
 int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac);
 int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
 			   u8 qos);
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware.
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: John Fastabend <john.r.fastabend@intel.com>

Transitioning through an IEEE DCBX version from a CEE DCBX
and back (CEE->IEEE->CEE) may leave IEEE attributes programmed
in the hardware. DCB uses a bit field in the set routines to
determine which attributes PG, PFC, APP need to be reprogrammed.
This is needed because user flow allows queueing a series
of changes and then reprogramming the hardware with the
entire set in one operation.

When transitioning from IEEE DCBX mode back into CEE DCBX
mode the PG and PFC bits need to be set so the possibly
Tested-by: Ross Brattain <ross.b.brattain@intel.com>

different CEE attributes get programmed into the device.

This patch fixes broken logic that was evaluating to 0
and never setting any bits. Further this removes some
checks for num_tc in set routines. This logic only worked
when the number of traffic classes and user priorities
were equal. This is no longer the case for X540 devices.
Besides we can trust user input in this case if the
device is incorrectly configured the DCB bandwidths will
be incorrectly mapped but no OOPs, BUG, or hardware
failure will occur.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index 8c056c0..da31735 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -158,10 +158,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
 {
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
-	/* Abort a bad configuration */
-	if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs)
-		return;
-
 	if (prio != DCB_ATTR_VALUE_UNDEFINED)
 		adapter->temp_dcb_cfg.tc_config[tc].path[0].prio_type = prio;
 	if (bwg_id != DCB_ATTR_VALUE_UNDEFINED)
@@ -185,7 +181,7 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
 
 	if (adapter->temp_dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap !=
 	     adapter->dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap)
-		adapter->dcb_set_bitmap |= BIT_PFC;
+		adapter->dcb_set_bitmap |= BIT_PFC | BIT_APP_UPCHG;
 }
 
 static void ixgbe_dcbnl_set_pg_bwg_cfg_tx(struct net_device *netdev, int bwg_id,
@@ -206,10 +202,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_rx(struct net_device *netdev, int tc,
 {
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
-	/* Abort bad configurations */
-	if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs)
-		return;
-
 	if (prio != DCB_ATTR_VALUE_UNDEFINED)
 		adapter->temp_dcb_cfg.tc_config[tc].path[1].prio_type = prio;
 	if (bwg_id != DCB_ATTR_VALUE_UNDEFINED)
@@ -434,7 +426,12 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
 		adapter->hw.fc.current_mode = ixgbe_fc_pfc;
 
 #ifdef IXGBE_FCOE
-	if (up && !(up & (1 << adapter->fcoe.up))) {
+	/* Reprogam FCoE hardware offloads when the traffic class
+	 * FCoE is using changes. This happens if the APP info
+	 * changes or the up2tc mapping is updated.
+	 */
+	if ((up && !(up & (1 << adapter->fcoe.up))) ||
+	    (adapter->dcb_set_bitmap & BIT_APP_UPCHG)) {
 		adapter->fcoe.up = ffs(up) - 1;
 		ixgbe_dcbnl_devreset(netdev);
 		ret = DCB_HW_CHG_RST;
@@ -742,7 +739,9 @@ static u8 ixgbe_dcbnl_setdcbx(struct net_device *dev, u8 mode)
 		ixgbe_dcbnl_ieee_setets(dev, &ets);
 		ixgbe_dcbnl_ieee_setpfc(dev, &pfc);
 	} else if (mode & DCB_CAP_DCBX_VER_CEE) {
-		adapter->dcb_set_bitmap |= (BIT_PFC & BIT_PG_TX & BIT_PG_RX);
+		u8 mask = BIT_PFC | BIT_PG_TX | BIT_PG_RX | BIT_APP_UPCHG;
+
+		adapter->dcb_set_bitmap |= mask;
 		ixgbe_dcbnl_set_all(dev);
 	} else {
 		/* Drop into single TC mode strict priority as this
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: John Fastabend <john.r.fastabend@intel.com>

The order of operations is important in DCBnl set_all(). When FCoE
is configured it uses the up2tc map to learn which queues to configure
the hardware offloads on. Therefore we need to setup the map before
configuring FCoE.

This is only seen when the both up2tc mappings and APP info are
configured simultaneously.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c |   77 +++++++++--------------
 1 files changed, 29 insertions(+), 48 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index 33b93ff..8c056c0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -309,6 +309,27 @@ static void ixgbe_dcbnl_get_pfc_cfg(struct net_device *netdev, int priority,
 	*setting = adapter->dcb_cfg.tc_config[priority].dcb_pfc;
 }
 
+#ifdef IXGBE_FCOE
+static void ixgbe_dcbnl_devreset(struct net_device *dev)
+{
+	struct ixgbe_adapter *adapter = netdev_priv(dev);
+
+	while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
+		usleep_range(1000, 2000);
+
+	if (netif_running(dev))
+		dev->netdev_ops->ndo_stop(dev);
+
+	ixgbe_clear_interrupt_scheme(adapter);
+	ixgbe_init_interrupt_scheme(adapter);
+
+	if (netif_running(dev))
+		dev->netdev_ops->ndo_open(dev);
+
+	clear_bit(__IXGBE_RESETTING, &adapter->state);
+}
+#endif
+
 static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
 {
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
@@ -338,27 +359,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
 	if (ret)
 		return DCB_NO_HW_CHG;
 
-#ifdef IXGBE_FCOE
-	if (up && !(up & (1 << adapter->fcoe.up)))
-		adapter->dcb_set_bitmap |= BIT_APP_UPCHG;
-
-	/*
-	 * Only take down the adapter if an app change occurred. FCoE
-	 * may shuffle tx rings in this case and this can not be done
-	 * without a reset currently.
-	 */
-	if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) {
-		while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
-			usleep_range(1000, 2000);
-
-		adapter->fcoe.up = ffs(up) - 1;
-
-		if (netif_running(netdev))
-			netdev->netdev_ops->ndo_stop(netdev);
-		ixgbe_clear_interrupt_scheme(adapter);
-	}
-#endif
-
 	if (adapter->dcb_cfg.pfc_mode_enable) {
 		switch (adapter->hw.mac.type) {
 		case ixgbe_mac_82599EB:
@@ -385,15 +385,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
 		}
 	}
 
-#ifdef IXGBE_FCOE
-	if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) {
-		ixgbe_init_interrupt_scheme(adapter);
-		if (netif_running(netdev))
-			netdev->netdev_ops->ndo_open(netdev);
-		ret = DCB_HW_CHG_RST;
-	}
-#endif
-
 	if (adapter->dcb_set_bitmap & (BIT_PG_TX|BIT_PG_RX)) {
 		u16 refill[MAX_TRAFFIC_CLASS], max[MAX_TRAFFIC_CLASS];
 		u8 bwg_id[MAX_TRAFFIC_CLASS], prio_type[MAX_TRAFFIC_CLASS];
@@ -442,8 +433,14 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
 	if (adapter->dcb_cfg.pfc_mode_enable)
 		adapter->hw.fc.current_mode = ixgbe_fc_pfc;
 
-	if (adapter->dcb_set_bitmap & BIT_APP_UPCHG)
-		clear_bit(__IXGBE_RESETTING, &adapter->state);
+#ifdef IXGBE_FCOE
+	if (up && !(up & (1 << adapter->fcoe.up))) {
+		adapter->fcoe.up = ffs(up) - 1;
+		ixgbe_dcbnl_devreset(netdev);
+		ret = DCB_HW_CHG_RST;
+	}
+#endif
+
 	adapter->dcb_set_bitmap = 0x00;
 	return ret;
 }
@@ -661,22 +658,6 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev,
 	return ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, prio_tc);
 }
 
-#ifdef IXGBE_FCOE
-static void ixgbe_dcbnl_devreset(struct net_device *dev)
-{
-	struct ixgbe_adapter *adapter = netdev_priv(dev);
-
-	if (netif_running(dev))
-		dev->netdev_ops->ndo_stop(dev);
-
-	ixgbe_clear_interrupt_scheme(adapter);
-	ixgbe_init_interrupt_scheme(adapter);
-
-	if (netif_running(dev))
-		dev->netdev_ops->ndo_open(dev);
-}
-#endif
-
 static int ixgbe_dcbnl_ieee_setapp(struct net_device *dev,
 				   struct dcb_app *app)
 {
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Mike McElroy, Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Bruce Allan <bruce.w.allan@intel.com>

Based on a patch from Mike McElroy created against the out-of-tree e1000e
driver:

Hitting the BUG_ON in napi_enable(). Code inspection shows that this can
only be triggered by calling napi_enable() twice without an intervening
napi_disable().

I saw the following sequence of events in the stack trace:

1) We simulated a cable pull using an Extreme switch.
2) e1000_tx_timeout() was entered.
3) e1000_reset_task() was called. Saw the message from e_err() in the
console log.
4) e1000_reinit_locked was called. This function calls e1000_down() and
e1000_up(). These functions call napi_disable() and napi_enable()
respectively.
5) Then on another thread, a monitor task saw carrier was down and executed
'ip set link down' and 'ip set link up' commands.
6) Saw the '_E1000_RESETTING'warning fron the e1000_close function.
7) Either the e1000_open() executed between the e1000_down() and e1000_up()
calls in step 4 or the e1000_open() call executed after the e1000_up()
call.  In either case, napi_enable() is called twice which triggers the
BUG_ON.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Cc: Mike McElroy <mike.mcelroy@stratus.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 3c12e6a..ef6546f 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3516,7 +3516,6 @@ int e1000e_up(struct e1000_adapter *adapter)
 
 	clear_bit(__E1000_DOWN, &adapter->state);
 
-	napi_enable(&adapter->napi);
 	if (adapter->msix_entries)
 		e1000_configure_msix(adapter);
 	e1000_irq_enable(adapter);
@@ -3578,7 +3577,6 @@ void e1000e_down(struct e1000_adapter *adapter)
 	e1e_flush();
 	usleep_range(10000, 20000);
 
-	napi_disable(&adapter->napi);
 	e1000_irq_disable(adapter);
 
 	del_timer_sync(&adapter->watchdog_timer);
@@ -3901,6 +3899,8 @@ static int e1000_close(struct net_device *netdev)
 
 	pm_runtime_get_sync(&pdev->dev);
 
+	napi_disable(&adapter->napi);
+
 	if (!test_bit(__E1000_DOWN, &adapter->state)) {
 		e1000e_down(adapter);
 		e1000_free_irq(adapter);
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 3/6] igb: Update DMA Coalescing threshold calculation.
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: Matthew Vick, netdev, gospo, sassmann, Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Matthew Vick <matthew.vick@intel.com>

This patch updates the DMA Coalescing feature parameters to account for
larger MTUs. Previously, sufficient space may not have been allocated in
the receive buffer, causing packet drop.

Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igb/igb_main.c |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index b66b8aa..143cfeb 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -7061,15 +7061,28 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
 			wr32(E1000_DMCTXTH, 0);
 
 			/*
-			 * DMA Coalescing high water mark needs to be higher
-			 * than the RX threshold. set hwm to PBA -  2 * max
-			 * frame size
+			 * DMA Coalescing high water mark needs to be greater
+			 * than the Rx threshold. Set hwm to PBA - max frame
+			 * size in 16B units, capping it at PBA - 6KB.
 			 */
-			hwm = pba - (2 * adapter->max_frame_size);
+			hwm = 64 * pba - adapter->max_frame_size / 16;
+			if (hwm < 64 * (pba - 6))
+				hwm = 64 * (pba - 6);
+			reg = rd32(E1000_FCRTC);
+			reg &= ~E1000_FCRTC_RTH_COAL_MASK;
+			reg |= ((hwm << E1000_FCRTC_RTH_COAL_SHIFT)
+				& E1000_FCRTC_RTH_COAL_MASK);
+			wr32(E1000_FCRTC, reg);
+
+			/*
+			 * Set the DMA Coalescing Rx threshold to PBA - 2 * max
+			 * frame size, capping it at PBA - 10KB.
+			 */
+			dmac_thr = pba - adapter->max_frame_size / 512;
+			if (dmac_thr < pba - 10)
+				dmac_thr = pba - 10;
 			reg = rd32(E1000_DMACR);
 			reg &= ~E1000_DMACR_DMACTHR_MASK;
-			dmac_thr = pba - 4;
-
 			reg |= ((dmac_thr << E1000_DMACR_DMACTHR_SHIFT)
 				& E1000_DMACR_DMACTHR_MASK);
 
@@ -7085,7 +7098,6 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
 			 * coalescing(smart fifb)-UTRESH=0
 			 */
 			wr32(E1000_DMCRTRH, 0);
-			wr32(E1000_FCRTC, hwm);
 
 			reg = (IGB_DMCTLX_DCFLUSH_DIS | 0x4);
 
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 1/6] e1000e: Avoid wrong check on TX hang
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: Michael Wang, netdev, gospo, sassmann, Flavio Leitner,
	Jeff Kirsher
In-Reply-To: <1322912671-6903-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Michael Wang <wangyun@linux.vnet.ibm.com>

Descriptors may not be write-back while checking TX hang with flag
FLAG2_DMA_BURST on.
So when we detect hang, we just flush the descriptor and detect
again for once.

Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
Signed-off-by: Flavio Leitner <fbl@redhat.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/e1000.h  |    1 +
 drivers/net/ethernet/intel/e1000e/netdev.c |   23 ++++++++++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index 9fe18d1..f478a22 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -309,6 +309,7 @@ struct e1000_adapter {
 	u32 txd_cmd;
 
 	bool detect_tx_hung;
+	bool tx_hang_recheck;
 	u8 tx_timeout_factor;
 
 	u32 tx_int_delay;
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index c6e9763..3c12e6a 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1014,6 +1014,7 @@ static void e1000_print_hw_hang(struct work_struct *work)
 	struct e1000_adapter *adapter = container_of(work,
 	                                             struct e1000_adapter,
 	                                             print_hang_task);
+	struct net_device *netdev = adapter->netdev;
 	struct e1000_ring *tx_ring = adapter->tx_ring;
 	unsigned int i = tx_ring->next_to_clean;
 	unsigned int eop = tx_ring->buffer_info[i].next_to_watch;
@@ -1025,6 +1026,21 @@ static void e1000_print_hw_hang(struct work_struct *work)
 	if (test_bit(__E1000_DOWN, &adapter->state))
 		return;
 
+	if ((!adapter->tx_hang_recheck) &&
+	    (adapter->flags2 & FLAG2_DMA_BURST)) {
+		/* May be block on write-back, flush and detect again
+		 * flush pending descriptor writebacks to memory
+		 */
+		ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD);
+		/* execute the writes immediately */
+		e1e_flush();
+		adapter->tx_hang_recheck = 1;
+		return;
+	}
+	/* Real hang detected */
+	adapter->tx_hang_recheck = 0;
+	netif_stop_queue(netdev);
+
 	e1e_rphy(hw, PHY_STATUS, &phy_status);
 	e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status);
 	e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status);
@@ -1145,10 +1161,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
 		if (tx_ring->buffer_info[i].time_stamp &&
 		    time_after(jiffies, tx_ring->buffer_info[i].time_stamp
 			       + (adapter->tx_timeout_factor * HZ)) &&
-		    !(er32(STATUS) & E1000_STATUS_TXOFF)) {
+		    !(er32(STATUS) & E1000_STATUS_TXOFF))
 			schedule_work(&adapter->print_hang_task);
-			netif_stop_queue(netdev);
-		}
+		else
+			adapter->tx_hang_recheck = 0;
 	}
 	adapter->total_tx_bytes += total_tx_bytes;
 	adapter->total_tx_packets += total_tx_packets;
@@ -3838,6 +3854,7 @@ static int e1000_open(struct net_device *netdev)
 
 	e1000_irq_enable(adapter);
 
+	adapter->tx_hang_recheck = 0;
 	netif_start_queue(netdev);
 
 	adapter->idle_check = true;
-- 
1.7.6.4

^ permalink raw reply related

* [net-next 0/6][pull request] Intel Wired LAN Driver Updates
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

The following series contains updates to e1000e, igb and ixgbe.  5 of
the patches are bug fixes and one patch is to cleanup a function
prototype of a non-existent function.

The following are changes since commit 340e8dc1fb4032b6c8334c9bff20b2aec42ecfd8:
  atm: clip: Remove code commented out since eternity.
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Bruce Allan (1):
  e1000e: hitting BUG_ON() from napi_enable

Greg Rose (1):
  ixgbe: Remove function prototype for non-existent function

John Fastabend (2):
  ixgbe: DCBnl set_all, order of operations fix
  ixgbe: DCB: IEEE transitions may fail to reprogram hardware.

Matthew Vick (1):
  igb: Update DMA Coalescing threshold calculation.

Michael Wang (1):
  e1000e: Avoid wrong check on TX hang

 drivers/net/ethernet/intel/e1000e/e1000.h       |    1 +
 drivers/net/ethernet/intel/e1000e/netdev.c      |   27 +++++-
 drivers/net/ethernet/intel/igb/igb_main.c       |   26 +++++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c |   96 +++++++++--------------
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h  |    1 -
 5 files changed, 80 insertions(+), 71 deletions(-)

-- 
1.7.6.4

^ permalink raw reply

* Re: SYN attack, with FIN flag set
From: Eric Dumazet @ 2011-12-03 10:02 UTC (permalink / raw)
  To: Denys Fedoryshchenko; +Cc: David Miller, Michael Tokarev, netdev
In-Reply-To: <1322905302.2762.106.camel@edumazet-laptop>

Le samedi 03 décembre 2011 à 10:41 +0100, Eric Dumazet a écrit :
> [PATCH] tcp: drop SYN+FIN messages
> 
> Denys Fedoryshchenko reported that SYN+FIN attacks were bringing his
> linux machines to their limits.
> 
> Dont call conn_request() if the TCP flags includes SYN flag
> 

Oh well this should be :

Dont call conn_request() if the TCP flags includes FIN flag

^ permalink raw reply

* Re: SYN attack, with FIN flag set
From: Eric Dumazet @ 2011-12-03  9:41 UTC (permalink / raw)
  To: Denys Fedoryshchenko, David Miller; +Cc: Michael Tokarev, netdev
In-Reply-To: <73da1a18b48dc3097acd6728be208c66@visp.net.lb>

Le samedi 03 décembre 2011 à 11:07 +0200, Denys Fedoryshchenko a écrit :
>  No,no, as i understand it is just threating SYN+FIN as plain SYN.
>  I think if it incurr additional expenses (verification), no need maybe 
>  to fix it, it is job of iptables.
>  But is FIN to listening socket - legitimate? Shouldn't it be dropped?
> 


Host network stack is optimized for the fast path (legitimate traffic)

Firewalls are optimized to the opposite, to let protected machines doing
their jobs without slow checks.

If we add all possible counter measures in tcp stack, it would be maybe
2 times slower than it is...

Remember than SYN|FIN messages are maybe 0.000001% of total Internet
trafic, since they are not legitimate.

In the case of SYN packet, flow is :

1) IP stack : ip_rcv(), ip_route_input_noref(), ip_rcv_finish()

2) TCP stack : 
	tcp_v4_rcv(),
	__inet_lookup_skb() [ find the listener socket ]
	bh_lock_sock_nested(sk) [ lock the socket ]
	tcp_v4_do_rcv()
	tcp_v4_hnd_req()
	inet_csk_search_req() [ try to find a previous SYN_RECV sock]
	tcp_rcv_state_process()
		tcp_v4_conn_request(sk, skb)

So it appears we go too far, we should drop FIN messages at this point.

What about following patch then ?

The added test is hit only for SYN messages, this seems not a very
expensive test.


[PATCH] tcp: drop SYN+FIN messages

Denys Fedoryshchenko reported that SYN+FIN attacks were bringing his
linux machines to their limits.

Dont call conn_request() if the TCP flags includes SYN flag

Reported-by: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
 net/ipv4/tcp_input.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 52b5c2d..d54c942 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5809,6 +5809,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
 			goto discard;
 
 		if (th->syn) {
+			if (th->fin)
+				goto discard;
 			if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
 				return 1;
 

^ permalink raw reply related

* Re: WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413
From: Markus Trippelsdorf @ 2011-12-03  9:28 UTC (permalink / raw)
  To: Jerome Glisse
  Cc: Christoph Lameter, Alex, Shi, Eric Dumazet,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel,
	Pekka Enberg, linux-mm@kvack.org, Matt Mackall, tj, Alex Deucher
In-Reply-To: <20111202230412.GB12057@homer.localdomain>

On 2011.12.02 at 18:04 -0500, Jerome Glisse wrote:
> On Thu, Nov 24, 2011 at 09:50:40AM +0100, Markus Trippelsdorf wrote:
> > On 2011.11.23 at 10:06 -0600, Christoph Lameter wrote:
> > > On Wed, 23 Nov 2011, Markus Trippelsdorf wrote:
> > > 
> > > > > FIX idr_layer_cache: Marking all objects used
> > > >
> > > > Yesterday I couldn't reproduce the issue at all. But today I've hit
> > > > exactly the same spot again. (CCing the drm list)
> > > 
> > > Well this is looks like write after free.
> > > 
> > > > =============================================================================
> > > > BUG idr_layer_cache: Poison overwritten
> > > > -----------------------------------------------------------------------------
> > > > Object ffff8802156487c0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
> > > > Object ffff8802156487d0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
> > > > Object ffff8802156487e0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
> > > > Object ffff8802156487f0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
> > > > Object ffff880215648800: 00 00 00 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  ....kkkkkkkkkkkk
> > > > Object ffff880215648810: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
> > > 
> > > And its an integer sized write of 0. If you look at the struct definition
> > > and lookup the offset you should be able to locate the field that
> > > was modified.
> > 
> I really don't think that drm or radeon is guilty. I tried to reproduce
> with rc3+ & rc4+ with slub or slab, did more then 20 kexec cycle with
> same kernel parameter and no issue.
> 
> To confirm that radeon or drm is not to blame can you trigger the issue
> by using nomodeset kernel option (your fb rotate option is then
> useless). If with nomodeset you can trigger the issue can you then try
> to trigger it with KMS enabled and with attached patch (real ugly printk
> debuging)
> 
> Note that i walked over the drm mode init code and i believe the root
> issue is that some code in the kernel do a double idr_remove/destroy
> which trigger the idr slub/slab error. It just happen that radeon/drm
> is call after the idr double free but is not the one guilty.
> 
> Note that i don't understand the idr code much, so my theory can be
> completely wrong but attached patch might help to shed some light.

Thanks for the debugging patch Jerome.
I couldn't trigger the issue with the »nomodeset« kernel option yet.
But I've triggered it with KMS enabled and your patch applied:

Linux version 3.2.0-rc4-00089-g621fc1e-dirty (markus@x4.trippels.de) (gcc version 4.7.0 20111201 (experimental) (GCC) ) #137 SMP PREEMPT Sat Dec 3 06:43:05 CET 2011
Command line: root=PARTUUID=6d6a4009-3a90-40df-806a-e63f48189719 init=/sbin/minit rootflags=logbsize=262144 fbcon=rotate:3 drm_kms_helper.poll=0 quiet
KERNEL supported cpus:
  AMD AuthenticAMD
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000100 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000dfe90000 (usable)
 BIOS-e820: 00000000dfe90000 - 00000000dfea8000 (ACPI data)
 BIOS-e820: 00000000dfea8000 - 00000000dfed0000 (ACPI NVS)
 BIOS-e820: 00000000dfed0000 - 00000000dff00000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000220000000 (usable)
NX (Execute Disable) protection: active
DMI present.
DMI: System manufacturer System Product Name/M4A78T-E, BIOS 3406    08/20/2010
e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
last_pfn = 0x220000 max_arch_pfn = 0x400000000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-EFFFF uncachable
  F0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 000000000000 mask FFFF80000000 write-back
  1 base 000080000000 mask FFFFC0000000 write-back
  2 base 0000C0000000 mask FFFFE0000000 write-back
  3 base 0000F0000000 mask FFFFF8000000 write-combining
  4 disabled
  5 disabled
  6 disabled
  7 disabled
TOM2: 0000000220000000 aka 8704M
x86 PAT enabled: cpu 0, old 0x7010600070106, new 0x7010600070106
last_pfn = 0xdfe90 max_arch_pfn = 0x400000000
initial memory mapped : 0 - 20000000
Base memory trampoline at [ffff88000009d000] 9d000 size 8192
Using GB pages for direct mapping
init_memory_mapping: 0000000000000000-00000000dfe90000
 0000000000 - 00c0000000 page 1G
 00c0000000 - 00dfe00000 page 2M
 00dfe00000 - 00dfe90000 page 4k
kernel direct mapping tables up to dfe90000 @ 1fffd000-20000000
init_memory_mapping: 0000000100000000-0000000220000000
 0100000000 - 0200000000 page 1G
 0200000000 - 0220000000 page 2M
kernel direct mapping tables up to 220000000 @ dfe8e000-dfe90000
ACPI: RSDP 00000000000fb880 00024 (v02 ACPIAM)
ACPI: XSDT 00000000dfe90100 0005C (v01 082010 XSDT1403 20100820 MSFT 00000097)
ACPI: FACP 00000000dfe90290 000F4 (v03 082010 FACP1403 20100820 MSFT 00000097)
ACPI Warning: Optional field Pm2ControlBlock has zero address or length: 0x0000000000000000/0x1 (20110623/tbfadt-560)
ACPI: DSDT 00000000dfe90450 0E6FE (v01  A1152 A1152000 00000000 INTL 20060113)
ACPI: FACS 00000000dfea8000 00040
ACPI: APIC 00000000dfe90390 0007C (v01 082010 APIC1403 20100820 MSFT 00000097)
ACPI: MCFG 00000000dfe90410 0003C (v01 082010 OEMMCFG  20100820 MSFT 00000097)
ACPI: OEMB 00000000dfea8040 00072 (v01 082010 OEMB1403 20100820 MSFT 00000097)
ACPI: SRAT 00000000dfe9f450 000E8 (v01 AMD    FAM_F_10 00000002 AMD  00000001)
ACPI: HPET 00000000dfe9f540 00038 (v01 082010 OEMHPET  20100820 MSFT 00000097)
ACPI: SSDT 00000000dfe9f580 0088C (v01 A M I  POWERNOW 00000001 AMD  00000001)
ACPI: Local APIC address 0xfee00000
 [ffffea0000000000-ffffea00077fffff] PMD -> [ffff880217600000-ffff88021e7fffff] on node 0
Zone PFN ranges:
  DMA32    0x00000010 -> 0x00100000
  Normal   0x00100000 -> 0x00220000
Movable zone start PFN for each node
early_node_map[3] active PFN ranges
    0: 0x00000010 -> 0x0000009f
    0: 0x00000100 -> 0x000dfe90
    0: 0x00100000 -> 0x00220000
On node 0 totalpages: 2096671
  DMA32 zone: 14336 pages used for memmap
  DMA32 zone: 2 pages reserved
  DMA32 zone: 902685 pages, LIFO batch:31
  Normal zone: 16128 pages used for memmap
  Normal zone: 1163520 pages, LIFO batch:31
ACPI: PM-Timer IO Port: 0x808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x84] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x85] disabled)
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, version 33, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x8300 base: 0xfed00000
SMP: Allowing 4 CPUs, 0 hotplug CPUs
nr_irqs_gsi: 40
Allocating PCI resources starting at dff00000 (gap: dff00000:20000000)
setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1
PERCPU: Embedded 23 pages/cpu @ffff88021fc00000 s71808 r0 d22400 u524288
pcpu-alloc: s71808 r0 d22400 u524288 alloc=1*2097152
pcpu-alloc: [0] 0 1 2 3 
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 2066205
Kernel command line: root=PARTUUID=6d6a4009-3a90-40df-806a-e63f48189719 init=/sbin/minit rootflags=logbsize=262144 fbcon=rotate:3 drm_kms_helper.poll=0 quiet
PID hash table entries: 4096 (order: 3, 32768 bytes)
Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
Memory: 8181488k/8912896k available (4670k kernel code, 526212k absent, 205196k reserved, 3879k data, 424k init)
Preemptible hierarchical RCU implementation.
	Verbose stalled-CPUs detection is disabled.
NR_IRQS:4352 nr_irqs:712 16
Extended CMOS year: 2000
Console: colour VGA+ 80x25
console [tty0] enabled
hpet clockevent registered
Fast TSC calibration using PIT
Detected 3211.038 MHz processor.
Calibrating delay loop (skipped), value calculated using timer frequency.. 6422.07 BogoMIPS (lpj=3211038)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 256
ida_get_new_above free idr ffff88021e81e700
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e8334c8
ida_get_new_above free idr ffff88021e833058
ida_get_new_above free idr ffff88021e834da8
ida_get_new_above free idr ffff88021e834da8
ida_get_new_above free idr ffff88021e834da8
ida_get_new_above free idr ffff88021e834da8
ida_get_new_above free idr ffff88021e834da8
ida_get_new_above free idr ffff88021e836700
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
ida_get_new_above free idr ffff88021e836290
tseg: 0000000000
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
mce: CPU supports 6 MCE banks
using AMD E400 aware idle routine
Freeing SMP alternatives: 12k freed
ACPI: Core revision 20110623
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: AMD Phenom(tm) II X4 955 Processor stepping 02
Performance Events: AMD PMU driver.
... version:                0
... bit width:              48
... generic registers:      4
... value mask:             0000ffffffffffff
... max period:             00007fffffffffff
... fixed-purpose events:   0
... event mask:             000000000000000f
System has AMD C1E enabled
Switch to broadcast mode on CPU0
ida_get_new_above free idr ffff88021e897b70
ida_get_new_above free idr ffff88021e8a2290
MCE: In-kernel MCE decoding enabled.
ida_get_new_above free idr ffff88021e8a7938
ida_get_new_above free idr ffff88021e897da8
Booting Node   0, Processors  #1
smpboot cpu 1: start_ip = 9d000
Switch to broadcast mode on CPU1
ida_get_new_above free idr ffff88021e8b0290
 #2
smpboot cpu 2: start_ip = 9d000
Switch to broadcast mode on CPU2
ida_get_new_above free idr ffff88021e8b9938
 #3 Ok.
smpboot cpu 3: start_ip = 9d000
Brought up 4 CPUs
Total of 4 processors activated (25687.09 BogoMIPS).
Switch to broadcast mode on CPU3
ida_get_new_above free idr ffff88021e8b9938
ida_get_new_above free idr ffff88021e8b9938
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
devtmpfs: initialized
ida_get_new_above free idr ffff88021e833700
ida_get_new_above free idr ffff88021e833938
ida_get_new_above free idr ffff88021e833b70
ida_get_new_above free idr ffff88021e833da8
ida_get_new_above free idr ffff88021e830058
ida_get_new_above free idr ffff88021e830290
ida_get_new_above free idr ffff88021e8304c8
ida_get_new_above free idr ffff88021e830700
ida_get_new_above free idr ffff88021e830938
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e830da8
ida_get_new_above free idr ffff88021e8a24c8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
NET: Registered protocol family 16
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
node 0 link 0: io port [1000, ffffff]
TOM: 00000000e0000000 aka 3584M
Fam 10h mmconf [e0000000, efffffff]
node 0 link 0: mmio [a0000, bffff]
node 0 link 0: mmio [e0000000, efffffff] ==> none
node 0 link 0: mmio [f0000000, fbcfffff]
node 0 link 0: mmio [fbd00000, fbefffff]
node 0 link 0: mmio [fbf00000, ffefffff]
TOM2: 0000000220000000 aka 8704M
bus: [00, 07] on node 0 link 0
bus: 00 index 0 [io  0x0000-0xffff]
bus: 00 index 1 [mem 0x000a0000-0x000bffff]
bus: 00 index 2 [mem 0xf0000000-0xffffffff]
bus: 00 index 3 [mem 0x220000000-0xfcffffffff]
Extended Config Space enabled on 1 nodes
ida_get_new_above free idr ffff88021e944da8
ACPI: bus type pci registered
PCI: Using configuration type 1 for base access
PCI: Using configuration type 1 for extended access
bio: create slab <bio-0> at 0
ida_get_new_above free idr ffff88021e944da8
ACPI: Added _OSI(Module Device)
ACPI: Added _OSI(Processor Device)
ACPI: Added _OSI(3.0 _SCP Extensions)
ACPI: Added _OSI(Processor Aggregator Device)
ida_get_new_above free idr ffff88021e944da8
ACPI: EC: Look up EC in DSDT
ACPI: Executed 3 blocks of module-level executable AML code
ACPI: Interpreter enabled
ACPI: (supports S0 S5)
ACPI: Using IOAPIC for interrupt routing
ida_get_new_above free idr ffff88021e944da8
PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
pci_root PNP0A03:00: host bridge window [io  0x0000-0x0cf7]
pci_root PNP0A03:00: host bridge window [io  0x0d00-0xffff]
pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff]
pci_root PNP0A03:00: host bridge window [mem 0x000d0000-0x000dffff]
pci_root PNP0A03:00: host bridge window [mem 0xdff00000-0xdfffffff]
pci_root PNP0A03:00: host bridge window [mem 0xf0000000-0xfebfffff]
pci 0000:00:00.0: [1022:9600] type 0 class 0x000600
pci 0000:00:01.0: [1022:9602] type 1 class 0x000604
pci 0000:00:06.0: [1022:9606] type 1 class 0x000604
pci 0000:00:06.0: PME# supported from D0 D3hot D3cold
pci 0000:00:06.0: PME# disabled
pci 0000:00:11.0: [1002:4391] type 0 class 0x000106
pci 0000:00:11.0: reg 10: [io  0xc000-0xc007]
pci 0000:00:11.0: reg 14: [io  0xb000-0xb003]
pci 0000:00:11.0: reg 18: [io  0xa000-0xa007]
pci 0000:00:11.0: reg 1c: [io  0x9000-0x9003]
pci 0000:00:11.0: reg 20: [io  0x8000-0x800f]
pci 0000:00:11.0: reg 24: [mem 0xfbcffc00-0xfbcfffff]
pci 0000:00:12.0: [1002:4397] type 0 class 0x000c03
pci 0000:00:12.0: reg 10: [mem 0xfbcfd000-0xfbcfdfff]
pci 0000:00:12.1: [1002:4398] type 0 class 0x000c03
pci 0000:00:12.1: reg 10: [mem 0xfbcfe000-0xfbcfefff]
pci 0000:00:12.2: [1002:4396] type 0 class 0x000c03
pci 0000:00:12.2: reg 10: [mem 0xfbcff800-0xfbcff8ff]
pci 0000:00:12.2: supports D1 D2
pci 0000:00:12.2: PME# supported from D0 D1 D2 D3hot
pci 0000:00:12.2: PME# disabled
pci 0000:00:13.0: [1002:4397] type 0 class 0x000c03
pci 0000:00:13.0: reg 10: [mem 0xfbcfb000-0xfbcfbfff]
pci 0000:00:13.1: [1002:4398] type 0 class 0x000c03
pci 0000:00:13.1: reg 10: [mem 0xfbcfc000-0xfbcfcfff]
pci 0000:00:13.2: [1002:4396] type 0 class 0x000c03
pci 0000:00:13.2: reg 10: [mem 0xfbcff400-0xfbcff4ff]
pci 0000:00:13.2: supports D1 D2
pci 0000:00:13.2: PME# supported from D0 D1 D2 D3hot
pci 0000:00:13.2: PME# disabled
pci 0000:00:14.0: [1002:4385] type 0 class 0x000c05
pci 0000:00:14.1: [1002:439c] type 0 class 0x000101
pci 0000:00:14.1: reg 10: [io  0x0000-0x0007]
pci 0000:00:14.1: reg 14: [io  0x0000-0x0003]
pci 0000:00:14.1: reg 18: [io  0x0000-0x0007]
pci 0000:00:14.1: reg 1c: [io  0x0000-0x0003]
pci 0000:00:14.1: reg 20: [io  0xff00-0xff0f]
pci 0000:00:14.3: [1002:439d] type 0 class 0x000601
pci 0000:00:14.4: [1002:4384] type 1 class 0x000604
pci 0000:00:14.5: [1002:4399] type 0 class 0x000c03
pci 0000:00:14.5: reg 10: [mem 0xfbcfa000-0xfbcfafff]
pci 0000:00:18.0: [1022:1200] type 0 class 0x000600
pci 0000:00:18.1: [1022:1201] type 0 class 0x000600
pci 0000:00:18.2: [1022:1202] type 0 class 0x000600
pci 0000:00:18.3: [1022:1203] type 0 class 0x000600
pci 0000:00:18.4: [1022:1204] type 0 class 0x000600
pci 0000:01:05.0: [1002:9614] type 0 class 0x000300
pci 0000:01:05.0: reg 10: [mem 0xf0000000-0xf7ffffff pref]
pci 0000:01:05.0: reg 14: [io  0xd000-0xd0ff]
pci 0000:01:05.0: reg 18: [mem 0xfbee0000-0xfbeeffff]
pci 0000:01:05.0: reg 24: [mem 0xfbd00000-0xfbdfffff]
pci 0000:01:05.0: supports D1 D2
pci 0000:01:05.1: [1002:960f] type 0 class 0x000403
pci 0000:01:05.1: reg 10: [mem 0xfbefc000-0xfbefffff]
pci 0000:01:05.1: supports D1 D2
pci 0000:00:01.0: PCI bridge to [bus 01-01]
pci 0000:00:01.0:   bridge window [io  0xd000-0xdfff]
pci 0000:00:01.0:   bridge window [mem 0xfbd00000-0xfbefffff]
pci 0000:00:01.0:   bridge window [mem 0xf0000000-0xf7ffffff 64bit pref]
pci 0000:02:00.0: [1969:1026] type 0 class 0x000200
pci 0000:02:00.0: reg 10: [mem 0xfbfc0000-0xfbffffff 64bit]
pci 0000:02:00.0: reg 18: [io  0xec00-0xec7f]
pci 0000:02:00.0: PME# supported from D3hot D3cold
pci 0000:02:00.0: PME# disabled
pci 0000:00:06.0: PCI bridge to [bus 02-02]
pci 0000:00:06.0:   bridge window [io  0xe000-0xefff]
pci 0000:00:06.0:   bridge window [mem 0xfbf00000-0xfbffffff]
pci 0000:00:14.4: PCI bridge to [bus 03-03] (subtractive decode)
pci 0000:00:14.4:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
pci 0000:00:14.4:   bridge window [io  0x0d00-0xffff] (subtractive decode)
pci 0000:00:14.4:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
pci 0000:00:14.4:   bridge window [mem 0x000d0000-0x000dffff] (subtractive decode)
pci 0000:00:14.4:   bridge window [mem 0xdff00000-0xdfffffff] (subtractive decode)
pci 0000:00:14.4:   bridge window [mem 0xf0000000-0xfebfffff] (subtractive decode)
pci_bus 0000:00: on NUMA node 0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCE6._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0PC._PRT]
 pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea87700
ida_get_new_above free idr ffff88021ea87938
ida_get_new_above free idr ffff88021ea87b70
ida_get_new_above free idr ffff88021ea87da8
ida_get_new_above free idr ffff88021e944058
ida_get_new_above free idr ffff88021e944290
ida_get_new_above free idr ffff88021e9444c8
ida_get_new_above free idr ffff88021e944700
ida_get_new_above free idr ffff88021e944938
ida_get_new_above free idr ffff88021e944b70
ida_get_new_above free idr ffff88021e944da8
ACPI: PCI Interrupt Link [LNKA] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 4 7 10 11 12 14 15) *0, disabled.
ida_get_new_above free idr ffff88021e944da8
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
Advanced Linux Sound Architecture Driver Version 1.0.24.
PCI: Using ACPI for IRQ routing
PCI: pci_cache_line_size set to 64 bytes
reserve RAM buffer: 000000000009fc00 - 000000000009ffff 
reserve RAM buffer: 00000000dfe90000 - 00000000dfffffff 
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
hpet0: 4 comparators, 32-bit 14.318180 MHz counter
Switching to clocksource hpet
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp 00:00: [bus 00-ff]
pnp 00:00: [io  0x0cf8-0x0cff]
pnp 00:00: [io  0x0000-0x0cf7 window]
pnp 00:00: [io  0x0d00-0xffff window]
pnp 00:00: [mem 0x000a0000-0x000bffff window]
pnp 00:00: [mem 0x000d0000-0x000dffff window]
pnp 00:00: [mem 0xdff00000-0xdfffffff window]
pnp 00:00: [mem 0xf0000000-0xfebfffff window]
pnp 00:00: Plug and Play ACPI device, IDs PNP0a03 (active)
pnp 00:01: [mem 0x00000000-0xffffffffffffffff disabled]
pnp 00:01: [mem 0x00000000-0xffffffffffffffff disabled]
system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
pnp 00:02: [dma 4]
pnp 00:02: [io  0x0000-0x000f]
pnp 00:02: [io  0x0081-0x0083]
pnp 00:02: [io  0x0087]
pnp 00:02: [io  0x0089-0x008b]
pnp 00:02: [io  0x008f]
pnp 00:02: [io  0x00c0-0x00df]
pnp 00:02: Plug and Play ACPI device, IDs PNP0200 (active)
pnp 00:03: [io  0x0070-0x0071]
pnp 00:03: [irq 8]
pnp 00:03: Plug and Play ACPI device, IDs PNP0b00 (active)
pnp 00:04: [io  0x0061]
pnp 00:04: Plug and Play ACPI device, IDs PNP0800 (active)
pnp 00:05: [io  0x00f0-0x00ff]
pnp 00:05: [irq 13]
pnp 00:05: Plug and Play ACPI device, IDs PNP0c04 (active)
pnp 00:06: [mem 0xfed00000-0xfed003ff]
pnp 00:06: Plug and Play ACPI device, IDs PNP0103 (active)
pnp 00:07: [io  0x0060]
pnp 00:07: [io  0x0064]
pnp 00:07: [mem 0xfec00000-0xfec00fff]
pnp 00:07: [mem 0xfee00000-0xfee00fff]
system 00:07: [mem 0xfec00000-0xfec00fff] could not be reserved
system 00:07: [mem 0xfee00000-0xfee00fff] has been reserved
system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
pnp 00:08: [io  0x0010-0x001f]
pnp 00:08: [io  0x0022-0x003f]
pnp 00:08: [io  0x0062-0x0063]
pnp 00:08: [io  0x0065-0x006f]
pnp 00:08: [io  0x0072-0x007f]
pnp 00:08: [io  0x0080]
pnp 00:08: [io  0x0084-0x0086]
pnp 00:08: [io  0x0088]
pnp 00:08: [io  0x008c-0x008e]
pnp 00:08: [io  0x0090-0x009f]
pnp 00:08: [io  0x00a2-0x00bf]
pnp 00:08: [io  0x00b1]
pnp 00:08: [io  0x00e0-0x00ef]
pnp 00:08: [io  0x04d0-0x04d1]
pnp 00:08: [io  0x040b]
pnp 00:08: [io  0x04d6]
pnp 00:08: [io  0x0c00-0x0c01]
pnp 00:08: [io  0x0c14]
pnp 00:08: [io  0x0c50-0x0c51]
pnp 00:08: [io  0x0c52]
pnp 00:08: [io  0x0c6c]
pnp 00:08: [io  0x0c6f]
pnp 00:08: [io  0x0cd0-0x0cd1]
pnp 00:08: [io  0x0cd2-0x0cd3]
pnp 00:08: [io  0x0cd4-0x0cd5]
pnp 00:08: [io  0x0cd6-0x0cd7]
pnp 00:08: [io  0x0cd8-0x0cdf]
pnp 00:08: [io  0x0b00-0x0b3f]
pnp 00:08: [io  0x0800-0x089f]
pnp 00:08: [io  0x0000-0xffffffffffffffff disabled]
pnp 00:08: [io  0x0b00-0x0b0f]
pnp 00:08: [io  0x0b20-0x0b3f]
pnp 00:08: [io  0x0900-0x090f]
pnp 00:08: [io  0x0910-0x091f]
pnp 00:08: [io  0xfe00-0xfefe]
pnp 00:08: [io  0x0060]
pnp 00:08: [io  0x0064]
pnp 00:08: [mem 0xdff00000-0xdfffffff]
pnp 00:08: [mem 0xffb80000-0xffbfffff]
pnp 00:08: [mem 0xfec10000-0xfec1001f]
system 00:08: [io  0x04d0-0x04d1] has been reserved
system 00:08: [io  0x040b] has been reserved
system 00:08: [io  0x04d6] has been reserved
system 00:08: [io  0x0c00-0x0c01] has been reserved
system 00:08: [io  0x0c14] has been reserved
system 00:08: [io  0x0c50-0x0c51] has been reserved
system 00:08: [io  0x0c52] has been reserved
system 00:08: [io  0x0c6c] has been reserved
system 00:08: [io  0x0c6f] has been reserved
system 00:08: [io  0x0cd0-0x0cd1] has been reserved
system 00:08: [io  0x0cd2-0x0cd3] has been reserved
system 00:08: [io  0x0cd4-0x0cd5] has been reserved
system 00:08: [io  0x0cd6-0x0cd7] has been reserved
system 00:08: [io  0x0cd8-0x0cdf] has been reserved
system 00:08: [io  0x0b00-0x0b3f] has been reserved
system 00:08: [io  0x0800-0x089f] has been reserved
system 00:08: [io  0x0b00-0x0b0f] has been reserved
system 00:08: [io  0x0b20-0x0b3f] has been reserved
system 00:08: [io  0x0900-0x090f] has been reserved
system 00:08: [io  0x0910-0x091f] has been reserved
system 00:08: [io  0xfe00-0xfefe] has been reserved
system 00:08: [mem 0xdff00000-0xdfffffff] has been reserved
system 00:08: [mem 0xffb80000-0xffbfffff] has been reserved
system 00:08: [mem 0xfec10000-0xfec1001f] has been reserved
system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
pnp 00:09: [io  0x0000-0xffffffffffffffff disabled]
pnp 00:09: [io  0x0230-0x023f]
pnp 00:09: [io  0x0290-0x029f]
pnp 00:09: [io  0x0f40-0x0f4f]
pnp 00:09: [io  0x0a30-0x0a3f]
system 00:09: [io  0x0230-0x023f] has been reserved
system 00:09: [io  0x0290-0x029f] has been reserved
system 00:09: [io  0x0f40-0x0f4f] has been reserved
system 00:09: [io  0x0a30-0x0a3f] has been reserved
system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
pnp 00:0a: [mem 0xe0000000-0xefffffff]
system 00:0a: [mem 0xe0000000-0xefffffff] has been reserved
system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
pnp 00:0b: [mem 0x00000000-0x0009ffff]
pnp 00:0b: [mem 0x000c0000-0x000cffff]
pnp 00:0b: [mem 0x000e0000-0x000fffff]
pnp 00:0b: [mem 0x00100000-0xdfefffff]
pnp 00:0b: [mem 0xfec00000-0xffffffff]
system 00:0b: [mem 0x00000000-0x0009ffff] could not be reserved
system 00:0b: [mem 0x000c0000-0x000cffff] could not be reserved
system 00:0b: [mem 0x000e0000-0x000fffff] could not be reserved
system 00:0b: [mem 0x00100000-0xdfefffff] could not be reserved
system 00:0b: [mem 0xfec00000-0xffffffff] could not be reserved
system 00:0b: Plug and Play ACPI device, IDs PNP0c01 (active)
pnp: PnP ACPI: found 12 devices
ACPI: ACPI bus type pnp unregistered
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea87700
ida_get_new_above free idr ffff88021ea87938
ida_get_new_above free idr ffff88021ea87b70
ida_get_new_above free idr ffff88021ea87da8
ida_get_new_above free idr ffff88021e944058
ida_get_new_above free idr ffff88021e944290
ida_get_new_above free idr ffff88021e9444c8
ida_get_new_above free idr ffff88021e944700
ida_get_new_above free idr ffff88021e944938
ida_get_new_above free idr ffff88021e944b70
ida_get_new_above free idr ffff88021e944da8
PCI: max bus depth: 1 pci_try_num: 2
pci 0000:00:01.0: PCI bridge to [bus 01-01]
pci 0000:00:01.0:   bridge window [io  0xd000-0xdfff]
pci 0000:00:01.0:   bridge window [mem 0xfbd00000-0xfbefffff]
pci 0000:00:01.0:   bridge window [mem 0xf0000000-0xf7ffffff 64bit pref]
pci 0000:00:06.0: PCI bridge to [bus 02-02]
pci 0000:00:06.0:   bridge window [io  0xe000-0xefff]
pci 0000:00:06.0:   bridge window [mem 0xfbf00000-0xfbffffff]
pci 0000:00:14.4: PCI bridge to [bus 03-03]
pci 0000:00:06.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
pci 0000:00:06.0: setting latency timer to 64
pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
pci_bus 0000:00: resource 7 [mem 0x000d0000-0x000dffff]
pci_bus 0000:00: resource 8 [mem 0xdff00000-0xdfffffff]
pci_bus 0000:00: resource 9 [mem 0xf0000000-0xfebfffff]
pci_bus 0000:01: resource 0 [io  0xd000-0xdfff]
pci_bus 0000:01: resource 1 [mem 0xfbd00000-0xfbefffff]
pci_bus 0000:01: resource 2 [mem 0xf0000000-0xf7ffffff 64bit pref]
pci_bus 0000:02: resource 0 [io  0xe000-0xefff]
pci_bus 0000:02: resource 1 [mem 0xfbf00000-0xfbffffff]
pci_bus 0000:03: resource 4 [io  0x0000-0x0cf7]
pci_bus 0000:03: resource 5 [io  0x0d00-0xffff]
pci_bus 0000:03: resource 6 [mem 0x000a0000-0x000bffff]
pci_bus 0000:03: resource 7 [mem 0x000d0000-0x000dffff]
pci_bus 0000:03: resource 8 [mem 0xdff00000-0xdfffffff]
pci_bus 0000:03: resource 9 [mem 0xf0000000-0xfebfffff]
NET: Registered protocol family 2
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
IP route cache hash table entries: 262144 (order: 9, 2097152 bytes)
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
UDP hash table entries: 4096 (order: 5, 131072 bytes)
UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
ida_get_new_above free idr ffff88021e944da8
NET: Registered protocol family 1
ida_get_new_above free idr ffff88021e944da8
pci 0000:00:01.0: MSI quirk detected; subordinate MSI disabled
pci 0000:01:05.0: Boot video device
PCI: CLS 64 bytes, default 64
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing 64MB software IO TLB between ffff8800dbe8e000 - ffff8800dfe8e000
software IO TLB at phys 0xdbe8e000 - 0xdfe8e000
kvm: Nested Virtualization enabled
kvm: Nested Paging enabled
ida_get_new_above free idr ffff88021e8b04c8
perf: AMD IBS detected (0x0000001f)
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
SGI XFS with security attributes, large block/inode numbers, no debug enabled
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
msgmni has been set to 15979
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021ea874c8
input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0
ACPI: Power Button [PWRB]
input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
ACPI: Power Button [PWRF]
ACPI: processor limited to max C-state 1
ida_get_new_above free idr ffff88021e8b9058
ida_get_new_above free idr ffff88021e8b9058
[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
radeon 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
radeon 0000:01:05.0: setting latency timer to 64
drm_get_pci_dev 348
drm_get_pci_dev 354
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
[drm] initializing kernel modesetting (RS780 0x1002:0x9614 0x1043:0x834D).
[drm] register mmio base: 0xFBEE0000
[drm] register mmio size: 65536
ATOM BIOS: 113
radeon 0000:01:05.0: VRAM: 128M 0x00000000C0000000 - 0x00000000C7FFFFFF (128M used)
radeon 0000:01:05.0: GTT: 512M 0x00000000A0000000 - 0x00000000BFFFFFFF
[drm] Detected VRAM RAM=128M, BAR=128M
[drm] RAM width 32bits DDR
[TTM] Zone  kernel: Available graphics memory: 4090750 kiB.
[TTM] Zone   dma32: Available graphics memory: 2097152 kiB.
[TTM] Initializing pool allocator.
[drm] radeon: 128M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] Driver supports precise vblank timestamp query.
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
ida_get_new_above free idr ffff880216f7b058
[drm] radeon: irq initialized.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] Loading RS780 Microcode
[drm] PCIE GART of 512M enabled (table at 0x00000000C0040000).
radeon 0000:01:05.0: WB enabled
[drm] ring test succeeded in 0 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
[drm] allocating idr ffff88021eba1a70 -1330597712 idr 1
[drm] allocating idr ffff8802167b5998 -1330597712 idr 2
[drm] allocating idr ffff8802167b5900 -1330597712 idr 3
[drm] allocating idr ffff8802167b5868 -1330597712 idr 4
[drm] allocating idr ffff8802167b57d0 -1330597712 idr 5
[drm] allocating idr ffff8802167b5738 -1330597712 idr 6
[drm] allocating idr ffff8802167b56a0 -1330597712 idr 7
[drm] allocating idr ffff8802167b5608 -1330597712 idr 8
[drm] allocating idr ffff8802167b5570 -1330597712 idr 9
[drm] allocating idr ffff88021eb98018 -858993460 idr 10
[drm] allocating idr ffff8802167c4018 -858993460 idr 11
[drm] allocating idr ffff88021eb9f778 -522133280 idr 12
[drm] allocating idr ffff8802167e6dd8 -1061109568 idr 13
[drm] allocating idr ffff88021eb9f560 -522133280 idr 14
[drm] allocating idr ffff8802167e65c0 -1061109568 idr 15
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm]   VGA
[drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[drm]   Encoders:
[drm]     CRT1: INTERNAL_KLDSCP_DAC1
[drm] Connector 1:
[drm]   DVI-D
[drm]   HPD3
[drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[drm]   Encoders:
[drm]     DFP3: INTERNAL_KLDSCP_LVTMA
[drm] radeon: power management initialized
[drm] allocating idr ffff8802167b9818 -1145324613 idr 16
[drm] allocating idr ffff88021e8b4198 -555819298 idr 17
[drm] allocating idr ffff88021e8b4080 -555819298 idr 18
[drm] allocating idr ffff8802167c7eb8 -555819298 idr 19
[drm] allocating idr ffff8802167c7da0 -555819298 idr 20
[drm] allocating idr ffff8802167c7c88 -555819298 idr 21
[drm] allocating idr ffff8802167c7b70 -555819298 idr 22
[drm] allocating idr ffff8802167c7a58 -555819298 idr 23
[drm] allocating idr ffff8802167c7940 -555819298 idr 24
[drm] allocating idr ffff8802167c7828 -555819298 idr 25
[drm] allocating idr ffff8802167c7710 -555819298 idr 26
[drm] allocating idr ffff8802167c75f8 -555819298 idr 27
[drm] allocating idr ffff8802167c74e0 -555819298 idr 28
[drm] allocating idr ffff8802167c73c8 -555819298 idr 29
[drm] allocating idr ffff8802167c72b0 -555819298 idr 30
[drm] allocating idr ffff8802167c7198 -555819298 idr 31
[drm] remove idr ffff8802167c7da0 0 idr 20
idr_remove free idr ffff8802167b44c8
[drm] allocating idr ffff8802167c7da0 -555819298 idr 20
[drm] allocating idr ffff88021eb9f1e8 -67372037 idr 32
[drm] fb mappable at 0xF0142000
[drm] vram apper at 0xF0000000
[drm] size 7299072
[drm] fb depth is 24
[drm]    pitch is 6912
fbcon: radeondrmfb (fb0) is primary device
[drm] allocating idr ffff8802167c7080 -555819298 idr 33
[drm] remove idr ffff8802167c7080 -555819298 idr 33
idr_remove free idr ffff8802167b44c8
Console: switching to colour frame buffer device 131x105
fb0: radeondrmfb frame buffer device
drm: registered panic notifier
[drm] Initialized radeon 2.12.0 20080528 for 0000:01:05.0 on minor 0
loop: module loaded
ida_get_new_above free idr ffff8802167b44c8
ahci 0000:00:11.0: version 3.0
ahci 0000:00:11.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
ahci 0000:00:11.0: AHCI 0001.0100 32 slots 6 ports 3 Gbps 0x3f impl SATA mode
ahci 0000:00:11.0: flags: 64bit ncq sntf ilck pm led clo pmp pio slum part ccc 
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167dada8
ida_get_new_above free idr ffff8802167d9058
ida_get_new_above free idr ffff8802167d9290
ida_get_new_above free idr ffff8802167d94c8
ida_get_new_above free idr ffff8802167d9700
ida_get_new_above free idr ffff8802167d9938
ida_get_new_above free idr ffff8802167d9b70
ida_get_new_above free idr ffff8802167d9da8
ida_get_new_above free idr ffff8802167b8058
ida_get_new_above free idr ffff8802167b8290
ida_get_new_above free idr ffff8802167b84c8
ida_get_new_above free idr ffff8802167b44c8
------------[ cut here ]------------
WARNING: at mm/slab.c:1931 check_poison_obj+0xcc/0x220()
Hardware name: System Product Name
Slab corruption: files_cache start=ffff88021eb8e600, len=704
Pid: 5, comm: kworker/u:0 Not tainted 3.2.0-rc4-00089-g621fc1e-dirty #137
Call Trace:
 [<ffffffff81060f0a>] warn_slowpath_common+0x6a/0xa0
 [<ffffffff81060fa1>] warn_slowpath_fmt+0x41/0x60
 [<ffffffff810db30c>] check_poison_obj+0xcc/0x220
 [<ffffffff810fefee>] ? dup_fd+0x2e/0x300
 [<ffffffff810db4e5>] cache_alloc_debugcheck_after.isra.59+0x85/0x1c0
 [<ffffffff810fefee>] ? dup_fd+0x2e/0x300
 [<ffffffff810db904>] kmem_cache_alloc+0x64/0xc0
 [<ffffffff810fefee>] dup_fd+0x2e/0x300
 [<ffffffff8105fb91>] copy_process+0x991/0x10c0
 [<ffffffff810603ef>] do_fork+0xef/0x240
 [<ffffffff810828a5>] ? sched_clock_local+0x25/0xa0
 [<ffffffff8103aeac>] kernel_thread+0x6c/0x80
 [<ffffffff81075640>] ? proc_cap_handler+0x180/0x180
 [<ffffffff8148ee70>] ? gs_change+0xb/0xb
 [<ffffffff810757c8>] __call_usermodehelper+0x28/0x80
 [<ffffffff81076456>] process_one_work+0x116/0x3c0
 [<ffffffff810757a0>] ? call_usermodehelper_freeinfo+0x40/0x40
 [<ffffffff810774fe>] worker_thread+0x13e/0x2e0
 [<ffffffff810773c0>] ? flush_workqueue_prep_cwqs+0x200/0x200
 [<ffffffff8107c467>] kthread+0x87/0xa0
 [<ffffffff8148ee74>] kernel_thread_helper+0x4/0x10
 [<ffffffff8107c3e0>] ? kthread_flush_work_fn+0x20/0x20
 [<ffffffff8148ee70>] ? gs_change+0xb/0xb
---[ end trace b6eea21c7bdaf786 ]---
Redzone: 0x9f911029d74e35b/0x9f911029d74e35b.
Last user: [<ffffffff810fedb8>](free_fdtable_rcu+0xd8/0x120)
200: 00 00 00 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  ....kkkkkkkkkkkk
Prev obj: start=ffff88021eb8e328, len=704
Redzone: 0xd84156c5635688c0/0xd84156c5635688c0.
Last user: [<ffffffff810fefee>](dup_fd+0x2e/0x300)
000: 00 00 00 00 5a 5a 5a 5a 38 e3 b8 1e 02 88 ff ff  ....ZZZZ8.......
010: 40 00 00 00 5a 5a 5a 5a c0 e3 b8 1e 02 88 ff ff  @...ZZZZ........
Next obj: start=ffff88021eb8e8d8, len=704
Redzone: 0x9f911029d74e35b/0x9f911029d74e35b.
Last user: [<ffffffff810fedb8>](free_fdtable_rcu+0xd8/0x120)
000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
scsi0 : ahci
scsi1 : ahci
scsi2 : ahci
scsi3 : ahci
scsi4 : ahci
scsi5 : ahci
ata1: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcffd00 irq 22
ata2: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcffd80 irq 22
ata3: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcffe00 irq 22
ata4: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcffe80 irq 22
ata5: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcfff00 irq 22
ata6: SATA max UDMA/133 abar m1024@0xfbcffc00 port 0xfbcfff80 irq 22
ida_get_new_above free idr ffff88021e8a2700
ida_get_new_above free idr ffff88021e8a2938
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2da8
ida_get_new_above free idr ffff88021e897058
ida_get_new_above free idr ffff88021e897290
pata_atiixp 0000:00:14.1: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
scsi6 : pata_atiixp
scsi7 : pata_atiixp
ata7: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xff00 irq 14
ata8: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xff08 irq 15
ida_get_new_above free idr ffff88021e8974c8
ida_get_new_above free idr ffff88021e897700
ATL1E 0000:02:00.0: BAR 0: set to [mem 0xfbfc0000-0xfbffffff 64bit] (PCI address [0xfbfc0000-0xfbffffff])
ATL1E 0000:02:00.0: BAR 2: set to [io  0xec00-0xec7f] (PCI address [0xec00-0xec7f])
ATL1E 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
ATL1E 0000:02:00.0: setting latency timer to 64
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_hcd 0000:00:12.2: PCI INT B -> GSI 17 (level, low) -> IRQ 17
ehci_hcd 0000:00:12.2: EHCI Host Controller
ehci_hcd 0000:00:12.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:12.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
QUIRK: Enable AMD PLL fix
ehci_hcd 0000:00:12.2: applying AMD SB600/SB700 USB freeze workaround
ehci_hcd 0000:00:12.2: debug port 1
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ehci_hcd 0000:00:12.2: irq 17, io mem 0xfbcff800
ehci_hcd 0000:00:12.2: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
ehci_hcd 0000:00:13.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 2
ehci_hcd 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
ehci_hcd 0000:00:13.2: applying AMD SB600/SB700 USB freeze workaround
ehci_hcd 0000:00:13.2: debug port 1
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ehci_hcd 0000:00:13.2: irq 19, io mem 0xfbcff400
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 6 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci_hcd 0000:00:12.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ohci_hcd 0000:00:12.0: OHCI Host Controller
ohci_hcd 0000:00:12.0: new USB bus registered, assigned bus number 3
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ida_get_new_above free idr ffff88021e8a2b70
ohci_hcd 0000:00:12.0: irq 16, io mem 0xfbcfd000
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
ida_get_new_above free idr ffff880216004290
ida_get_new_above free idr ffff8802160044c8
ida_get_new_above free idr ffff880216004700
ida_get_new_above free idr ffff880216004938
ida_get_new_above free idr ffff880216004b70
ida_get_new_above free idr ffff880216004da8
ida_get_new_above free idr ffff88021ea87058
ida_get_new_above free idr ffff88021ea87290
ida_get_new_above free idr ffff88021ea874c8
ida_get_new_above free idr ffff88021e8a2700
ida_get_new_above free idr ffff88021e8a2938
ida_get_new_above free idr ffff88021e8a2b70
ohci_hcd 0000:00:12.1: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ohci_hcd 0000:00:12.1: OHCI Host Controller
ohci_hcd 0000:00:12.1: new USB bus registered, assigned bus number 4
ida_get_new_above free idr ffff88021e8a2b70
ohci_hcd 0000:00:12.1: irq 16, io mem 0xfbcfe000
ida_get_new_above free idr ffff88021e8b9b70
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 3 ports detected
ohci_hcd 0000:00:13.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 5
ida_get_new_above free idr ffff88021e8b9b70
ohci_hcd 0000:00:13.0: irq 18, io mem 0xfbcfb000
ata7.00: ATAPI: HL-DT-STDVD-RAM GH22NP20, 1.03, max UDMA/66
ida_get_new_above free idr ffff88021e8a7b70
ata7.00: configured for UDMA/66
hub 5-0:1.0: USB hub found
hub 5-0:1.0: 3 ports detected
ohci_hcd 0000:00:13.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 6
ida_get_new_above free idr ffff88021e8b9b70
ohci_hcd 0000:00:13.1: irq 18, io mem 0xfbcfc000
hub 6-0:1.0: USB hub found
hub 6-0:1.0: 3 ports detected
ohci_hcd 0000:00:14.5: PCI INT C -> GSI 18 (level, low) -> IRQ 18
ohci_hcd 0000:00:14.5: OHCI Host Controller
ohci_hcd 0000:00:14.5: new USB bus registered, assigned bus number 7
ida_get_new_above free idr ffff88021e8b9b70
ohci_hcd 0000:00:14.5: irq 18, io mem 0xfbcfa000
ata2: SATA link down (SStatus 0 SControl 300)
ata5: SATA link down (SStatus 0 SControl 300)
ata6: SATA link down (SStatus 0 SControl 300)
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata4: SATA link down (SStatus 0 SControl 300)
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ATA-8: OCZ-VERTEX, 1.6, max UDMA/133
ata3.00: 62533296 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
ata3.00: configured for UDMA/133
hub 7-0:1.0: USB hub found
hub 7-0:1.0: 2 ports detected
usbcore: registered new interface driver usblp
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ida_get_new_above free idr ffff88021e8b9b70
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
ata1.00: ATA-8: ST1500DL003-9VT16L, CC32, max UDMA/133
ata1.00: 2930277168 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133
ida_get_new_above free idr ffff88021e9354c8
scsi 0:0:0:0: Direct-Access     ATA      ST1500DL003-9VT1 CC32 PQ: 0 ANSI: 5
ida_get_new_above free idr ffff8802160044c8
ida_get_new_above free idr ffff88021e897b70
sd 0:0:0:0: [sda] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: Attached scsi generic sg0 type 0
ida_get_new_above free idr ffff88021e9354c8
scsi 2:0:0:0: Direct-Access     ATA      OCZ-VERTEX       1.6  PQ: 0 ANSI: 5
ida_get_new_above free idr ffff880216004058
sd 2:0:0:0: [sdb] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB)
sd 2:0:0:0: [sdb] Write Protect is off
sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 2:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
ida_get_new_above free idr ffff88021e935058
scsi 6:0:0:0: CD-ROM            HL-DT-ST DVD-RAM GH22NP20 1.03 PQ: 0 ANSI: 5
 sdb: sdb1 sdb2
 sda: unknown partition table
sd 0:0:0:0: [sda] Attached SCSI disk
sd 2:0:0:0: [sdb] Attached SCSI disk
sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
cdrom: Uniform CD-ROM driver Revision: 3.20
sr 6:0:0:0: Attached scsi CD-ROM sr0
ida_get_new_above free idr ffff88021e8b9da8
sr 6:0:0:0: Attached scsi generic sg2 type 5
Refined TSC clocksource calibration: 3210.827 MHz.
Switching to clocksource tsc
usb 4-1: new full-speed USB device number 2 using ohci_hcd
usb 4-2: new full-speed USB device number 3 using ohci_hcd
ida_get_new_above free idr ffff8802161c34c8
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3938
ida_get_new_above free idr ffff8802161c3b70
ida_get_new_above free idr ffff8802161c3da8
ida_get_new_above free idr ffff880216117058
ida_get_new_above free idr ffff880216117290
ida_get_new_above free idr ffff8802161174c8
ida_get_new_above free idr ffff880216117700
ida_get_new_above free idr ffff880216117938
ida_get_new_above free idr ffff880216117b70
ida_get_new_above free idr ffff88021e8b9da8
usb 4-3: new low-speed USB device number 4 using ohci_hcd
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
i8042: PNP: No PS/2 controller found. Probing ports directly.
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff88021e8b9da8
ida_get_new_above free idr ffff88021e8b9da8
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mousedev: PS/2 mouse device common for all mice
rtc_cmos 00:03: RTC can wake from S4
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff880216131da8
rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
ida_get_new_above free idr ffff880216131da8
rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
i2c /dev entries driver
ida_get_new_above free idr ffff88021626c700
ida_get_new_above free idr ffff88021626c290
EDAC MC: Ver: 2.1.0
AMD64 EDAC driver v3.4.0
EDAC amd64: DRAM ECC enabled.
EDAC amd64: F10h detected (node 0).
EDAC MC: DCT0 chip selects:
EDAC amd64: MC: 0:  1024MB 1:  1024MB
EDAC amd64: MC: 2:  1024MB 3:  1024MB
EDAC amd64: MC: 4:     0MB 5:     0MB
EDAC amd64: MC: 6:     0MB 7:     0MB
EDAC MC: DCT1 chip selects:
EDAC amd64: MC: 0:  1024MB 1:  1024MB
EDAC amd64: MC: 2:  1024MB 3:  1024MB
EDAC amd64: MC: 4:     0MB 5:     0MB
EDAC amd64: MC: 6:     0MB 7:     0MB
EDAC amd64: using x4 syndromes.
EDAC amd64: MCT channel count: 2
EDAC amd64: CS0: Unbuffered DDR3 RAM
EDAC amd64: CS1: Unbuffered DDR3 RAM
EDAC amd64: CS2: Unbuffered DDR3 RAM
EDAC amd64: CS3: Unbuffered DDR3 RAM
EDAC MC0: Giving out device to 'amd64_edac' 'F10h': DEV 0000:00:18.2
EDAC PCI0: Giving out device to module 'amd64_edac' controller 'EDAC PCI controller': DEV '0000:00:18.2' (POLLED)
cpuidle: using governor ladder
cpuidle: using governor menu
input: C-Media USB Headphone Set   as /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.3/input/input2
generic-usb 0003:0D8C:000C.0001: input,hidraw0: USB HID v1.00 Device [C-Media USB Headphone Set  ] on usb-0000:00:12.1-1/input3
logitech-djreceiver 0003:046D:C52B.0004: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:12.1-2/input2
input: Logitech Unifying Device. Wireless PID:101b as /devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.2/0003:046D:C52B.0004/input/input3
logitech-djdevice 0003:046D:C52B.0006: input,hidraw2: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:101b] on usb-0000:00:12.1-2:1
input: HID 046a:0011 as /devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input4
generic-usb 0003:046A:0011.0005: input,hidraw3: USB HID v1.10 Keyboard [HID 046a:0011] on usb-0000:00:12.1-3/input0
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
usbcore: registered new interface driver snd-usb-audio
ALSA device list:
  #0: C-Media USB Headphone Set at usb-0000:00:12.1-1, full speed
Netfilter messages via NETLINK v0.30.
ida_get_new_above free idr ffff8802161c3700
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ctnetlink v0.93: registering with nfnetlink.
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 17
ida_get_new_above free idr ffff8802161c3700
registered taskstats version 1
rtc_cmos 00:03: setting system clock to 2011-12-03 05:53:40 UTC (1322891620)
powernow-k8: Found 1 AMD Phenom(tm) II X4 955 Processor (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : pstate 0 (3200 MHz)
powernow-k8:    1 : pstate 1 (2500 MHz)
powernow-k8:    2 : pstate 2 (2100 MHz)
powernow-k8:    3 : pstate 3 (800 MHz)
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff88021e935058
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802167b44c8
XFS (sdb2): Mounting Filesystem
XFS (sdb2): Ending clean mount
VFS: Mounted root (xfs filesystem) readonly on device 8:18.
ida_get_new_above free idr ffff8802161c3700
devtmpfs: mounted
Freeing unused kernel memory: 424k freed
Write protecting the kernel read-only data: 8192k
Freeing unused kernel memory: 1464k freed
Freeing unused kernel memory: 392k freed
ida_get_new_above free idr ffff8802167b44c8
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
ida_get_new_above free idr ffff8802161c3700
XFS (sda): Mounting Filesystem
XFS (sda): Ending clean mount
ATL1E 0000:02:00.0: irq 40 for MSI/MSI-X
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ida_get_new_above free idr ffff88021626c290
ATL1E 0000:02:00.0: eth0: NIC Link is Up <100 Mbps Full Duplex>
ATL1E 0000:02:00.0: eth0: NIC Link is Up <100 Mbps Full Duplex>
udevd[797]: starting version 171
ida_get_new_above free idr ffff88021e896058
ida_get_new_above free idr ffff88021e8b0700
Adding 2097148k swap on /var/tmp/swap/swapfile.  Priority:-1 extents:2 across:2634672k 
ida_get_new_above free idr ffff88021e8b8058
ida_get_new_above free idr ffff88021e896290
ida_get_new_above free idr ffff88021e8b8290
ida_get_new_above free idr ffff88021e8b84c8
ida_get_new_above free idr ffff88021e8b8700
ida_get_new_above free idr ffff88021e8b8938
ida_get_new_above free idr ffff88021e8b8b70
ida_get_new_above free idr ffff88021e8b8da8
ida_get_new_above free idr ffff88021e8b0290
ida_get_new_above free idr ffff88021e8a7da8
ida_get_new_above free idr ffff88021e8a6058
ida_get_new_above free idr ffff88021e8a6290

-- 
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] rt2x00: Use kcalloc instead of kzalloc to allocate array
From: Gertjan van Wingerde @ 2011-12-03  9:20 UTC (permalink / raw)
  To: Thomas Meyer
  Cc: IvDoorn@gmail.com, helmut.schaa@googlemail.com,
	linville@tuxdriver.com, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
In-Reply-To: <1322600880.1534.325.camel@localhost.localdomain>

On 29 nov. 2011, at 22:08, Thomas Meyer <thomas@m3y3r.de> wrote:

> The advantage of kcalloc is, that will prevent integer overflows which could
> result from the multiplication of number of elements and size and it is also
> a bit nicer to read.
> 
> The semantic patch that makes this change is available
> in https://lkml.org/lkml/2011/11/25/107
> 
> Signed-off-by: Thomas Meyer <thomas@m3y3r.de>

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>

> ---
> 
> diff -u -p a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:36:47.770108588 +0100
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:54:53.495525543 +0100
> @@ -831,11 +831,11 @@ static int rt2x00lib_probe_hw_modes(stru
>    if (spec->supported_rates & SUPPORT_RATE_OFDM)
>        num_rates += 8;
> 
> -    channels = kzalloc(sizeof(*channels) * spec->num_channels, GFP_KERNEL);
> +    channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
>    if (!channels)
>        return -ENOMEM;
> 
> -    rates = kzalloc(sizeof(*rates) * num_rates, GFP_KERNEL);
> +    rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
>    if (!rates)
>        goto exit_free_channels;
> 

^ permalink raw reply

* Re: SYN attack, with FIN flag set
From: Denys Fedoryshchenko @ 2011-12-03  9:07 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: Eric Dumazet, netdev
In-Reply-To: <4ED9E5FA.30204@msgid.tls.msk.ru>

 On Sat, 03 Dec 2011 13:03:54 +0400, Michael Tokarev wrote:
> On 03.12.2011 12:53, Eric Dumazet wrote:
> []
>> TCP stack first tries to lookup a socket, given the tuple found in
>> incoming packet.
>>
>> This is where your machine is hit : we find the listener socket and 
>> lock
>> it.
>>
>> Then, once socket was found and locked, state machine handle various
>> possible states.
>>
>> In your case, you want to bypass the lookup, and eventually bypass 
>> the
>> IP route lookup as well (to keep IP route cache small)
>>
>> iptables -t raw -I PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j 
>> DROP
>
> Maybe it makes some sence to add a basic "sanity" check rule
> before the socket lookup?
>
> The question here is why SYN+FIN results in worse behavour than
> SYN alone - in the default setup, without iptables rules?  As
> far as I understand, "regular" SYN attack is handled just fine,
> but SYN+FIN attack makes the machine to "choke", and it is not
> obvious how to fix it -- naive --syn iptables rule does not help.
>
> The price for the sanity check appears to be small since there's
> already a check for RST.
>
> Just asking, not suggesting anything... ;)
>
> Thanks,
>
> /mjt
 No,no, as i understand it is just threating SYN+FIN as plain SYN.
 I think if it incurr additional expenses (verification), no need maybe 
 to fix it, it is job of iptables.
 But is FIN to listening socket - legitimate? Shouldn't it be dropped?

 ---
 System administrator
 Denys Fedoryshchenko
 Virtual ISP S.A.L.

^ permalink raw reply

* Re: SYN attack, with FIN flag set
From: Michael Tokarev @ 2011-12-03  9:03 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Denys Fedoryshchenko, netdev
In-Reply-To: <1322902401.2762.85.camel@edumazet-laptop>

On 03.12.2011 12:53, Eric Dumazet wrote:
[]
> TCP stack first tries to lookup a socket, given the tuple found in
> incoming packet.
> 
> This is where your machine is hit : we find the listener socket and lock
> it.
> 
> Then, once socket was found and locked, state machine handle various
> possible states.
> 
> In your case, you want to bypass the lookup, and eventually bypass the
> IP route lookup as well (to keep IP route cache small)
> 
> iptables -t raw -I PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

Maybe it makes some sence to add a basic "sanity" check rule
before the socket lookup?

The question here is why SYN+FIN results in worse behavour than
SYN alone - in the default setup, without iptables rules?  As
far as I understand, "regular" SYN attack is handled just fine,
but SYN+FIN attack makes the machine to "choke", and it is not
obvious how to fix it -- naive --syn iptables rule does not help.

The price for the sanity check appears to be small since there's
already a check for RST.

Just asking, not suggesting anything... ;)

Thanks,

/mjt

^ permalink raw reply

* Re: SYN attack, with FIN flag set
From: Eric Dumazet @ 2011-12-03  8:53 UTC (permalink / raw)
  To: Denys Fedoryshchenko; +Cc: netdev
In-Reply-To: <b3ae04aef6b0ce233e8e8978782d1ccc@visp.net.lb>

Le samedi 03 décembre 2011 à 10:18 +0200, Denys Fedoryshchenko a écrit :
> On Sat, 03 Dec 2011 08:55:02 +0100, Eric Dumazet wrote:
> > Le samedi 03 décembre 2011 à 08:27 +0100, Eric Dumazet a écrit :
> >
> >> I believe netfilter tcp conntrack considers SYN|FIN as INVALID
> >>
> >
> > Or if you cannot afford conntracking, just do
> >
> > iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
> 
>  Sure i did,thanks, but i just was curious, why connection with such 
>  flags are threated as SYN.
> 

TCP stack first tries to lookup a socket, given the tuple found in
incoming packet.

This is where your machine is hit : we find the listener socket and lock
it.

Then, once socket was found and locked, state machine handle various
possible states.

In your case, you want to bypass the lookup, and eventually bypass the
IP route lookup as well (to keep IP route cache small)

iptables -t raw -I PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

^ permalink raw reply

* [PATCH] iwlegacy: Use kcalloc instead of kzalloc to allocate array
From: Thomas Meyer @ 2011-11-29 21:08 UTC (permalink / raw)
  To: linville, linux-wireless, netdev, linux-kernel

The advantage of kcalloc is, that will prevent integer overflows which could
result from the multiplication of number of elements and size and it is also
a bit nicer to read.

The semantic patch that makes this change is available
in https://lkml.org/lkml/2011/11/25/107

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
---

diff -u -p a/drivers/net/wireless/iwlegacy/iwl-tx.c b/drivers/net/wireless/iwlegacy/iwl-tx.c
--- a/drivers/net/wireless/iwlegacy/iwl-tx.c 2011-11-13 11:07:38.540345582 +0100
+++ b/drivers/net/wireless/iwlegacy/iwl-tx.c 2011-11-28 19:55:42.036442592 +0100
@@ -297,8 +297,8 @@ static int iwl_legacy_tx_queue_alloc(str
 	/* Driver private data, only for Tx (not command) queues,
 	 * not shared with device. */
 	if (id != priv->cmd_queue) {
-		txq->txb = kzalloc(sizeof(txq->txb[0]) *
-				   TFD_QUEUE_SIZE_MAX, GFP_KERNEL);
+		txq->txb = kcalloc(TFD_QUEUE_SIZE_MAX, sizeof(txq->txb[0]),
+				   GFP_KERNEL);
 		if (!txq->txb) {
 			IWL_ERR(priv, "kmalloc for auxiliary BD "
 				  "structures failed\n");

^ permalink raw reply


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