* Re: [PATCH] igb: Add support for 82576 ET2 Quad Port Server Adapter
From: David Miller @ 2010-03-20 4:11 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, carolyn.wyborny
In-Reply-To: <20100319160747.10902.61121.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 09:07:48 -0700
> From: Carolyn Wyborny <carolyn.wyborny@intel.com>
>
> Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied, thanks.
^ permalink raw reply
* Re: [PATCH v3] ipv4: check rt_genid in dst_check
From: David Miller @ 2010-03-20 4:08 UTC (permalink / raw)
To: timo.teras; +Cc: netdev
In-Reply-To: <1268990420-527-1-git-send-email-timo.teras@iki.fi>
From: Timo Teras <timo.teras@iki.fi>
Date: Fri, 19 Mar 2010 11:20:20 +0200
> Xfrm_dst keeps a reference to ipv4 rtable entries on each
> cached bundle. The only way to renew xfrm_dst when the underlying
> route has changed, is to implement dst_check for this. This is
> what ipv6 side does too.
>
> The problems started after 87c1e12b5eeb7b30b4b41291bef8e0b41fc3dde9
> which fixed a bug causing xfrm_dst to not get reused, until that all
> lookups always generated new xfrm_dst with new route reference
> and path mtu worked. But after the fix, the old routes started
> to get reused even after they were expired causing pmtu to break
> (well it would occationally work if the rtable gc had run recently
> and marked the route obsolete causing dst_check to get called).
>
> Signed-off-by: Timo Teras <timo.teras@iki.fi>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Applied, thanks!
^ permalink raw reply
* Re: [PATCH] ipv4: check rt_genid in dst_check
From: David Miller @ 2010-03-20 4:08 UTC (permalink / raw)
To: herbert; +Cc: timo.teras, netdev
In-Reply-To: <20100319090022.GA23751@gondor.apana.org.au>
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri, 19 Mar 2010 17:00:22 +0800
> On Fri, Mar 19, 2010 at 04:56:00PM +0800, Herbert Xu wrote:
>>
>> I'll send a patch to remove the same check on the IPv6 path.
>
> ipv6: Remove redundant dst NULL check in ip6_dst_check
>
> As the only path leading to ip6_dst_check makes an indirect call
> through dst->ops, dst cannot be NULL in ip6_dst_check.
>
> This patch removes this check in case it misleads people who
> come across this code.
>
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Applied.
^ permalink raw reply
* Re: [PATCH] TCP: check min TTL on received ICMP packets
From: David Miller @ 2010-03-20 4:08 UTC (permalink / raw)
To: shemminger; +Cc: netdev, pekkas
In-Reply-To: <20100318142732.4de0f8d7@nehalam>
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Thu, 18 Mar 2010 14:27:32 -0700
> This adds RFC5082 checks for TTL on received ICMP packets.
> It adds some security against spoofed ICMP packets
> disrupting GTSM protected sessions.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Applied.
> Please apply to 2.6.33 since it basically a "follow correct RFC"
> fix to original GTSM patch.
Queued up for -stable, thanks!
^ permalink raw reply
* Re: [net-2.6 PATCH] ixgbe: Set IXGBE_RSC_CB(skb)->DMA field to zero after unmapping the address
From: David Miller @ 2010-03-20 4:06 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: netdev, gospo, mallikarjuna.chilakala, peter.p.waskiewicz.jr
In-Reply-To: <20100319144132.10528.79305.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 07:41:33 -0700
> From: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
>
> As per Simon Horman's feedback set IXGBE_RSC_CB(skb)->dma to zero
> after unmapping HWRSC DMA address to avoid double freeing.
>
> Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
> Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied.
^ permalink raw reply
* Re: [net-2.6 PATCH] ixgbe: fix for real_num_tx_queues update issue
From: David Miller @ 2010-03-20 4:06 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, vasu.dev
In-Reply-To: <20100319143242.10230.9964.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 07:33:10 -0700
> From: Vasu Dev <vasu.dev@intel.com>
>
> Currently netdev_features_change is called before fcoe tx queues
> setup is done, so this patch moves calling of netdev_features_change
> after tx queues setup is done in ixgbe_init_interrupt_scheme, so
> that real_num_tx_queues is updated correctly on each fcoe enable
> or disable.
>
> This allows additional fcoe queues updated correctly in vlan driver
> for their correct queue selection.
>
> Signed-off-by: Vasu Dev <vasu.dev@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied.
^ permalink raw reply
* Re: [net-2.6 PATCH 3/3] ixgbevf: Message formatting cleanups
From: David Miller @ 2010-03-20 4:06 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, gregory.v.rose
In-Reply-To: <20100319130031.9799.3151.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 06:00:31 -0700
> From: Greg Rose <gregory.v.rose@intel.com>
>
> Clean up some text output formatting.
>
> Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied.
^ permalink raw reply
* Re: [net-2.6 PATCH 2/3] ixgbevf: Shorten up delay timer for watchdog task
From: David Miller @ 2010-03-20 4:06 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, gregory.v.rose
In-Reply-To: <20100319130011.9799.97156.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 06:00:12 -0700
> From: Greg Rose <gregory.v.rose@intel.com>
>
> The recovery from PF reset works better when you shorten up the delay
> until the watchdog task executes.
>
> Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied.
^ permalink raw reply
* Re: [net-2.6 PATCH 1/3] ixgbevf: Fix VF Stats accounting after reset
From: David Miller @ 2010-03-20 4:06 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, gregory.v.rose
In-Reply-To: <20100319125950.9799.70157.stgit@localhost.localdomain>
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Mar 2010 05:59:52 -0700
> From: Greg Rose <gregory.v.rose@intel.com>
>
> The counters in the 82599 Virtual Function are not clear on read. They
> accumulate to the maximum value and then roll over. They are also not
> cleared when the VF executes a soft reset, so it is possible they are
> non-zero when the driver loads and starts. This has all been accounted
> for in the code that keeps the stats up to date but there is one case
> that is not. When the PF driver is reset the counters in the VF are
> all reset to zero. This adds an additional accounting overhead into
> the VF driver when the PF is reset under its feet. This patch adds
> additional counters that are used by the VF driver to accumulate and
> save stats after a PF reset has been detected. Prior to this patch
> displaying the stats in the VF after the PF has reset would show
> bogus data.
>
> Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied.
^ permalink raw reply
* Re: [PATCH net-next-2.6 2/2] can: sja1000: add read/write routines for 8, 16 and 32-bit register access
From: Wolfram Sang @ 2010-03-20 3:56 UTC (permalink / raw)
To: Yegor Yefremov
Cc: socketcan-core-0fE9KPoRgkgATYTw5x5z8w,
netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4BA35704.2060909-ZJVcf1zZPRSebONBosFW4Q@public.gmane.org>
[-- Attachment #1.1: Type: text/plain, Size: 561 bytes --]
On Fri, Mar 19, 2010 at 11:50:44AM +0100, Yegor Yefremov wrote:
> SJA1000: add read/write routines for 8, 16 and 32-bit register access
>
> add routines for 8, 16 and 32-bit access like in
> drivers/i2c/busses/i2c-pca-platform.c
>
> Signed-off-by: Yegor Yefremov <yegorslists-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
Acked-by: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
--
Pengutronix e.K. | Wolfram Sang |
Industrial Linux Solutions | http://www.pengutronix.de/ |
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
[-- Attachment #2: Type: text/plain, Size: 188 bytes --]
_______________________________________________
Socketcan-core mailing list
Socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org
https://lists.berlios.de/mailman/listinfo/socketcan-core
^ permalink raw reply
* Re: [Bugme-new] [Bug 15541] New: POLLIN bit is set when there is OOB data only
From: David Miller @ 2010-03-20 2:42 UTC (permalink / raw)
To: akpm; +Cc: Alexandra.Kossovsky, bugzilla-daemon, bugme-daemon, netdev
In-Reply-To: <20100319155541.731eec28.akpm@linux-foundation.org>
The patch is already in Linus's tree Andrew.
Stephen Hemminger forwarded this bugzilla entry to netdev
an I applied the patch a few days ago.
^ permalink raw reply
* [PATCH] netlink: use the appropriate namespace pid
From: Tom Goff @ 2010-03-20 1:38 UTC (permalink / raw)
To: netdev
This was included in OpenVZ kernels but wasn't integrated upstream.
>From git://git.openvz.org/pub/linux-2.6.24-openvz:
commit 5c69402f18adf7276352e051ece2cf31feefab02
Author: Alexey Dobriyan <adobriyan@openvz.org>
Date: Mon Dec 24 14:37:45 2007 +0300
netlink: fixup ->tgid to work in multiple PID namespaces
Signed-off-by: Tom Goff <thomas.goff@boeing.com>
---
net/netlink/af_netlink.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 320d042..b5ac0cd 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -545,7 +545,7 @@ static int netlink_autobind(struct socket *sock)
struct hlist_head *head;
struct sock *osk;
struct hlist_node *node;
- s32 pid = current->tgid;
+ s32 pid = task_tgid_vnr(current);
int err;
static s32 rover = -4097;
--
1.6.3.3
^ permalink raw reply related
* [PATCH] netdev: don't always reset iflink when registering
From: Tom Goff @ 2010-03-20 1:39 UTC (permalink / raw)
To: netdev
Bound tunnel devices set their iflink to the ifindex of the underlying
network interface when created. It shouldn't be reset by the
registration process.
Signed-off-by: Tom Goff <thomas.goff@boeing.com>
---
net/core/dev.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 59d4394..c00d625 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5067,7 +5067,8 @@ int register_netdevice(struct net_device *dev)
netdev_set_addr_lockdep_class(dev);
netdev_init_queue_locks(dev);
- dev->iflink = -1;
+ if (dev->iflink <= 0)
+ dev->iflink = -1;
/* Init, if this function is available */
if (dev->netdev_ops->ndo_init) {
--
1.6.3.3
^ permalink raw reply related
* [PATCH] net_sched: make traffic control network namespace aware
From: Tom Goff @ 2010-03-20 1:40 UTC (permalink / raw)
To: netdev
Mostly minor changes to add a net argument to various functions and
remove initial network namespace checks.
Make /proc/net/psched per network namespace.
Signed-off-by: Tom Goff <thomas.goff@boeing.com>
---
net/sched/act_api.c | 45 ++++++++++----------
net/sched/cls_api.c | 30 ++++++--------
net/sched/sch_api.c | 112 ++++++++++++++++++++++++++++++++------------------
3 files changed, 107 insertions(+), 80 deletions(-)
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 64f5e32..7a558da 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -667,7 +667,8 @@ nlmsg_failure:
}
static int
-act_get_notify(u32 pid, struct nlmsghdr *n, struct tc_action *a, int event)
+act_get_notify(struct net *net, u32 pid, struct nlmsghdr *n,
+ struct tc_action *a, int event)
{
struct sk_buff *skb;
@@ -679,7 +680,7 @@ act_get_notify(u32 pid, struct nlmsghdr *n, struct tc_action *a, int event)
return -EINVAL;
}
- return rtnl_unicast(skb, &init_net, pid);
+ return rtnl_unicast(skb, net, pid);
}
static struct tc_action *
@@ -749,7 +750,8 @@ static struct tc_action *create_a(int i)
return act;
}
-static int tca_action_flush(struct nlattr *nla, struct nlmsghdr *n, u32 pid)
+static int tca_action_flush(struct net *net, struct nlattr *nla,
+ struct nlmsghdr *n, u32 pid)
{
struct sk_buff *skb;
unsigned char *b;
@@ -808,7 +810,7 @@ static int tca_action_flush(struct nlattr *nla, struct nlmsghdr *n, u32 pid)
nlh->nlmsg_flags |= NLM_F_ROOT;
module_put(a->ops->owner);
kfree(a);
- err = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
+ err = rtnetlink_send(skb, net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
if (err > 0)
return 0;
@@ -825,7 +827,8 @@ noflush_out:
}
static int
-tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
+tca_action_gd(struct net *net, struct nlattr *nla, struct nlmsghdr *n,
+ u32 pid, int event)
{
int i, ret;
struct nlattr *tb[TCA_ACT_MAX_PRIO+1];
@@ -837,7 +840,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
if (event == RTM_DELACTION && n->nlmsg_flags&NLM_F_ROOT) {
if (tb[1] != NULL)
- return tca_action_flush(tb[1], n, pid);
+ return tca_action_flush(net, tb[1], n, pid);
else
return -EINVAL;
}
@@ -858,7 +861,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
}
if (event == RTM_GETACTION)
- ret = act_get_notify(pid, n, head, event);
+ ret = act_get_notify(net, pid, n, head, event);
else { /* delete */
struct sk_buff *skb;
@@ -877,7 +880,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
/* now do the delete */
tcf_action_destroy(head, 0);
- ret = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC,
+ ret = rtnetlink_send(skb, net, pid, RTNLGRP_TC,
n->nlmsg_flags&NLM_F_ECHO);
if (ret > 0)
return 0;
@@ -888,8 +891,8 @@ err:
return ret;
}
-static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event,
- u16 flags)
+static int tcf_add_notify(struct net *net, struct tc_action *a,
+ u32 pid, u32 seq, int event, u16 flags)
{
struct tcamsg *t;
struct nlmsghdr *nlh;
@@ -922,7 +925,7 @@ static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event,
nlh->nlmsg_len = skb_tail_pointer(skb) - b;
NETLINK_CB(skb).dst_group = RTNLGRP_TC;
- err = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, flags&NLM_F_ECHO);
+ err = rtnetlink_send(skb, net, pid, RTNLGRP_TC, flags&NLM_F_ECHO);
if (err > 0)
err = 0;
return err;
@@ -935,7 +938,8 @@ nlmsg_failure:
static int
-tcf_action_add(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int ovr)
+tcf_action_add(struct net *net, struct nlattr *nla, struct nlmsghdr *n,
+ u32 pid, int ovr)
{
int ret = 0;
struct tc_action *act;
@@ -953,7 +957,7 @@ tcf_action_add(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int ovr)
/* dump then free all the actions after update; inserted policy
* stays intact
* */
- ret = tcf_add_notify(act, pid, seq, RTM_NEWACTION, n->nlmsg_flags);
+ ret = tcf_add_notify(net, act, pid, seq, RTM_NEWACTION, n->nlmsg_flags);
for (a = act; a; a = act) {
act = a->next;
kfree(a);
@@ -969,9 +973,6 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
u32 pid = skb ? NETLINK_CB(skb).pid : 0;
int ret = 0, ovr = 0;
- if (!net_eq(net, &init_net))
- return -EINVAL;
-
ret = nlmsg_parse(n, sizeof(struct tcamsg), tca, TCA_ACT_MAX, NULL);
if (ret < 0)
return ret;
@@ -994,15 +995,17 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
if (n->nlmsg_flags&NLM_F_REPLACE)
ovr = 1;
replay:
- ret = tcf_action_add(tca[TCA_ACT_TAB], n, pid, ovr);
+ ret = tcf_action_add(net, tca[TCA_ACT_TAB], n, pid, ovr);
if (ret == -EAGAIN)
goto replay;
break;
case RTM_DELACTION:
- ret = tca_action_gd(tca[TCA_ACT_TAB], n, pid, RTM_DELACTION);
+ ret = tca_action_gd(net, tca[TCA_ACT_TAB], n,
+ pid, RTM_DELACTION);
break;
case RTM_GETACTION:
- ret = tca_action_gd(tca[TCA_ACT_TAB], n, pid, RTM_GETACTION);
+ ret = tca_action_gd(net, tca[TCA_ACT_TAB], n,
+ pid, RTM_GETACTION);
break;
default:
BUG();
@@ -1042,7 +1045,6 @@ find_dump_kind(const struct nlmsghdr *n)
static int
tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb)
{
- struct net *net = sock_net(skb->sk);
struct nlmsghdr *nlh;
unsigned char *b = skb_tail_pointer(skb);
struct nlattr *nest;
@@ -1052,9 +1054,6 @@ tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb)
struct tcamsg *t = (struct tcamsg *) NLMSG_DATA(cb->nlh);
struct nlattr *kind = find_dump_kind(cb->nlh);
- if (!net_eq(net, &init_net))
- return 0;
-
if (kind == NULL) {
printk("tc_dump_action: action bad kind\n");
return 0;
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 3725d8f..4a795d9 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -98,8 +98,9 @@ out:
}
EXPORT_SYMBOL(unregister_tcf_proto_ops);
-static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n,
- struct tcf_proto *tp, unsigned long fh, int event);
+static int tfilter_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, struct tcf_proto *tp,
+ unsigned long fh, int event);
/* Select new prio value from the range, managed by kernel. */
@@ -137,9 +138,6 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
int err;
int tp_created = 0;
- if (!net_eq(net, &init_net))
- return -EINVAL;
-
replay:
t = NLMSG_DATA(n);
protocol = TC_H_MIN(t->tcm_info);
@@ -158,7 +156,7 @@ replay:
/* Find head of filter chain. */
/* Find link */
- dev = __dev_get_by_index(&init_net, t->tcm_ifindex);
+ dev = __dev_get_by_index(net, t->tcm_ifindex);
if (dev == NULL)
return -ENODEV;
@@ -282,7 +280,7 @@ replay:
*back = tp->next;
spin_unlock_bh(root_lock);
- tfilter_notify(skb, n, tp, fh, RTM_DELTFILTER);
+ tfilter_notify(net, skb, n, tp, fh, RTM_DELTFILTER);
tcf_destroy(tp);
err = 0;
goto errout;
@@ -305,10 +303,10 @@ replay:
case RTM_DELTFILTER:
err = tp->ops->delete(tp, fh);
if (err == 0)
- tfilter_notify(skb, n, tp, fh, RTM_DELTFILTER);
+ tfilter_notify(net, skb, n, tp, fh, RTM_DELTFILTER);
goto errout;
case RTM_GETTFILTER:
- err = tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER);
+ err = tfilter_notify(net, skb, n, tp, fh, RTM_NEWTFILTER);
goto errout;
default:
err = -EINVAL;
@@ -324,7 +322,7 @@ replay:
*back = tp;
spin_unlock_bh(root_lock);
}
- tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER);
+ tfilter_notify(net, skb, n, tp, fh, RTM_NEWTFILTER);
} else {
if (tp_created)
tcf_destroy(tp);
@@ -370,8 +368,9 @@ nla_put_failure:
return -1;
}
-static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n,
- struct tcf_proto *tp, unsigned long fh, int event)
+static int tfilter_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, struct tcf_proto *tp,
+ unsigned long fh, int event)
{
struct sk_buff *skb;
u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
@@ -385,7 +384,7 @@ static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n,
return -EINVAL;
}
- return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC,
+ return rtnetlink_send(skb, net, pid, RTNLGRP_TC,
n->nlmsg_flags & NLM_F_ECHO);
}
@@ -418,12 +417,9 @@ static int tc_dump_tfilter(struct sk_buff *skb, struct netlink_callback *cb)
const struct Qdisc_class_ops *cops;
struct tcf_dump_args arg;
- if (!net_eq(net, &init_net))
- return 0;
-
if (cb->nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*tcm)))
return skb->len;
- if ((dev = __dev_get_by_index(&init_net, tcm->tcm_ifindex)) == NULL)
+ if ((dev = __dev_get_by_index(net, tcm->tcm_ifindex)) == NULL)
return skb->len;
if (!tcm->tcm_parent)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 6cd4910..6d6fe16 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -34,10 +34,12 @@
#include <net/netlink.h>
#include <net/pkt_sched.h>
-static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n, u32 clid,
+static int qdisc_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, u32 clid,
struct Qdisc *old, struct Qdisc *new);
-static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n,
- struct Qdisc *q, unsigned long cl, int event);
+static int tclass_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, struct Qdisc *q,
+ unsigned long cl, int event);
/*
@@ -638,11 +640,12 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
}
EXPORT_SYMBOL(qdisc_tree_decrease_qlen);
-static void notify_and_destroy(struct sk_buff *skb, struct nlmsghdr *n, u32 clid,
+static void notify_and_destroy(struct net *net, struct sk_buff *skb,
+ struct nlmsghdr *n, u32 clid,
struct Qdisc *old, struct Qdisc *new)
{
if (new || old)
- qdisc_notify(skb, n, clid, old, new);
+ qdisc_notify(net, skb, n, clid, old, new);
if (old)
qdisc_destroy(old);
@@ -662,6 +665,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
struct Qdisc *new, struct Qdisc *old)
{
struct Qdisc *q = old;
+ struct net *net = dev_net(dev);
int err = 0;
if (parent == NULL) {
@@ -698,12 +702,13 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
}
if (!ingress) {
- notify_and_destroy(skb, n, classid, dev->qdisc, new);
+ notify_and_destroy(net, skb, n, classid,
+ dev->qdisc, new);
if (new && !new->ops->attach)
atomic_inc(&new->refcnt);
dev->qdisc = new ? : &noop_qdisc;
} else {
- notify_and_destroy(skb, n, classid, old, new);
+ notify_and_destroy(net, skb, n, classid, old, new);
}
if (dev->flags & IFF_UP)
@@ -721,7 +726,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
err = -ENOENT;
}
if (!err)
- notify_and_destroy(skb, n, classid, old, new);
+ notify_and_destroy(net, skb, n, classid, old, new);
}
return err;
}
@@ -947,10 +952,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
struct Qdisc *p = NULL;
int err;
- if (!net_eq(net, &init_net))
- return -EINVAL;
-
- if ((dev = __dev_get_by_index(&init_net, tcm->tcm_ifindex)) == NULL)
+ if ((dev = __dev_get_by_index(net, tcm->tcm_ifindex)) == NULL)
return -ENODEV;
err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
@@ -990,7 +992,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
if ((err = qdisc_graft(dev, p, skb, n, clid, NULL, q)) != 0)
return err;
} else {
- qdisc_notify(skb, n, clid, NULL, q);
+ qdisc_notify(net, skb, n, clid, NULL, q);
}
return 0;
}
@@ -1009,16 +1011,13 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
struct Qdisc *q, *p;
int err;
- if (!net_eq(net, &init_net))
- return -EINVAL;
-
replay:
/* Reinit, just in case something touches this. */
tcm = NLMSG_DATA(n);
clid = tcm->tcm_parent;
q = p = NULL;
- if ((dev = __dev_get_by_index(&init_net, tcm->tcm_ifindex)) == NULL)
+ if ((dev = __dev_get_by_index(net, tcm->tcm_ifindex)) == NULL)
return -ENODEV;
err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
@@ -1105,7 +1104,7 @@ replay:
return -EINVAL;
err = qdisc_change(q, tca);
if (err == 0)
- qdisc_notify(skb, n, clid, NULL, q);
+ qdisc_notify(net, skb, n, clid, NULL, q);
return err;
create_n_graft:
@@ -1195,8 +1194,9 @@ nla_put_failure:
return -1;
}
-static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n,
- u32 clid, struct Qdisc *old, struct Qdisc *new)
+static int qdisc_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, u32 clid,
+ struct Qdisc *old, struct Qdisc *new)
{
struct sk_buff *skb;
u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
@@ -1215,7 +1215,7 @@ static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n,
}
if (skb->len)
- return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
+ return rtnetlink_send(skb, net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
err_out:
kfree_skb(skb);
@@ -1274,15 +1274,12 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
int s_idx, s_q_idx;
struct net_device *dev;
- if (!net_eq(net, &init_net))
- return 0;
-
s_idx = cb->args[0];
s_q_idx = q_idx = cb->args[1];
rcu_read_lock();
idx = 0;
- for_each_netdev_rcu(&init_net, dev) {
+ for_each_netdev_rcu(net, dev) {
struct netdev_queue *dev_queue;
if (idx < s_idx)
@@ -1334,10 +1331,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
u32 qid = TC_H_MAJ(clid);
int err;
- if (!net_eq(net, &init_net))
- return -EINVAL;
-
- if ((dev = __dev_get_by_index(&init_net, tcm->tcm_ifindex)) == NULL)
+ if ((dev = __dev_get_by_index(net, tcm->tcm_ifindex)) == NULL)
return -ENODEV;
err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
@@ -1418,10 +1412,10 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
if (cops->delete)
err = cops->delete(q, cl);
if (err == 0)
- tclass_notify(skb, n, q, cl, RTM_DELTCLASS);
+ tclass_notify(net, skb, n, q, cl, RTM_DELTCLASS);
goto out;
case RTM_GETTCLASS:
- err = tclass_notify(skb, n, q, cl, RTM_NEWTCLASS);
+ err = tclass_notify(net, skb, n, q, cl, RTM_NEWTCLASS);
goto out;
default:
err = -EINVAL;
@@ -1434,7 +1428,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
if (cops->change)
err = cops->change(q, clid, pid, tca, &new_cl);
if (err == 0)
- tclass_notify(skb, n, q, new_cl, RTM_NEWTCLASS);
+ tclass_notify(net, skb, n, q, new_cl, RTM_NEWTCLASS);
out:
if (cl)
@@ -1486,8 +1480,9 @@ nla_put_failure:
return -1;
}
-static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n,
- struct Qdisc *q, unsigned long cl, int event)
+static int tclass_notify(struct net *net, struct sk_buff *oskb,
+ struct nlmsghdr *n, struct Qdisc *q,
+ unsigned long cl, int event)
{
struct sk_buff *skb;
u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
@@ -1501,7 +1496,7 @@ static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n,
return -EINVAL;
}
- return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
+ return rtnetlink_send(skb, net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO);
}
struct qdisc_dump_args
@@ -1576,12 +1571,9 @@ static int tc_dump_tclass(struct sk_buff *skb, struct netlink_callback *cb)
struct net_device *dev;
int t, s_t;
- if (!net_eq(net, &init_net))
- return 0;
-
if (cb->nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*tcm)))
return 0;
- if ((dev = dev_get_by_index(&init_net, tcm->tcm_ifindex)) == NULL)
+ if ((dev = dev_get_by_index(net, tcm->tcm_ifindex)) == NULL)
return 0;
s_t = cb->args[0];
@@ -1701,15 +1693,55 @@ static const struct file_operations psched_fops = {
.llseek = seq_lseek,
.release = single_release,
};
+
+static int __net_init psched_net_init(struct net *net)
+{
+ struct proc_dir_entry *e;
+
+ e = proc_net_fops_create(net, "psched", 0, &psched_fops);
+ if (e == NULL)
+ return -ENOMEM;
+
+ return 0;
+}
+
+static void __net_exit psched_net_exit(struct net *net)
+{
+ proc_net_remove(net, "psched");
+
+ return;
+}
+#else
+static int __net_init psched_net_init(struct net *net)
+{
+ return 0;
+}
+
+static void __net_exit psched_net_exit(struct net *net)
+{
+}
#endif
+static struct pernet_operations psched_net_ops = {
+ .init = psched_net_init,
+ .exit = psched_net_exit,
+};
+
static int __init pktsched_init(void)
{
+ int err;
+
+ err = register_pernet_subsys(&psched_net_ops);
+ if (err) {
+ printk(KERN_ERR "pktsched_init: "
+ "cannot initialize per netns operations\n");
+ return err;
+ }
+
register_qdisc(&pfifo_qdisc_ops);
register_qdisc(&bfifo_qdisc_ops);
register_qdisc(&pfifo_head_drop_qdisc_ops);
register_qdisc(&mq_qdisc_ops);
- proc_net_fops_create(&init_net, "psched", 0, &psched_fops);
rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL);
rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL);
--
1.6.3.3
^ permalink raw reply related
* Re: [PATCH] Cosmetic:Partially remove deprecated __initcall() and change to
From: Justin P. Mattock @ 2010-03-19 23:24 UTC (permalink / raw)
To: Randy Dunlap
Cc: trivial, linux-arm-kernel, linux-audit, uclinux-dist-devel,
linux-cris-kernel, linux-ia64, linux-mips, linux-parisc,
linux-s390, selinux, sparclinux, x86, netdev, linux-kernel
In-Reply-To: <4BA40115.2000509@xenotime.net>
On 03/19/2010 03:56 PM, Randy Dunlap wrote:
> On 03/19/10 12:51, Justin P. Mattock wrote:
>> After doing some things on a small issue,
>> I noticed through web surfing, that there were patches
>> submitted pertaining that __initcall is deprecated,
>> and device_initcall should be used.
>
> Where was this discussion? Do you have any pointers to it?
>
The best info on this is scripts/checkpatch.pl
line #2664
when I found this I just did a quick search of __initcall
(which gives hits here and there)
https://patchwork.kernel.org/patch/23344/
(also found others at around 2008 or so)
> I don't see any mention of __initcall being deprecated in
> Linus' mainline git tree, or in linux-next, or in mmotm.
> Where are those patches?
>
I don't know(I'm out of the social pipeline when it comes to Linux news,
and updates)..
like in the explanation part of the patch
I was looking into something else, then ran into this,
so as a break(from what I was originally doing)
decided to do this and submit.
>
>> So as a change of subject(since what I was looking at
>> was frustrating me),I decided to grep the whole tree
>> and make the change(partially).
>>
>> Currently I'm running this patch on my system, kernel compiles
>> without any errors or warnings.(thought there would be a speed increase
>> but didn't see much(if any)).
>
> No, __initcall(x) is just a shorthand version of typing
> device_initcall(x). They do the same thing.
>
yep, that's what I found out as well(reason for the cosmetic
in the subject line).
>> Biggest problem I have though is testing this on other hardware types
>> (I only have a macbook,and an iMac).
>> So please if you have the access to other arch/hardware types please
>> test.
>>
>> Now what I mean by partially is the __initcall function is still
>> there, so(if any) userspace apps/libs depend on this it's there
>> so they dont break and/or any other subsystem, that needs time
>> to make the changes.
>
> The only thing that might be affected is building out-of-tree drivers,
> but those are easy to fix.
>
alright..main concern is making sure things don't break in the
kernel(even though things do).
I can have a go at the header files, submit
then if it's something people agree they want to do, then they
can go from there(if not it's fine as well).
>> Note:
>> the remaining files that still have __initcall in them are:
>> (according to grep)
>>
>> arch/um/include/shared/init.h
>> include/linux/init.h
>> scripts/checkpatch.pl
>>
>> either I or somebody else, can change this(although a bit
>> concerned about breaking things).
>>
>> Signed-off-by: Justin P. Mattock<justinmattock@gmail.com>
>> ---
>> Documentation/DocBook/kernel-hacking.tmpl | 4 ++--
>> Documentation/cpu-freq/cpu-drivers.txt | 2 +-
>> Documentation/kbuild/makefiles.txt | 2 +-
>> arch/arm/mach-at91/leds.c | 2 +-
>> arch/arm/mach-clps711x/p720t.c | 2 +-
>> arch/arm/mach-ebsa110/leds.c | 2 +-
>> arch/arm/mach-footbridge/cats-hw.c | 2 +-
>> arch/arm/mach-footbridge/ebsa285-leds.c | 2 +-
>> arch/arm/mach-footbridge/netwinder-hw.c | 2 +-
>> arch/arm/mach-footbridge/netwinder-leds.c | 2 +-
>> arch/arm/mach-ks8695/leds.c | 2 +-
>> arch/arm/mach-omap1/leds.c | 2 +-
>> arch/arm/mach-omap1/pm.c | 2 +-
>> arch/arm/mach-orion5x/db88f5281-setup.c | 2 +-
>> arch/arm/mach-orion5x/rd88f5182-setup.c | 2 +-
>> arch/arm/mach-pxa/generic.c | 2 +-
>> arch/arm/mach-pxa/pxa25x.c | 2 +-
>> arch/arm/mach-shark/leds.c | 2 +-
>> arch/blackfin/kernel/bfin_gpio.c | 2 +-
>> arch/blackfin/mach-common/pm.c | 2 +-
>> arch/cris/arch-v10/kernel/debugport.c | 2 +-
>> arch/cris/arch-v10/kernel/fasttimer.c | 2 +-
>> arch/cris/arch-v10/mm/init.c | 2 +-
>> arch/cris/arch-v32/kernel/fasttimer.c | 2 +-
>> arch/cris/arch-v32/kernel/pinmux.c | 2 +-
>> arch/cris/arch-v32/kernel/signal.c | 2 +-
>> arch/cris/arch-v32/mach-a3/io.c | 2 +-
>> arch/cris/arch-v32/mach-a3/pinmux.c | 2 +-
>> arch/cris/arch-v32/mach-fs/io.c | 2 +-
>> arch/cris/arch-v32/mach-fs/pinmux.c | 2 +-
>> arch/cris/kernel/profile.c | 2 +-
>> arch/cris/kernel/time.c | 2 +-
>> arch/cris/kernel/traps.c | 2 +-
>> arch/frv/kernel/gdb-stub.c | 2 +-
>> arch/frv/kernel/pm-mb93093.c | 2 +-
>> arch/frv/kernel/pm.c | 2 +-
>> arch/frv/kernel/sysctl.c | 2 +-
>> arch/h8300/kernel/gpio.c | 2 +-
>> arch/ia64/hp/sim/simeth.c | 2 +-
>> arch/ia64/hp/sim/simserial.c | 2 +-
>> arch/ia64/kernel/audit.c | 2 +-
>> arch/ia64/kernel/crash.c | 2 +-
>> arch/ia64/kernel/cyclone.c | 2 +-
>> arch/ia64/kernel/perfmon.c | 2 +-
>> arch/ia64/kernel/setup.c | 2 +-
>> arch/ia64/kernel/uncached.c | 2 +-
>> arch/ia64/kernel/unwind.c | 2 +-
>> arch/ia64/mm/init.c | 2 +-
>> arch/mips/Makefile | 2 +-
>> arch/mips/kernel/unaligned.c | 2 +-
>> arch/mips/lasat/sysctl.c | 2 +-
>> arch/mips/math-emu/cp1emu.c | 2 +-
>> arch/mips/nxp/pnx8550/common/proc.c | 2 +-
>> arch/mips/sibyte/sb1250/bus_watcher.c | 2 +-
>> arch/mn10300/kernel/gdb-stub.c | 2 +-
>> arch/mn10300/kernel/mn10300-serial.c | 2 +-
>> arch/mn10300/kernel/profile.c | 2 +-
>> arch/parisc/kernel/pci-dma.c | 2 +-
>> arch/parisc/kernel/pdc_chassis.c | 2 +-
>> arch/powerpc/kernel/audit.c | 2 +-
>> arch/powerpc/kernel/idle.c | 2 +-
>> arch/powerpc/kernel/irq.c | 2 +-
>> arch/powerpc/kernel/proc_powerpc.c | 2 +-
>> arch/powerpc/kernel/prom.c | 4 ++--
>> arch/powerpc/kernel/rtas-proc.c | 2 +-
>> arch/powerpc/kernel/rtasd.c | 2 +-
>> arch/powerpc/kernel/sysfs.c | 2 +-
>> arch/powerpc/kernel/tau_6xx.c | 2 +-
>> arch/powerpc/kernel/vio.c | 2 +-
>> arch/powerpc/platforms/iseries/lpevents.c | 2 +-
>> arch/powerpc/platforms/iseries/mf.c | 2 +-
>> arch/powerpc/platforms/iseries/proc.c | 2 +-
>> arch/powerpc/platforms/iseries/viopath.c | 2 +-
>> arch/powerpc/platforms/pseries/eeh.c | 2 +-
>> arch/powerpc/platforms/pseries/hvCall_inst.c | 2 +-
>> arch/powerpc/platforms/pseries/power.c | 2 +-
>> arch/powerpc/platforms/pseries/ras.c | 2 +-
>> arch/powerpc/platforms/pseries/reconfig.c | 2 +-
>> arch/powerpc/xmon/xmon.c | 2 +-
>> arch/s390/appldata/appldata_base.c | 2 +-
>> arch/s390/kernel/audit.c | 2 +-
>> arch/s390/kernel/compat_exec_domain.c | 2 +-
>> arch/s390/kernel/ipl.c | 2 +-
>> arch/s390/kernel/topology.c | 2 +-
>> arch/sh/boards/board-edosk7760.c | 2 +-
>> arch/sh/boards/board-sh7785lcr.c | 2 +-
>> arch/sh/boards/mach-cayman/setup.c | 2 +-
>> arch/sh/boards/mach-landisk/setup.c | 2 +-
>> arch/sh/boards/mach-r2d/setup.c | 2 +-
>> arch/sh/boards/mach-sdk7786/setup.c | 2 +-
>> arch/sh/boards/mach-se/7206/setup.c | 2 +-
>> arch/sh/boards/mach-se/7751/setup.c | 2 +-
>> arch/sh/boards/mach-sh03/setup.c | 2 +-
>> arch/sh/kernel/traps_64.c | 2 +-
>> arch/sparc/kernel/apc.c | 2 +-
>> arch/sparc/kernel/audit.c | 2 +-
>> arch/sparc/kernel/mdesc.c | 2 +-
>> arch/sparc/kernel/pmc.c | 2 +-
>> arch/um/drivers/mconsole_kern.c | 8 ++++----
>> arch/um/drivers/net_kern.c | 2 +-
>> arch/um/drivers/stderr_console.c | 2 +-
>> arch/um/drivers/ubd_kern.c | 4 ++--
>> arch/um/kernel/exitcode.c | 2 +-
>> arch/um/kernel/physmem.c | 2 +-
>> arch/um/os-Linux/aio.c | 4 ++--
>> arch/um/os-Linux/skas/mem.c | 2 +-
>> arch/um/os-Linux/skas/process.c | 2 +-
>> arch/um/os-Linux/umid.c | 2 +-
>> arch/um/sys-i386/tls.c | 2 +-
>> arch/x86/kernel/audit_64.c | 2 +-
>> arch/x86/kernel/tlb_uv.c | 4 ++--
>> arch/x86/kernel/vsyscall_64.c | 4 ++--
>> arch/x86/mm/dump_pagetables.c | 2 +-
>> arch/x86/vdso/vdso32-setup.c | 4 ++--
>> arch/x86/vdso/vma.c | 2 +-
>> arch/xtensa/platforms/iss/console.c | 2 +-
>> drivers/net/arm/am79c961a.c | 2 +-
>> drivers/net/hamradio/baycom_epp.c | 1 +
>> drivers/net/hamradio/baycom_par.c | 1 +
>> drivers/net/hamradio/baycom_ser_fdx.c | 1 +
>> drivers/net/hamradio/baycom_ser_hdx.c | 1 +
>> drivers/s390/char/sclp_cmd.c | 2 +-
>> drivers/s390/char/sclp_config.c | 2 +-
>> drivers/s390/char/sclp_cpi_sys.c | 2 +-
>> drivers/s390/char/sclp_vt220.c | 2 +-
>> drivers/s390/cio/blacklist.c | 2 +-
>> drivers/staging/rtl8192u/ieee80211/api.c | 2 +-
>> fs/aio.c | 2 +-
>> fs/compat_ioctl.c | 2 +-
>> ipc/ipc_sysctl.c | 2 +-
>> ipc/mqueue.c | 2 +-
>> ipc/util.c | 2 +-
>> kernel/audit.c | 2 +-
>> kernel/audit_tree.c | 2 +-
>> kernel/dma.c | 2 +-
>> kernel/futex.c | 2 +-
>> kernel/lockdep_proc.c | 2 +-
>> kernel/pid_namespace.c | 2 +-
>> kernel/posix-cpu-timers.c | 2 +-
>> kernel/posix-timers.c | 2 +-
>> kernel/resource.c | 2 +-
>> kernel/sched_debug.c | 2 +-
>> kernel/time/timer_list.c | 2 +-
>> kernel/time/timer_stats.c | 2 +-
>> kernel/tracepoint.c | 2 +-
>> kernel/utsname_sysctl.c | 2 +-
>> lib/audit.c | 2 +-
>> lib/debugobjects.c | 2 +-
>> mm/bounce.c | 2 +-
>> mm/memory.c | 2 +-
>> mm/mm_init.c | 2 +-
>> mm/slab.c | 2 +-
>> mm/slub.c | 2 +-
>> mm/swapfile.c | 2 +-
>> net/ipv4/syncookies.c | 2 +-
>> net/ipv4/sysctl_net_ipv4.c | 2 +-
>> security/keys/proc.c | 2 +-
>> security/selinux/hooks.c | 2 +-
>> security/selinux/netif.c | 2 +-
>> security/selinux/netlink.c | 2 +-
>> security/selinux/netnode.c | 2 +-
>> security/selinux/netport.c | 2 +-
>> security/selinux/selinuxfs.c | 2 +-
>> security/selinux/ss/services.c | 2 +-
>> security/smack/smackfs.c | 2 +-
>> sound/last.c | 2 +-
>> 166 files changed, 176 insertions(+), 172 deletions(-)
>
>
^ permalink raw reply
* Re: [Bugme-new] [Bug 15541] New: POLLIN bit is set when there is OOB data only
From: Andrew Morton @ 2010-03-19 22:55 UTC (permalink / raw)
To: Alexandra.Kossovsky; +Cc: bugzilla-daemon, bugme-daemon, netdev
In-Reply-To: <bug-15541-10286@http.bugzilla.kernel.org/>
(switched to email. Please respond via emailed reply-to-all, not via the
bugzilla web interface).
On Mon, 15 Mar 2010 16:19:43 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=15541
>
> Summary: POLLIN bit is set when there is OOB data only
> Product: Networking
> Version: 2.5
> Kernel Version: 2.6.28, 2.6.32, 2.6.33
> Platform: All
> OS/Version: Linux
> Tree: Mainline
> Status: NEW
> Severity: normal
> Priority: P1
> Component: IPV4
> AssignedTo: shemminger@linux-foundation.org
> ReportedBy: Alexandra.Kossovsky@oktetlabs.ru
> CC: davem@davemloft.net
> Regression: Yes
>
>
> Starting from 2.6.28, Linux kernel has incorrect behaviour when poll() is
> called on TCP socket with out-of-band byte received.
>
> When TCP socket has OOB byte available (and no normal data), old Linux,
> Solaris, FreeBSD and other systems return POLLPRI bit without POLLRD. Starting
> from 2.6.28, Linux returns POLLRD | POLLPRI | POLLRDNORM.
>
> The broken commt is
> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.28.y.git;a=commitdiff;h=c7004482e8dcb7c3c72666395cfa98a216a4fb70
> .
> Following 1-line patch fixes the problem:
> --- a/net/ipv4/tcp.c 2010-03-15 19:13:45.000000000 +0300
> +++ b/net/ipv4/tcp.c 2010-03-15 19:13:21.000000000 +0300
> @@ -428,7 +428,7 @@
> if (tp->urg_seq == tp->copied_seq &&
> !sock_flag(sk, SOCK_URGINLINE) &&
> tp->urg_data)
> - target--;
> + target++;
>
> /* Potential race condition. If read of tp below will
> * escape above sk->sk_state, we can be illegally awaken
>
Thanks.
(Please don't send patches via bugzilla - it causes lots of problems with
our usual patch management and review processes.
Please send this patch via email as per Documentation/SubmittingPatches.
Suitable recipients may be found via scripts/get_maintainer.pl)
^ permalink raw reply
* Re: [PATCH] Cosmetic:Partially remove deprecated __initcall() and change to
From: Randy Dunlap @ 2010-03-19 22:56 UTC (permalink / raw)
To: Justin P. Mattock
Cc: trivial, linux-arm-kernel, linux-audit, uclinux-dist-devel,
linux-cris-kernel, linux-ia64, linux-mips, linux-parisc,
linux-s390, selinux, sparclinux, x86, netdev, linux-kernel
In-Reply-To: <1269028291-9103-1-git-send-email-justinmattock@gmail.com>
On 03/19/10 12:51, Justin P. Mattock wrote:
> After doing some things on a small issue,
> I noticed through web surfing, that there were patches
> submitted pertaining that __initcall is deprecated,
> and device_initcall should be used.
Where was this discussion? Do you have any pointers to it?
I don't see any mention of __initcall being deprecated in
Linus' mainline git tree, or in linux-next, or in mmotm.
Where are those patches?
> So as a change of subject(since what I was looking at
> was frustrating me),I decided to grep the whole tree
> and make the change(partially).
>
> Currently I'm running this patch on my system, kernel compiles
> without any errors or warnings.(thought there would be a speed increase
> but didn't see much(if any)).
No, __initcall(x) is just a shorthand version of typing
device_initcall(x). They do the same thing.
> Biggest problem I have though is testing this on other hardware types
> (I only have a macbook,and an iMac).
> So please if you have the access to other arch/hardware types please
> test.
>
> Now what I mean by partially is the __initcall function is still
> there, so(if any) userspace apps/libs depend on this it's there
> so they dont break and/or any other subsystem, that needs time
> to make the changes.
The only thing that might be affected is building out-of-tree drivers,
but those are easy to fix.
> Note:
> the remaining files that still have __initcall in them are:
> (according to grep)
>
> arch/um/include/shared/init.h
> include/linux/init.h
> scripts/checkpatch.pl
>
> either I or somebody else, can change this(although a bit
> concerned about breaking things).
>
> Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
> ---
> Documentation/DocBook/kernel-hacking.tmpl | 4 ++--
> Documentation/cpu-freq/cpu-drivers.txt | 2 +-
> Documentation/kbuild/makefiles.txt | 2 +-
> arch/arm/mach-at91/leds.c | 2 +-
> arch/arm/mach-clps711x/p720t.c | 2 +-
> arch/arm/mach-ebsa110/leds.c | 2 +-
> arch/arm/mach-footbridge/cats-hw.c | 2 +-
> arch/arm/mach-footbridge/ebsa285-leds.c | 2 +-
> arch/arm/mach-footbridge/netwinder-hw.c | 2 +-
> arch/arm/mach-footbridge/netwinder-leds.c | 2 +-
> arch/arm/mach-ks8695/leds.c | 2 +-
> arch/arm/mach-omap1/leds.c | 2 +-
> arch/arm/mach-omap1/pm.c | 2 +-
> arch/arm/mach-orion5x/db88f5281-setup.c | 2 +-
> arch/arm/mach-orion5x/rd88f5182-setup.c | 2 +-
> arch/arm/mach-pxa/generic.c | 2 +-
> arch/arm/mach-pxa/pxa25x.c | 2 +-
> arch/arm/mach-shark/leds.c | 2 +-
> arch/blackfin/kernel/bfin_gpio.c | 2 +-
> arch/blackfin/mach-common/pm.c | 2 +-
> arch/cris/arch-v10/kernel/debugport.c | 2 +-
> arch/cris/arch-v10/kernel/fasttimer.c | 2 +-
> arch/cris/arch-v10/mm/init.c | 2 +-
> arch/cris/arch-v32/kernel/fasttimer.c | 2 +-
> arch/cris/arch-v32/kernel/pinmux.c | 2 +-
> arch/cris/arch-v32/kernel/signal.c | 2 +-
> arch/cris/arch-v32/mach-a3/io.c | 2 +-
> arch/cris/arch-v32/mach-a3/pinmux.c | 2 +-
> arch/cris/arch-v32/mach-fs/io.c | 2 +-
> arch/cris/arch-v32/mach-fs/pinmux.c | 2 +-
> arch/cris/kernel/profile.c | 2 +-
> arch/cris/kernel/time.c | 2 +-
> arch/cris/kernel/traps.c | 2 +-
> arch/frv/kernel/gdb-stub.c | 2 +-
> arch/frv/kernel/pm-mb93093.c | 2 +-
> arch/frv/kernel/pm.c | 2 +-
> arch/frv/kernel/sysctl.c | 2 +-
> arch/h8300/kernel/gpio.c | 2 +-
> arch/ia64/hp/sim/simeth.c | 2 +-
> arch/ia64/hp/sim/simserial.c | 2 +-
> arch/ia64/kernel/audit.c | 2 +-
> arch/ia64/kernel/crash.c | 2 +-
> arch/ia64/kernel/cyclone.c | 2 +-
> arch/ia64/kernel/perfmon.c | 2 +-
> arch/ia64/kernel/setup.c | 2 +-
> arch/ia64/kernel/uncached.c | 2 +-
> arch/ia64/kernel/unwind.c | 2 +-
> arch/ia64/mm/init.c | 2 +-
> arch/mips/Makefile | 2 +-
> arch/mips/kernel/unaligned.c | 2 +-
> arch/mips/lasat/sysctl.c | 2 +-
> arch/mips/math-emu/cp1emu.c | 2 +-
> arch/mips/nxp/pnx8550/common/proc.c | 2 +-
> arch/mips/sibyte/sb1250/bus_watcher.c | 2 +-
> arch/mn10300/kernel/gdb-stub.c | 2 +-
> arch/mn10300/kernel/mn10300-serial.c | 2 +-
> arch/mn10300/kernel/profile.c | 2 +-
> arch/parisc/kernel/pci-dma.c | 2 +-
> arch/parisc/kernel/pdc_chassis.c | 2 +-
> arch/powerpc/kernel/audit.c | 2 +-
> arch/powerpc/kernel/idle.c | 2 +-
> arch/powerpc/kernel/irq.c | 2 +-
> arch/powerpc/kernel/proc_powerpc.c | 2 +-
> arch/powerpc/kernel/prom.c | 4 ++--
> arch/powerpc/kernel/rtas-proc.c | 2 +-
> arch/powerpc/kernel/rtasd.c | 2 +-
> arch/powerpc/kernel/sysfs.c | 2 +-
> arch/powerpc/kernel/tau_6xx.c | 2 +-
> arch/powerpc/kernel/vio.c | 2 +-
> arch/powerpc/platforms/iseries/lpevents.c | 2 +-
> arch/powerpc/platforms/iseries/mf.c | 2 +-
> arch/powerpc/platforms/iseries/proc.c | 2 +-
> arch/powerpc/platforms/iseries/viopath.c | 2 +-
> arch/powerpc/platforms/pseries/eeh.c | 2 +-
> arch/powerpc/platforms/pseries/hvCall_inst.c | 2 +-
> arch/powerpc/platforms/pseries/power.c | 2 +-
> arch/powerpc/platforms/pseries/ras.c | 2 +-
> arch/powerpc/platforms/pseries/reconfig.c | 2 +-
> arch/powerpc/xmon/xmon.c | 2 +-
> arch/s390/appldata/appldata_base.c | 2 +-
> arch/s390/kernel/audit.c | 2 +-
> arch/s390/kernel/compat_exec_domain.c | 2 +-
> arch/s390/kernel/ipl.c | 2 +-
> arch/s390/kernel/topology.c | 2 +-
> arch/sh/boards/board-edosk7760.c | 2 +-
> arch/sh/boards/board-sh7785lcr.c | 2 +-
> arch/sh/boards/mach-cayman/setup.c | 2 +-
> arch/sh/boards/mach-landisk/setup.c | 2 +-
> arch/sh/boards/mach-r2d/setup.c | 2 +-
> arch/sh/boards/mach-sdk7786/setup.c | 2 +-
> arch/sh/boards/mach-se/7206/setup.c | 2 +-
> arch/sh/boards/mach-se/7751/setup.c | 2 +-
> arch/sh/boards/mach-sh03/setup.c | 2 +-
> arch/sh/kernel/traps_64.c | 2 +-
> arch/sparc/kernel/apc.c | 2 +-
> arch/sparc/kernel/audit.c | 2 +-
> arch/sparc/kernel/mdesc.c | 2 +-
> arch/sparc/kernel/pmc.c | 2 +-
> arch/um/drivers/mconsole_kern.c | 8 ++++----
> arch/um/drivers/net_kern.c | 2 +-
> arch/um/drivers/stderr_console.c | 2 +-
> arch/um/drivers/ubd_kern.c | 4 ++--
> arch/um/kernel/exitcode.c | 2 +-
> arch/um/kernel/physmem.c | 2 +-
> arch/um/os-Linux/aio.c | 4 ++--
> arch/um/os-Linux/skas/mem.c | 2 +-
> arch/um/os-Linux/skas/process.c | 2 +-
> arch/um/os-Linux/umid.c | 2 +-
> arch/um/sys-i386/tls.c | 2 +-
> arch/x86/kernel/audit_64.c | 2 +-
> arch/x86/kernel/tlb_uv.c | 4 ++--
> arch/x86/kernel/vsyscall_64.c | 4 ++--
> arch/x86/mm/dump_pagetables.c | 2 +-
> arch/x86/vdso/vdso32-setup.c | 4 ++--
> arch/x86/vdso/vma.c | 2 +-
> arch/xtensa/platforms/iss/console.c | 2 +-
> drivers/net/arm/am79c961a.c | 2 +-
> drivers/net/hamradio/baycom_epp.c | 1 +
> drivers/net/hamradio/baycom_par.c | 1 +
> drivers/net/hamradio/baycom_ser_fdx.c | 1 +
> drivers/net/hamradio/baycom_ser_hdx.c | 1 +
> drivers/s390/char/sclp_cmd.c | 2 +-
> drivers/s390/char/sclp_config.c | 2 +-
> drivers/s390/char/sclp_cpi_sys.c | 2 +-
> drivers/s390/char/sclp_vt220.c | 2 +-
> drivers/s390/cio/blacklist.c | 2 +-
> drivers/staging/rtl8192u/ieee80211/api.c | 2 +-
> fs/aio.c | 2 +-
> fs/compat_ioctl.c | 2 +-
> ipc/ipc_sysctl.c | 2 +-
> ipc/mqueue.c | 2 +-
> ipc/util.c | 2 +-
> kernel/audit.c | 2 +-
> kernel/audit_tree.c | 2 +-
> kernel/dma.c | 2 +-
> kernel/futex.c | 2 +-
> kernel/lockdep_proc.c | 2 +-
> kernel/pid_namespace.c | 2 +-
> kernel/posix-cpu-timers.c | 2 +-
> kernel/posix-timers.c | 2 +-
> kernel/resource.c | 2 +-
> kernel/sched_debug.c | 2 +-
> kernel/time/timer_list.c | 2 +-
> kernel/time/timer_stats.c | 2 +-
> kernel/tracepoint.c | 2 +-
> kernel/utsname_sysctl.c | 2 +-
> lib/audit.c | 2 +-
> lib/debugobjects.c | 2 +-
> mm/bounce.c | 2 +-
> mm/memory.c | 2 +-
> mm/mm_init.c | 2 +-
> mm/slab.c | 2 +-
> mm/slub.c | 2 +-
> mm/swapfile.c | 2 +-
> net/ipv4/syncookies.c | 2 +-
> net/ipv4/sysctl_net_ipv4.c | 2 +-
> security/keys/proc.c | 2 +-
> security/selinux/hooks.c | 2 +-
> security/selinux/netif.c | 2 +-
> security/selinux/netlink.c | 2 +-
> security/selinux/netnode.c | 2 +-
> security/selinux/netport.c | 2 +-
> security/selinux/selinuxfs.c | 2 +-
> security/selinux/ss/services.c | 2 +-
> security/smack/smackfs.c | 2 +-
> sound/last.c | 2 +-
> 166 files changed, 176 insertions(+), 172 deletions(-)
--
~Randy
^ permalink raw reply
* Re: Add PGM protocol support to the IP stack
From: H. Peter Anvin @ 2010-03-19 22:26 UTC (permalink / raw)
To: David Miller; +Cc: andi, cl, netdev, linux-kernel
In-Reply-To: <20100319.145336.226782717.davem@davemloft.net>
On 03/19/2010 02:53 PM, David Miller wrote:
> But I also don't consider what openpbm has to do right now to
> be all that much of a restriction. You need privileges to
> add the protocol to the kernel, you need privileges to run
> the userspace variant, there is no real difference.
The real difference is if multiplex is needed between multiple
unprivileged users.
-hpa
^ permalink raw reply
* Unable to create more than 1 guest virtio-net device using vhost-net backend
From: Sridhar Samudrala @ 2010-03-19 22:19 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: netdev, kvm@vger.kernel.org
When creating a guest with 2 virtio-net interfaces, i am running
into a issue causing the 2nd i/f falling back to userpace virtio
even when vhost is enabled.
After some debugging, it turned out that KVM_IOEVENTFD ioctl()
call in qemu is failing with ENOSPC.
This is because of the NR_IOBUS_DEVS(6) limit in kvm_io_bus_register_dev()
routine in the host kernel.
I think we need to increase this limit if we want to support multiple
network interfaces using vhost-net.
Is there an alternate solution?
Thanks
Sridhar
^ permalink raw reply
* Re: Add PGM protocol support to the IP stack
From: David Miller @ 2010-03-19 21:53 UTC (permalink / raw)
To: andi; +Cc: cl, netdev, linux-kernel
In-Reply-To: <87tysccjrn.fsf@basil.nowhere.org>
From: Andi Kleen <andi@firstfloor.org>
Date: Fri, 19 Mar 2010 18:18:36 +0100
> Christoph Lameter <cl@linux-foundation.org> writes:
>>
>> I know about the openpgm implementation. Openpbm does this at the user
>> level and requires linking to a library. It is essentially a communication
>> protocol done in user space. It has privilege issues because it has to
>> create PGM packets via a raw socket.
>
> That seems like a poor reason alone to put something into the kernel
> Perhaps you rather need some way to have unpriviledged raw sockets?
>
> The classical way to do this is to start suid root, only open
> the socket and then drop privileges.
I completely agree.
We should be able to make a way for unprivileged users to
use RAW sockets in some limited capacity, for cases like this.
But I also don't consider what openpbm has to do right now to
be all that much of a restriction. You need privileges to
add the protocol to the kernel, you need privileges to run
the userspace variant, there is no real difference.
^ permalink raw reply
* Re: [PATCH 2/3] can: add support for Janz VMOD-ICAN3 Intelligent CAN module
From: Ira W. Snyder @ 2010-03-19 21:52 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: linux-kernel, socketcan-core, netdev, sameo
In-Reply-To: <4BA3DAF1.4090206@grandegger.com>
On Fri, Mar 19, 2010 at 09:13:37PM +0100, Wolfgang Grandegger wrote:
> Ira W. Snyder wrote:
> > On Fri, Mar 19, 2010 at 04:45:09PM +0100, Wolfgang Grandegger wrote:
> >> Ira W. Snyder wrote:
> >>> On Fri, Mar 19, 2010 at 10:01:14AM +0100, Wolfgang Grandegger wrote:
> >>>> Hi Ira,
> >>>>
> >>>> we already discussed this patch on the SocketCAN mailing list and there
> >>>> are just a few minor issues and the request to add support for the new
> >>>> "berr-reporting" option, if feasible. See:
> >>>>
> >>>> commit 52c793f24054f5dc30d228e37e0e19cc8313f086
> >>>> Author: Wolfgang Grandegger <wg@grandegger.com>
> >>>> Date: Mon Feb 22 22:21:17 2010 +0000
> >>>>
> >>>> can: netlink support for bus-error reporting and counters
> >>>>
> >>>> This patch makes the bus-error reporting configurable and allows to
> >>>> retrieve the CAN TX and RX bus error counters via netlink interface.
> >>>> I have added support for the SJA1000. The TX and RX bus error counters
> >>>> are also copied to the data fields 6..7 of error messages when state
> >>>> changes are reported.
> >>>>
> >>>> Should not be a big deal.
> >>>>
> >>> I think this patch came along since my last post of the driver. I must
> >>> have missed it. I'll try and add support.
> >> No problem, it's really new. Just just need to enable BEI depending on
> >> CAN_CTRLMODE_BERR_REPORTING.
> >>
> >
> > I have one final question about this.
> >
> > The documentation for the firmware isn't very specific here. I believe
> > that in order to get any kind of error messages, I need the bus error
> > feature turned on. What is the expected behavior of an SJA1000 with the
> > BEI (bus error interrupt) turned off? Will you still get warning
> > messages for ERROR_ACTIVE -> ERROR_PASSIVE state transitions?
>
> Yes. State transitions are enabled with EI and EPI.
>
I cannot set the registers directly, but I think I got it right. See
below.
> > I'm not sure how I would go about testing this feature, either. Ideas?
>
> Send messages without cable connected and watch the error messages with
> "candump any,0:0,#ffffffff". With "ip ... berr-reporting on" you should
> see additional bus-errors.
>
Ok, I tried this. On one controller, I turned on bus-error reporting. On
the other, I turn off bus-error reporting. I then tried sending lots of
messages with the cable unplugged. Here is what happened:
bus-error reporting on:
Lots of CAN_ERR_BUSERR messages are flooded in candump. There is also a
CAN_ERR_CRTL_TX_WARNING message, when there are too many TX errors.
bus-error reporting off:
There was only one message reported before the controller went into
ERROR-WARNING state. It was the same CAN_ERR_CRTL_TX_WARNING message as
above. There was no flooding of CAN_ERR_BUSERR messages.
Does this seem right? It seems pretty good to me.
> > I also noticed that I can enable "self test mode" and "listen only mode"
> > using the same firmware command. It appears that there are netlink
> > messages for this as well. Should I try and support these, too? I don't
> > really have any use for them (yet). I assume "self test mode" is
> > equivalent to "loopback mode" in the netlink messages.
>
> List-only is straight forward while "self test mode" is not exactly like
> "loopback mode", IIRC. Feel free to send a follow-up patch when you have
> time for a thorough implementation and testing. It's also on my to-do
> list for the SJA1000.
>
Ok, then I'll put this off for a while. Feel free to pester me about it
when there is a working implementation in the SJA1000 driver for me to
borrow from. :)
Thanks for all the help.
Ira
^ permalink raw reply
* Re: [Bugme-new] [Bug 15530] New: ipip6 MTU cannot be set lower than 1280
From: Andrew Morton @ 2010-03-19 21:19 UTC (permalink / raw)
To: netdev; +Cc: bugzilla-daemon, bugme-daemon, berni
In-Reply-To: <bug-15530-10286@http.bugzilla.kernel.org/>
(switched to email. Please respond via emailed reply-to-all, not via the
bugzilla web interface).
On Sat, 13 Mar 2010 14:38:54 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=15530
>
> Summary: ipip6 MTU cannot be set lower than 1280
> Product: Networking
> Version: 2.5
> Kernel Version: 2.6.32
> Platform: All
> OS/Version: Linux
> Tree: Mainline
> Status: NEW
> Severity: low
> Priority: P1
> Component: IPV6
> AssignedTo: yoshfuji@linux-ipv6.org
> ReportedBy: berni@birkenwald.de
> Regression: No
>
>
> The (inner) MTU of a ipip6 (IPv4-in-IPv6) tunnel cannot be set below 1280,
> which is the minimum MTU in IPv6. However, there should be no IPv6 on the
> tunnel interface at all (ipip6 cannot transport it), so the IPv6 rules should
> not apply.
>
> root@pest:~# ip -6 tunnel add test1 mode ipip6 remote 2001:xxxx::26 local
> 2001:xxx::1:1
> root@pest:~# ip link set test1 mtu 1280
> root@pest:~# ip link set test1 mtu 1279
> RTNETLINK answers: Invalid argument
>
> This prevents the tunnel from work on paths that only support a (outer) IPv6
> MTU of 1280, since the tunnel adds an additional overhead of 40 bytes.
>
> Setting net.ipv6.conf.<if>.disable_ipv6=1 and/or removing the IPv6 link-local
> address on the tunnel interface does not help.
>
^ permalink raw reply
* Re: recent e100 fixes cause kernel panic?
From: Ed Ravin @ 2010-03-19 20:46 UTC (permalink / raw)
To: Stephen Hemminger
Cc: e1000-devel@lists.sourceforge.net, netdev@vger.kernel.org,
Stephen Hemminger, Jesse Brandeburg, roger.oksanen
In-Reply-To: <20100319131639.733c53bf@nehalam>
On Fri, Mar 19, 2010 at 01:16:39PM -0700, Stephen Hemminger wrote:
> On Fri, 19 Mar 2010 12:42:20 -0700
> Jesse Brandeburg <jesse.brandeburg@intel.com> wrote:
>
> > Added netdev, the place to talk about in-kernel driver problems.
> >
> > On Thu, 2010-03-11 at 22:39 -0700, Stephen Hemminger wrote:
> > > ----- "Ed Ravin" <eravin@panix.com> wrote:
> > >
> > > > I'm using the Vyatta "kenwood" Linux distribution, which is currently
> > > > at 2.6.31-1. I upgraded to their latest version, and began seeing
> > > > kernel
> > > > panics shortly after starting to use ssh/scp on the network connected
> > > > to
> > > > an e100 NIC. I was able to reproduce the problem immediately after
> > > > booting up - sometimes it even crashed during the boot.
> > > >
> > > > One of the crash logs is attached.
> >
> > Ed, thanks for the report, looks like these patches introduced a new
> > problem. e100 hardware has a tricky data structure that seems to cause
> > some problems for (particularly arm) some cpu architectures.
> >
> > > >
> > > > Since the problem seemed to be related to e100.c, I reverted the two
> > > > commits to e100.c that had taken place since I last built the kernel
> > > > for this box:
> > > >
> > > > Author: Roger Oksanen <roger.oksanen@cs.helsinki.fi>
> > > > Date: Fri Dec 18 20:18:21 2009 -0800
> > > > e100: Fix broken cbs accounting due to missing memset.
> > > >
> > > > Author: Roger Oksanen <roger.oksanen@cs.helsinki.fi>
> > > > Date: Sun Nov 29 17:17:29 2009 -0800
> > > > e100: Use pci pool to work around GFP_ATOMIC order 5 memory
> > > > allocation failu
> > > >
> > > > I rebuilt the kernel and it's not panicking anymore.
> >
> > so you just reverted both, and its good news things are working again,
> > but can you try one or the other and let us know if things still break
> > for you?
> >
> > > The Vyatta kernel for 2.6.31 is based on the 2.6.31.10 + unionfs.
> > > These two patches came from the 2.6.31.10 -stable update.
> >
> > This is the only report of this issue I have heard so far, so something
> > must be a little unique to your system or workload such that the driver
> > works mostly.
> >
> > I'm looking more closely into the panic trace now, maybe I can figure it
> > out from there.
> >
>
> Davem found one thing, the memset wasn't initializing the whole maximum possible
> tx ring.
I think that was it. Good catch!
I was running "ethtool -G rx 4096 tx 512" at startup on all the interfaces
in the system. That was meant for the e1000 / e1000e NICs, but it ended
up also getting run on the e100 in my elderly test box. This appears to be
the equivalent of setting the e100 rings to their maximum sizes of 256 for
both rx and tx.
I haven't had the chance yet to try the patch.
But I did reboot back to the buggy kernel and ran:
ethtool -G rx 128 tx 128 eth1
I then copied a 150 MB file via scp back and forth, no problems. Usually
I'd get the panic as soon as I started heavy data transfer, sometimes
sooner.
I then ran 'ethtool -G rx 256 tx 256 eth1" and started the scp again -
instant panic. Trace below.
------------------
# ethtool -G eth1 rx 256 tx 256
# [ 239.331360] BUG: unable to handle kernel NULL pointer
dereference at (null)
[ 239.335284] IP: [<(null)>] (null)
[ 239.335284] *pde = 00000000
[ 239.335284] Thread overran stack, or stack corrupted
[ 239.335284] Oops: 0000 [#1] SMP
[ 239.335284] last sysfs file: /sys/class/i2c-adapter/i2c-0/name
[ 239.335284] Modules linked in: ip_gre xt_comment iptable_nat
iptable_filter ip6table_filter ip6table_raw ip6_tables xt_NOTRACK
iptable_raw ip_tables x_tables nf_nat_pptp nf_conntrack_pptp
nf_conntrack_proto_gre nf_nat_h323 nf_conntrack_h323 nf_nat_sip
nf_conntrack_sip nf_nat_proto_gre nf_nat_tftp nf_nat_ftp nf_nat
nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_tftp nf_conntrack_ftp
nf_conntrack ipv6 pcspkr parport_pc parport button processor i2c_viapro
i2c_core via_agp shpchp pci_hotplug agpgart evdev vfat fat ext2 battery
ohci_hcd ehci_hcd squashfs loop unionfs ext3 jbd mbcache raid6_pq async_xor
async_memcpy async_tx xor md_mod sg sr_mod sd_mod cdrom crc_t10dif
usb_storage pata_via pata_acpi ata_generic pata_pdc202xx_old uhci_hcd
libata usbcore e100 mii nls_base e1000 scsi_mod thermal fan thermal_sys
[last unloaded: raid10]
[ 239.335284]
[ 239.335284] Pid: 0, comm: swapper Tainted: G W
(2.6.31-1-586-vyatta #1) System Name
[ 239.335284] EIP: 0060:[<00000000>] EFLAGS: 00010016 CPU: 0
[ 239.335284] EIP is at 0x0
[ 239.335284] EAX: ef441c20 EBX: ef441c20 ECX: 00000001 EDX: 00000001
[ 239.335284] ESI: fffffff4 EDI: 00000001 EBP: 00000000 ESP: c12d1dd4
[ 239.335284] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[ 239.335284] Process swapper (pid: 0, ti=c12d0000 task=c12febc0
task.ti=c12d0000)
[ 239.335284] Stack:
[ 239.335284] c101c590 000000c1 00000001 efe04eb4 00000282 efe04eb0
000000c1 00000001
[ 239.335284] <0> c101e86c 00000001 000000c1 00000001 efe04eb0 f66d0940
f66d0940 f66d0940
[ 239.335284] <0> c1199d84 000000c1 f66d32e0 00000000 c11d646e 036ac000
f66d32e0 f66ac000
[ 239.335284] Call Trace:
[ 239.335284] [<c101c590>] ? __wake_up_common+0x34/0x59
[ 239.335284] [<c101e86c>] ? __wake_up_sync_key+0x33/0x49
[ 239.335284] [<c1199d84>] ? sock_def_readable+0x34/0x5e
[ 239.335284] [<c11d646e>] ? tcp_child_process+0x46/0x83
[ 239.335284] [<c11d5191>] ? tcp_v4_do_rcv+0x240/0x2a1
[ 239.335284] [<c11d5592>] ? tcp_v4_rcv+0x3a0/0x594
[ 239.335284] [<c11be22e>] ? ip_local_deliver_finish+0xca/0x14e
[ 239.335284] [<c11bdeb5>] ? ip_rcv_finish+0x295/0x2a9
[ 239.335284] [<c11a3168>] ? netif_receive_skb+0x3cb/0x3e6
[ 239.335284] [<f7cefafb>] ? e100_poll+0x184/0x29d [e100]
[ 239.335284] [<c11a36b9>] ? net_rx_action+0x91/0x173
[ 239.335284] [<c102e431>] ? __do_softirq+0xa5/0x147
[ 239.335284] [<c102e4f6>] ? do_softirq+0x23/0x27
[ 239.335284] [<c102e5d3>] ? irq_exit+0x26/0x53
[ 239.335284] [<c10043fd>] ? do_IRQ+0x78/0x89
[ 239.335284] [<c1002fe9>] ? common_interrupt+0x29/0x30
[ 239.335284] [<c10085ae>] ? default_idle+0x3e/0x5c
[ 239.335284] [<c1001c5c>] ? cpu_idle+0x41/0x5d
[ 239.335284] [<c132e744>] ? start_kernel+0x29c/0x29f
[ 239.335284] Code: Bad EIP value.
[ 239.335284] EIP: [<00000000>] 0x0 SS:ESP 0068:c12d1dd4
[ 239.335284] CR2: 0000000000000000
[ 239.335284] ---[ end trace 4eaa2a86a8e2da24 ]---
[ 239.335284] Kernel panic - not syncing: Fatal exception in interrupt
[ 239.335284] Pid: 0, comm: swapper Tainted: G D W
2.6.31-1-586-vyatta #1
[ 239.335284] Call Trace:
[ 239.335284] [<c120bee2>] ? panic+0x38/0xd1
[ 239.335284] [<c100581c>] ? oops_end+0x6c/0x76
[ 239.335284] [<c1017f6a>] ? no_context+0x105/0x10e
[ 239.335284] [<c101809b>] ? __bad_area_nosemaphore+0x128/0x133
[ 239.335284] [<c11a3bb8>] ? dev_hard_start_xmit+0x205/0x298
[ 239.335284] [<c11bc136>] ? ip_route_output_flow+0x72/0x1ad
[ 239.335284] [<c11df3e1>] ? inet_sk_rebuild_header+0x18/0x387
[ 239.335284] [<c10180b0>] ? bad_area_nosemaphore+0xa/0xc
[ 239.335284] [<c120dac6>] ? error_code+0x66/0x70
[ 239.335284] [<c10181ce>] ? do_page_fault+0x0/0x270
[ 239.335284] [<c101c590>] ? __wake_up_common+0x34/0x59
[ 239.335284] [<c101e86c>] ? __wake_up_sync_key+0x33/0x49
[ 239.335284] [<c1199d84>] ? sock_def_readable+0x34/0x5e
[ 239.335284] [<c11d646e>] ? tcp_child_process+0x46/0x83
[ 239.335284] [<c11d5191>] ? tcp_v4_do_rcv+0x240/0x2a1
[ 239.335284] [<c11d5592>] ? tcp_v4_rcv+0x3a0/0x594
[ 239.335284] [<c11be22e>] ? ip_local_deliver_finish+0xca/0x14e
[ 239.335284] [<c11bdeb5>] ? ip_rcv_finish+0x295/0x2a9
[ 239.335284] [<c11a3168>] ? netif_receive_skb+0x3cb/0x3e6
[ 239.335284] [<f7cefafb>] ? e100_poll+0x184/0x29d [e100]
[ 239.335284] [<c11a36b9>] ? net_rx_action+0x91/0x173
[ 239.335284] [<c102e431>] ? __do_softirq+0xa5/0x147
[ 239.335284] [<c102e4f6>] ? do_softirq+0x23/0x27
[ 239.335284] [<c102e5d3>] ? irq_exit+0x26/0x53
[ 239.335284] [<c10043fd>] ? do_IRQ+0x78/0x89
[ 239.335284] [<c1002fe9>] ? common_interrupt+0x29/0x30
[ 239.335284] [<c10085ae>] ? default_idle+0x3e/0x5c
[ 239.335284] [<c1001c5c>] ? cpu_idle+0x41/0x5d
[ 239.335284] [<c132e744>] ? start_kernel+0x29c/0x29f
[ 239.335284] Rebooting in 60 seconds..
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
^ permalink raw reply
* pull request: wireless-next-2.6 2010-03-19
From: John W. Linville @ 2010-03-19 20:45 UTC (permalink / raw)
To: davem-fT/PcQaiUtIeIZ0/mPfg9Q
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA
Dave,
Here is the first big dump of wireless bit for the 2.6.35 cycle...
Included are the usual driver updates, etc. In particular, the Intel
and Nokia guys have been busy as usual. :-)
Please let me know if there are problems!
Thanks,
John
---
The following changes since commit 1c01fe14a87332cc88266fbd6e598319322eb96f:
Jiri Pirko (1):
net: forbid underlaying devices to change its type
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git master
Abhijeet Kolekar (1):
iwl3945: check ucode load error code
Alban Browaeys (2):
rt2x00: txdone implementation supporting hw encryption.
rt2x00: Fix TX status reporting for rt2800pci.
Andres Salomon (1):
mac80211: give warning if building w/out rate ctrl algorithm
Andrew Blaich (1):
ath5k: fixing retries in ath5k_hw_setup_4word_tx_desc
Benoit Papillault (1):
ath5k: Fix TX/RX padding for all frames
Bruno Randolf (11):
mac80211: fix rates setup on IBSS merge
ath5k: add antenna statistics and debugfs file for antenna settings
ath5k: preserve antenna settings
ath5k: remove double opmode definition
ath5k: remove ah_magic
ath5k: remove ah_mac_revision
ath5k: remove ah_gpio_npins
ath5k: add debugfs file frameerrors
ath5k: IQ calibration for AR5211 is slightly different
ath5k: Minor EEPROM documentation updates
mac80211: (really) fix rates setup on IBSS merge
Christian Lamparter (1):
p54: Enable HW_REPORTS_TX_ACK_STATUS
Felix Fietkau (4):
minstrel: simplify and fix debugfs code
minstrel: make the rate control ops reusable from another rc implementation
ath9k: fix rate control tx status handling for A-MPDU
mac80211: optimize tx status processing
Grazvydas Ignotas (3):
wl1251: make local symbols static
wl1251: fix ELP_CTRL register accesses when using SDIO
wl1251: reduce eeprom read wait time
Helmut Schaa (2):
mac80211: Improve software scan timing
rt2x00: fix warning when building rt2800pci with just soc support
Johannes Berg (20):
mac80211: deprecate RX status noise
mac80211: use different MAC addresses for virtual interfaces
iwlagn: move ICT code into separate file
iwlwifi: move 3945 specific data into union
iwlwifi: move ICT data to agn part of union
iwlagn: remove write-only variables
iwlwifi: remove superfluous channel check
iwlwifi: remove dead code from iwl_mac_reset_tsf
iwlwifi: remove frame dropping
iwlwifi: remove never-changing priv->rates_mask variable
iwlwifi: remove priv->active_rate_basic
iwlwifi: remove IBSS channel sanity check
iwlwifi: remove sanity check
iwlwifi: clear up AC/FIFO debug output
iwlwifi: move 3945 clip groups to 3945 data
iwlwifi: remove alive start adhoc restart
iwlwifi: remove STATUS_MODE_PENDING
iwlagn: move sysfs flags and filter_flags files to debugfs
iwlwifi: change WEP key protection to use mutex
iwlwifi: clean up queue/fifo handling
John W. Linville (4):
ath5k: remove some dead functions
ath5k: remove dead source in ath5k_combine_linear_pcdac_curves
ath5k: remove unused beacon timer code
Revert "mac80211: fix rates setup on IBSS merge"
Jussi Kivilinna (4):
rndis_wlan: copy only useful data from rndis_command respond
rndis_wlan: remove unused variables from priv structure
rndis_wlan: get max_num_pmkids from device
rndis_wlan: Implement cfg80211 PMKSA API
Juuso Oikarinen (12):
wl1271: Improvements to the TX path
wl1271: Fix ad-hoc mode neighborhood detection
wl1271: Fix queue stopping/waking for TX path
wl1271: Remove annoying PSM entry/exit kernel traces
wl1271: Aggregate RX acknowledgements to FW
wl1271: Don't mask interrupts while handling interrupt
wl1271: Implement looped IRQ handling
wl1271: Update TX packet life time handling with higher resolution time
wl1271: Clean up firmware block allocation calculation
wl1271: Clean up TX security sequence number handling
wl1271: Disable host TX rate control
wl1271: Remove tx-power level workaround
Kalle Valo (1):
wl1271: don't get received frames from hardware in PLT mode
Larry Finger (1):
ssb: Export ssb_chipco_gpio_control - needed by N PHY code
Matthieu CASTET (2):
airo : fix printing status info
airo : Print of firmware version
Pavel Roskin (6):
ath5k: remove stale function declarations, make some functions static
ath5k: remove useless "extern" from function declarations
ath5k: move ath5k_hw_register_timeout() into reset.c
ath9k: never read from the AR_IMR_S2 register
orinoco: disable support for prism chipset by default
ipw2x00: replace "ieee80211" with "libipw" where appropriate
Rafał Miłecki (10):
b43: N-PHY: add some registers and structs definitions
b43: N-PHY: initialize super switch
b43: N-PHY: turn radio on/off (rfkill)
b43: N-PHY: update writing channel-specific radio registers
b43: N-PHY: update post init of 2055 radio
b43: N-PHY: switch to chanspec struct
b43: N-PHY: adjust gain table
b43: N-PHY: isloate 2055 radio setup
b43: N-PHY: implement chanspec setup
b43: N-PHY: switch to chanspec ops
Reinette Chatre (1):
iwlwifi: remove needlessly exported symbols
Stewart Malik (1):
DRIVER: Libertas: Fixed coding style in rx.c
Teemu Paasikivi (10):
wl1271: Moved module basics to wl1271_spi.c
wl1271: Added functions to enable/disable interrupt handling
wl1271: Implemented abstraction of IO functions.
wl1271: Inlined IO functions
wl1271: Removed wl1271_spi.h and made some functions static
wl1271: Divided driver to two separate modules
wl1271: Initial SDIO implementation
wl1271: Changed access to fw status register to use raw read
wl1271: Fixed unloading of the wl1271_sdio module
wl1271: Changed wl1271_sdio to be selectable only on ARM
Wey-Yi Guy (4):
iwlwifi: remove un-necessary parameters
iwlwifi: remove duplicate function
iwlwifi: remove unnecessary parameter in scan function
iwlwifi: add internal short scan support for 3945
Zhu Yi (7):
iwmc3200wifi: refuse to associate on unallowed channels
iwmc3200wifi: remove "_safe" for some list_for_each_entry usage
iwmc3200wifi: add ftrace event tracing support
iwmc3200wifi: protect rx_tickets and rx_packets[] lists
iwmc3200wifi: increase concatenated buffer
iwmc3200wifi: mark some pmksa functions static
iwmc3200wifi: typo fix and code cleanup
florian-sVu6HhrpSfRAfugRpC6u6w@public.gmane.org (3):
Document the rfkill sysfs ABI
enhance sysfs rfkill interface
rename new rfkill sysfs knobs
Documentation/ABI/obsolete/sysfs-class-rfkill | 29 ++
Documentation/ABI/stable/sysfs-class-rfkill | 67 ++++
Documentation/feature-removal-schedule.txt | 18 +
Documentation/rfkill.txt | 44 +--
drivers/net/wireless/airo.c | 37 ++-
drivers/net/wireless/ath/ath5k/ath5k.h | 257 +++++---------
drivers/net/wireless/ath/ath5k/attach.c | 5 +-
drivers/net/wireless/ath/ath5k/base.c | 150 +++++++--
drivers/net/wireless/ath/ath5k/base.h | 20 +
drivers/net/wireless/ath/ath5k/caps.c | 3 -
drivers/net/wireless/ath/ath5k/debug.c | 212 +++++++++++
drivers/net/wireless/ath/ath5k/debug.h | 2 +
drivers/net/wireless/ath/ath5k/desc.c | 18 +-
drivers/net/wireless/ath/ath5k/eeprom.c | 4 +-
drivers/net/wireless/ath/ath5k/eeprom.h | 88 ++++--
drivers/net/wireless/ath/ath5k/pcu.c | 306 +----------------
drivers/net/wireless/ath/ath5k/phy.c | 43 +--
drivers/net/wireless/ath/ath5k/qcu.c | 17 -
drivers/net/wireless/ath/ath5k/reg.h | 2 +-
drivers/net/wireless/ath/ath5k/reset.c | 38 ++-
drivers/net/wireless/ath/ath9k/hw.c | 16 +-
drivers/net/wireless/ath/ath9k/hw.h | 1 +
drivers/net/wireless/ath/ath9k/mac.c | 6 +-
drivers/net/wireless/ath/ath9k/rc.c | 8 +-
drivers/net/wireless/ath/ath9k/rc.h | 1 -
drivers/net/wireless/ath/ath9k/xmit.c | 4 +-
drivers/net/wireless/b43/b43.h | 1 +
drivers/net/wireless/b43/phy_n.c | 463 +++++++++++++++++++------
drivers/net/wireless/b43/phy_n.h | 21 +-
drivers/net/wireless/b43/tables_nphy.h | 9 +
drivers/net/wireless/ipw2x00/ipw2100.c | 10 +-
drivers/net/wireless/ipw2x00/ipw2200.c | 18 +-
drivers/net/wireless/ipw2x00/libipw.h | 14 +-
drivers/net/wireless/ipw2x00/libipw_module.c | 13 +-
drivers/net/wireless/iwlwifi/Makefile | 2 +-
drivers/net/wireless/iwlwifi/iwl-1000.c | 1 +
drivers/net/wireless/iwlwifi/iwl-3945-hw.h | 2 +
drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 6 +-
drivers/net/wireless/iwlwifi/iwl-3945.c | 42 ++-
drivers/net/wireless/iwlwifi/iwl-4965.c | 20 +-
drivers/net/wireless/iwlwifi/iwl-5000.c | 40 +-
drivers/net/wireless/iwlwifi/iwl-6000.c | 1 +
drivers/net/wireless/iwlwifi/iwl-agn-ict.c | 305 ++++++++++++++++
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 13 +-
drivers/net/wireless/iwlwifi/iwl-agn-rs.h | 1 -
drivers/net/wireless/iwlwifi/iwl-agn.c | 110 +------
drivers/net/wireless/iwlwifi/iwl-agn.h | 74 ++++
drivers/net/wireless/iwlwifi/iwl-core.c | 418 ++--------------------
drivers/net/wireless/iwlwifi/iwl-core.h | 8 -
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 82 ++---
drivers/net/wireless/iwlwifi/iwl-dev.h | 90 +++---
drivers/net/wireless/iwlwifi/iwl-helpers.h | 3 +
drivers/net/wireless/iwlwifi/iwl-prph.h | 14 +-
drivers/net/wireless/iwlwifi/iwl-rx.c | 24 --
drivers/net/wireless/iwlwifi/iwl-scan.c | 9 +-
drivers/net/wireless/iwlwifi/iwl-sta.c | 18 +-
drivers/net/wireless/iwlwifi/iwl-tx.c | 115 ++++---
drivers/net/wireless/iwlwifi/iwl3945-base.c | 78 ++---
drivers/net/wireless/iwmc3200wifi/Kconfig | 9 +-
drivers/net/wireless/iwmc3200wifi/Makefile | 3 +
drivers/net/wireless/iwmc3200wifi/cfg80211.c | 17 +-
drivers/net/wireless/iwmc3200wifi/commands.c | 14 +-
drivers/net/wireless/iwmc3200wifi/commands.h | 1 +
drivers/net/wireless/iwmc3200wifi/debugfs.c | 13 +-
drivers/net/wireless/iwmc3200wifi/hal.c | 15 +-
drivers/net/wireless/iwmc3200wifi/hal.h | 5 +-
drivers/net/wireless/iwmc3200wifi/iwm.h | 3 +
drivers/net/wireless/iwmc3200wifi/main.c | 9 +-
drivers/net/wireless/iwmc3200wifi/rx.c | 76 +++--
drivers/net/wireless/iwmc3200wifi/trace.c | 3 +
drivers/net/wireless/iwmc3200wifi/trace.h | 283 +++++++++++++++
drivers/net/wireless/iwmc3200wifi/tx.c | 8 +-
drivers/net/wireless/iwmc3200wifi/umac.h | 2 +-
drivers/net/wireless/libertas/rx.c | 50 ++--
drivers/net/wireless/orinoco/Kconfig | 13 +-
drivers/net/wireless/orinoco/hw.c | 7 +
drivers/net/wireless/orinoco/orinoco_cs.c | 79 +++--
drivers/net/wireless/p54/main.c | 1 +
drivers/net/wireless/rndis_wlan.c | 364 ++++++++++++++++++-
drivers/net/wireless/rt2x00/rt2800pci.c | 93 +++---
drivers/net/wireless/wl12xx/Kconfig | 24 ++
drivers/net/wireless/wl12xx/Makefile | 6 +-
drivers/net/wireless/wl12xx/wl1251.h | 2 +
drivers/net/wireless/wl12xx/wl1251_boot.c | 3 +-
drivers/net/wireless/wl12xx/wl1251_io.h | 20 +
drivers/net/wireless/wl12xx/wl1251_main.c | 4 +-
drivers/net/wireless/wl12xx/wl1251_ps.c | 8 +-
drivers/net/wireless/wl12xx/wl1251_sdio.c | 52 ++-
drivers/net/wireless/wl12xx/wl1271.h | 33 ++-
drivers/net/wireless/wl12xx/wl1271_acx.c | 8 +-
drivers/net/wireless/wl12xx/wl1271_boot.c | 3 +-
drivers/net/wireless/wl12xx/wl1271_cmd.c | 8 +-
drivers/net/wireless/wl12xx/wl1271_cmd.h | 2 +-
drivers/net/wireless/wl12xx/wl1271_event.c | 1 -
drivers/net/wireless/wl12xx/wl1271_io.c | 87 ++----
drivers/net/wireless/wl12xx/wl1271_io.h | 122 ++++++-
drivers/net/wireless/wl12xx/wl1271_main.c | 336 +++++--------------
drivers/net/wireless/wl12xx/wl1271_ps.c | 1 -
drivers/net/wireless/wl12xx/wl1271_rx.c | 11 +-
drivers/net/wireless/wl12xx/wl1271_sdio.c | 307 ++++++++++++++++
drivers/net/wireless/wl12xx/wl1271_spi.c | 267 ++++++++++++++-
drivers/net/wireless/wl12xx/wl1271_spi.h | 96 -----
drivers/net/wireless/wl12xx/wl1271_testmode.c | 1 -
drivers/net/wireless/wl12xx/wl1271_tx.c | 94 +++---
drivers/net/wireless/wl12xx/wl1271_tx.h | 4 +-
drivers/ssb/driver_chipcommon.c | 1 +
include/net/mac80211.h | 4 +-
net/mac80211/Kconfig | 9 +
net/mac80211/debugfs_sta.c | 2 -
net/mac80211/ibss.c | 16 +-
net/mac80211/ieee80211_i.h | 1 +
net/mac80211/iface.c | 116 ++++++-
net/mac80211/rc80211_minstrel.c | 2 +-
net/mac80211/rc80211_minstrel.h | 11 +
net/mac80211/rc80211_minstrel_debugfs.c | 41 +--
net/mac80211/rx.c | 9 -
net/mac80211/scan.c | 71 ++++-
net/mac80211/sta_info.h | 2 -
net/mac80211/status.c | 14 +-
net/rfkill/core.c | 53 +++-
120 files changed, 3964 insertions(+), 2377 deletions(-)
create mode 100644 Documentation/ABI/obsolete/sysfs-class-rfkill
create mode 100644 Documentation/ABI/stable/sysfs-class-rfkill
create mode 100644 drivers/net/wireless/iwlwifi/iwl-agn-ict.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-agn.h
create mode 100644 drivers/net/wireless/iwmc3200wifi/trace.c
create mode 100644 drivers/net/wireless/iwmc3200wifi/trace.h
create mode 100644 drivers/net/wireless/wl12xx/wl1271_sdio.c
delete mode 100644 drivers/net/wireless/wl12xx/wl1271_spi.h
Omnibus patch available here:
http://www.kernel.org/pub/linux/kernel/people/linville/wireless-next-2.6-2010-03-19.patch.bz2
--
John W. Linville Someday the world will need a hero, and you
linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org might be all we have. Be ready.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [E1000-devel] recent e100 fixes cause kernel panic?
From: Stephen Hemminger @ 2010-03-19 20:16 UTC (permalink / raw)
To: Jesse Brandeburg
Cc: Ed Ravin, roger.oksanen, e1000-devel@lists.sourceforge.net,
Stephen Hemminger, netdev@vger.kernel.org
In-Reply-To: <1269027740.3029.33.camel@jbrandeb-mobl3.amr.corp.intel.com>
On Fri, 19 Mar 2010 12:42:20 -0700
Jesse Brandeburg <jesse.brandeburg@intel.com> wrote:
> Added netdev, the place to talk about in-kernel driver problems.
>
> On Thu, 2010-03-11 at 22:39 -0700, Stephen Hemminger wrote:
> > ----- "Ed Ravin" <eravin@panix.com> wrote:
> >
> > > I'm using the Vyatta "kenwood" Linux distribution, which is currently
> > > at 2.6.31-1. I upgraded to their latest version, and began seeing
> > > kernel
> > > panics shortly after starting to use ssh/scp on the network connected
> > > to
> > > an e100 NIC. I was able to reproduce the problem immediately after
> > > booting up - sometimes it even crashed during the boot.
> > >
> > > One of the crash logs is attached.
>
> Ed, thanks for the report, looks like these patches introduced a new
> problem. e100 hardware has a tricky data structure that seems to cause
> some problems for (particularly arm) some cpu architectures.
>
> > >
> > > Since the problem seemed to be related to e100.c, I reverted the two
> > > commits to e100.c that had taken place since I last built the kernel
> > > for this box:
> > >
> > > Author: Roger Oksanen <roger.oksanen@cs.helsinki.fi>
> > > Date: Fri Dec 18 20:18:21 2009 -0800
> > > e100: Fix broken cbs accounting due to missing memset.
> > >
> > > Author: Roger Oksanen <roger.oksanen@cs.helsinki.fi>
> > > Date: Sun Nov 29 17:17:29 2009 -0800
> > > e100: Use pci pool to work around GFP_ATOMIC order 5 memory
> > > allocation failu
> > >
> > > I rebuilt the kernel and it's not panicking anymore.
>
> so you just reverted both, and its good news things are working again,
> but can you try one or the other and let us know if things still break
> for you?
>
> > The Vyatta kernel for 2.6.31 is based on the 2.6.31.10 + unionfs.
> > These two patches came from the 2.6.31.10 -stable update.
>
> This is the only report of this issue I have heard so far, so something
> must be a little unique to your system or workload such that the driver
> works mostly.
>
> I'm looking more closely into the panic trace now, maybe I can figure it
> out from there.
>
Davem found one thing, the memset wasn't initializing the whole maximum possible
tx ring.
--
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox