Netdev List
 help / color / mirror / Atom feed
* Re: Network QoS support in applications
From: David Miller @ 2010-03-11 19:27 UTC (permalink / raw)
  To: philipp_subx-9z15yex7P+UJvtFkdXX2HpqQE7yCjDx5
  Cc: dunc-9b9L1Hpe0sBAfugRpC6u6w, kalle.valo-X3B1VOXEql0,
	kaber-dcUjhNyLwpNeoWH0uzbU5w, netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-wireless-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4B9942A7.40205-9z15yex7P+UJvtFkdXX2HpqQE7yCjDx5@public.gmane.org>

From: "Philip A. Prindeville" <philipp_subx-9z15yex7P+UJvtFkdXX2HpqQE7yCjDx5@public.gmane.org>
Date: Thu, 11 Mar 2010 12:21:11 -0700

> And yes, there will always be misbehaving users.  They are a fact of
> life.  That doesn't mean we should lobotomize the network.  We don't
> have an authentication mechanism on ICMP Redirects or Source-Quench,

Which is why most networks block those packets from the outside.

> Nor is ARP authenticated.

Which is why people control who can plug into their physical
network.

None of the things you are saying support the idea of having
applications decide what the DSCP marking should be.
--
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: [PATCH] ipv4: add DiffServ priority based routing
From: David Miller @ 2010-03-11 19:29 UTC (permalink / raw)
  To: philipp_subx; +Cc: torsten.schmidt, netdev
In-Reply-To: <4B9943A4.8040606@redfish-solutions.com>

From: "Philip A. Prindeville" <philipp_subx@redfish-solutions.com>
Date: Thu, 11 Mar 2010 12:25:24 -0700

> I agree with the notion that certain values should be set side-wide
> (or at least system-wide) to prevent malicious users from exploiting
> QoS...  that's why I've been advocating for QoS settings to be
> specified in a system configuration file, and not a per-user
> configuration file.

So I can set whatever I want on my personal workation.

I'm sure sysadmins will be happy about that.

Look, this doesn't work.  QoS handling and policy belongs in the
egress point to the network, it's the only way to control this
properly and prevent abuse.

^ permalink raw reply

* Re: Network QoS support in applications
From: Philip A. Prindeville @ 2010-03-11 19:29 UTC (permalink / raw)
  To: David Miller
  Cc: dunc-9b9L1Hpe0sBAfugRpC6u6w, kalle.valo-X3B1VOXEql0,
	kaber-dcUjhNyLwpNeoWH0uzbU5w, netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-wireless-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20100311.112754.142886660.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>

On 03/11/2010 12:27 PM, David Miller wrote:
> From: "Philip A. Prindeville" <philipp_subx-9z15yex7P+UJvtFkdXX2HpqQE7yCjDx5@public.gmane.org>
> Date: Thu, 11 Mar 2010 12:21:11 -0700
> 
>> And yes, there will always be misbehaving users.  They are a fact of
>> life.  That doesn't mean we should lobotomize the network.  We don't
>> have an authentication mechanism on ICMP Redirects or Source-Quench,
> 
> Which is why most networks block those packets from the outside.
> 
>> Nor is ARP authenticated.
> 
> Which is why people control who can plug into their physical
> network.
> 
> None of the things you are saying support the idea of having
> applications decide what the DSCP marking should be.


Does "decide what the DSCP marking should be" include complying to the recommendations of RFC-4594?

--
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: [PATCH] ipv4: add DiffServ priority based routing
From: Philip A. Prindeville @ 2010-03-11 19:32 UTC (permalink / raw)
  To: David Miller; +Cc: torsten.schmidt, netdev
In-Reply-To: <20100311.112941.177105216.davem@davemloft.net>

On 03/11/2010 12:29 PM, David Miller wrote:
> From: "Philip A. Prindeville" <philipp_subx@redfish-solutions.com>
> Date: Thu, 11 Mar 2010 12:25:24 -0700
> 
>> I agree with the notion that certain values should be set side-wide
>> (or at least system-wide) to prevent malicious users from exploiting
>> QoS...  that's why I've been advocating for QoS settings to be
>> specified in a system configuration file, and not a per-user
>> configuration file.
> 
> So I can set whatever I want on my personal workation.
> 
> I'm sure sysadmins will be happy about that.
> 
> Look, this doesn't work.  QoS handling and policy belongs in the
> egress point to the network, it's the only way to control this
> properly and prevent abuse.


Well, anyone who has 'root' on their workstation can already do a fair amount of damage on a network... we're not letting any new genies out of the bottle... we're just giving them more room to stretch.

"QoS handling and policy belongs in the egress point to the network, it's the only way to control this properly and prevent abuse."

Except that it doesn't.  As I pointed out in another email, TFTP, FTP-Data, and RTP are very hard to categorize correctly.

For that matter, so is SSH, since it can be an interactive shell session, an SCP file transfer, or a mix of various tunneled protocols like X and LPR.

So by the time packets get to the egress point, oftentimes you've lost sufficient information to adequately categorize them.


^ permalink raw reply

* [PATCH] iproute2: detect iptables modules dir in configure.
From: Andreas Henriksson @ 2010-03-11 19:07 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

Try to automatically detect iptables modules directory.

Make the configure script look for iptables modules.
This also makes it possible to specify it on the
command line while building via "make IPT_LIB_DIR=/foo/bar".

Signed-off-by: Andreas Henriksson <andreas@fatal.se>

---

Possibly the ifndef check in include/iptables.h
should be turned into an #error to force the person
building to manually specify it instead of just silently
using a probably incorrect path.

diff --git a/configure b/configure
index 92a0b48..600fa96 100755
--- a/configure
+++ b/configure
@@ -3,6 +3,8 @@
 #
 INCLUDE=${1:-"$PWD/include"}
 
+TABLES=
+
 check_atm()
 {
 cat >/tmp/atmtest.c <<EOF
@@ -139,9 +141,28 @@ check_ipt()
 	if ! grep TC_CONFIG_XT Config > /dev/null
 	then
 		echo "using iptables"
+		TABLES="iptables"
+	else
+		TABLES="xtables"
 	fi
 }
 
+check_ipt_lib_dir()
+{
+	IPT_LIB_DIR=""
+	for dir in /lib /usr/lib /usr/local/lib
+	do
+		for file in $dir/$TABLES/lib*t_*so ; do
+			if [ -f $file ]; then
+				echo $dir/$TABLES
+				echo "IPT_LIB_DIR:=$dir/$TABLES" >> Config
+				return
+			fi
+		done
+	done
+	echo "not found!"
+}
+
 echo "# Generated config based on" $INCLUDE >Config
 
 echo "TC schedulers"
@@ -155,3 +176,5 @@ check_xt_old
 check_xt_old_internal_h
 check_ipt
 
+echo -n "iptables modules directory: "
+check_ipt_lib_dir
diff --git a/tc/Makefile b/tc/Makefile
index 0b5d7d3..6508ef3 100644
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -77,6 +77,9 @@ TCLIB += tc_estimator.o
 TCLIB += tc_stab.o
 
 CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PROB
+ifneq ($(IPT_LIB_DIR),)
+	CFLAGS += -DIPT_LIB_DIR="$(IPT_LIB_DIR)"
+endif
 
 TCSO :=
 ifeq ($(TC_CONFIG_ATM),y)

^ permalink raw reply related

* Re: [PATCH 33/37] sound/soc: use .dev.of_node instead of .node in struct of_device
From: Mark Brown @ 2010-03-11 19:34 UTC (permalink / raw)
  To: Grant Likely
  Cc: monstr, gregkh, benh, akpm, davem, sfr, jgarzik, ben-linux, dwmw2,
	jeremy.kerr, James.Bottomley, microblaze-uclinux, linux-kernel,
	linuxppc-dev, sparclinux, linux-ide, netdev, linux-i2c,
	devicetree-discuss, linux-scsi, alsa-devel, timur, lrg
In-Reply-To: <20100311180649.4824.10368.stgit@angua>

On Thu, Mar 11, 2010 at 11:06:50AM -0700, Grant Likely wrote:
> .node is being removed
> 
> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

but please ensure that Liam and especially Timur also check this (both
CCed).

For enormous patch serieses like this it's really nice if you can ensure
that each person is only CCed on the patches that they need to review.
Much less stuff in the inbox.

> ---
> 
>  sound/soc/fsl/mpc8610_hpcd.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/sound/soc/fsl/mpc8610_hpcd.c b/sound/soc/fsl/mpc8610_hpcd.c
> index ef67d1c..d7e1b9a 100644
> --- a/sound/soc/fsl/mpc8610_hpcd.c
> +++ b/sound/soc/fsl/mpc8610_hpcd.c
> @@ -202,7 +202,7 @@ static struct snd_soc_ops mpc8610_hpcd_ops = {
>  static int mpc8610_hpcd_probe(struct of_device *ofdev,
>  	const struct of_device_id *match)
>  {
> -	struct device_node *np = ofdev->node;
> +	struct device_node *np = ofdev->dev.of_node;
>  	struct device_node *codec_np = NULL;
>  	struct device_node *guts_np = NULL;
>  	struct device_node *dma_np = NULL;
> 

^ permalink raw reply

* Re: BNX2: Kernel crashes with 2.6.31 and 2.6.31.9
From: Brian Haley @ 2010-03-11 19:40 UTC (permalink / raw)
  To: Michael Chan
  Cc: David Miller, bonbons@linux-vserver.org, Benjamin Li,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <1268332738.9775.133.camel@nseg_linux_HP1.broadcom.com>

Michael Chan wrote:
> On Thu, 2010-03-11 at 10:05 -0800, David Miller wrote:
>> From: "Michael Chan" <mchan@broadcom.com>
>> Date: Thu, 11 Mar 2010 09:49:56 -0800
>>
>>> On Wed, 2010-03-10 at 18:09 -0800, Brian Haley wrote:
>>>>>> I'm able to cause a netdev_watchdog timeout by changing the coalesce
>>>>>> settings on my bnx2, I built a little test program for it:
>>>>> Do you run this program in a loop?  How quickly do you see the NETDEV
>>>>> WATCHDOG?
>>>> It's run once, and we see it almost immediately after ETHTOOL_SCOALESCE.
>>> What's the difference between running the test program and doing ethtool
>>> -C?  Do you see the issue in either case?  I don't see the issue here
>>> with ethtool -C.
>> Probably because the independent program runs faster and thus
>> can trigger races more easily.

A customer provided some test code that triggered this hang, so
I've just been using it.  I just used ethtool and it happened too:

# ethtool -C eth0 rx-usecs 0 rx-frames 1 rx-usecs-irq 0 rx-frames-irq 1

If the interface is down, no problem.

> That's what I thought, I thought he was running it in a loop and
> triggering some race condition.  But he said he only ran it once.  His
> program gets the coalesce settings, sleeps for 5 seconds, and then sets
> the coalesce settings.

The 5 seconds was there only because this was a snippet from a larger
function that was doing a lot of ETHTOOL ioctl()'s, and I wanted to
wait between each call to see which was causing this.  Removing the
sleep() still triggers the watchdog.

>> In any case, you should be trying to reproduce his problem with
>> his test program since he went through the effort of providing
>> one.
> 
> I just tried it and cannot reproduce the problem.
> 
> Brian, please provide more information.  Thanks.

I can only reproduce this on one system out of many, so it's either a
race condition or bad hardware.  The only thing I can confirm at the
moment is that it's the code at the bottom of bnx2_set_coalesce()
that's causing it, I'm trying to go through all those codepaths now.

# lspci -vv -s 04:00
04:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
	Subsystem: Hewlett-Packard Company NC373i Integrated Multifunction Gigabit Server Adapter
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (16000ns min), Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 65
	Region 0: Memory at f6000000 (64-bit, non-prefetchable) [size=32M]
	[virtual] Expansion ROM at d0200000 [disabled] [size=2K]
	Capabilities: [40] PCI-X non-bridge device
		Command: DPERE- ERO- RBC=512 OST=8
		Status: Dev=04:00.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=512 DMOST=8 DMCRS=32 RSCEM- 266MHz- 533MHz-
	Capabilities: [48] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [50] Vital Product Data <?>
	Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
		Address: 00000000fee0100c  Data: 4182
	Kernel driver in use: bnx2
	Kernel modules: bnx2

# ethtool -i eth0
driver: bnx2
version: 2.0.2
firmware-version: 1.9.6
bus-info: 0000:04:00.0

What other info would help?

-Brian

^ permalink raw reply

* Re: BNX2: Kernel crashes with 2.6.31 and 2.6.31.9
From: Michael Chan @ 2010-03-11 19:47 UTC (permalink / raw)
  To: Brian Haley
  Cc: David Miller, bonbons@linux-vserver.org, Benjamin Li,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <4B994714.2040108@hp.com>


On Thu, 2010-03-11 at 11:40 -0800, Brian Haley wrote:
> I can only reproduce this on one system out of many, so it's either a
> race condition or bad hardware.  The only thing I can confirm at the
> moment is that it's the code at the bottom of bnx2_set_coalesce()
> that's causing it, I'm trying to go through all those codepaths now.
> 

The NETDEV WATCHDOG is caused by stopping the TX queues with
->trans_start older than dev->watchdog_timeo which is set to 5 seconds
in bnx2.  Please try this patch below to update the ->trans_start first
before stopping the TX queues:

diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index d3f739a..c0f4aa7 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -656,7 +656,6 @@ bnx2_netif_stop(struct bnx2 *bp)
 		int i;
 
 		bnx2_napi_disable(bp);
-		netif_tx_disable(bp->dev);
 		/* prevent tx timeout */
 		for (i = 0; i <  bp->dev->num_tx_queues; i++) {
 			struct netdev_queue *txq;
@@ -664,6 +663,7 @@ bnx2_netif_stop(struct bnx2 *bp)
 			txq = netdev_get_tx_queue(bp->dev, i);
 			txq->trans_start = jiffies;
 		}
+		netif_tx_disable(bp->dev);
 	}
 	bnx2_disable_int_sync(bp);
 }

^ permalink raw reply related

* [net-next] IFLA_STATS64, tcp cong modules
From: Jan Engelhardt @ 2010-03-11 19:57 UTC (permalink / raw)
  To: davem; +Cc: netdev


Hi!


Here are three simple patches for net-next aka to-be-2.6.35.

The following changes since commit 3a5b27bf6f29574d667230c7e76e4b83fe3014e0:
  Linus Torvalds (1):
        Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux

are available in the git repository at:

  git://dev.medozas.de/linux net

Jan Engelhardt (3):
      net: tcp: make hybla selectable as default congestion module
      net: tcp: make veno selectable as default congestion module
      net: core: add IFLA_STATS64 support

 include/linux/if_link.h |   33 +++++++++++++++++++++++++++++++++
 net/core/rtnetlink.c    |   42 +++++++++++++++++++++++++++++++++++++++++-
 net/ipv4/Kconfig        |    8 ++++++++
 3 files changed, 82 insertions(+), 1 deletions(-)

^ permalink raw reply

* [PATCH 1/3] net: tcp: make hybla selectable as default congestion module
From: Jan Engelhardt @ 2010-03-11 19:57 UTC (permalink / raw)
  To: davem; +Cc: netdev
In-Reply-To: <1268337450-6749-1-git-send-email-jengelh@medozas.de>

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 net/ipv4/Kconfig |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 0c94a1a..731c47b 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -587,6 +587,9 @@ choice
 	config DEFAULT_HTCP
 		bool "Htcp" if TCP_CONG_HTCP=y
 
+	config DEFAULT_HYBLA
+		bool "Hybla" if TCP_CONG_HYBLA=y
+
 	config DEFAULT_VEGAS
 		bool "Vegas" if TCP_CONG_VEGAS=y
 
@@ -610,6 +613,7 @@ config DEFAULT_TCP_CONG
 	default "bic" if DEFAULT_BIC
 	default "cubic" if DEFAULT_CUBIC
 	default "htcp" if DEFAULT_HTCP
+	default "hybla" if DEFAULT_HYBLA
 	default "vegas" if DEFAULT_VEGAS
 	default "westwood" if DEFAULT_WESTWOOD
 	default "reno" if DEFAULT_RENO
-- 
1.7.0


^ permalink raw reply related

* [PATCH 2/3] net: tcp: make veno selectable as default congestion module
From: Jan Engelhardt @ 2010-03-11 19:57 UTC (permalink / raw)
  To: davem; +Cc: netdev
In-Reply-To: <1268337450-6749-1-git-send-email-jengelh@medozas.de>

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 net/ipv4/Kconfig |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 731c47b..c9a1c68 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -593,6 +593,9 @@ choice
 	config DEFAULT_VEGAS
 		bool "Vegas" if TCP_CONG_VEGAS=y
 
+	config DEFAULT_VENO
+		bool "Veno" if TCP_CONG_VENO=y
+
 	config DEFAULT_WESTWOOD
 		bool "Westwood" if TCP_CONG_WESTWOOD=y
 
@@ -616,6 +619,7 @@ config DEFAULT_TCP_CONG
 	default "hybla" if DEFAULT_HYBLA
 	default "vegas" if DEFAULT_VEGAS
 	default "westwood" if DEFAULT_WESTWOOD
+	default "veno" if DEFAULT_VENO
 	default "reno" if DEFAULT_RENO
 	default "cubic"
 
-- 
1.7.0


^ permalink raw reply related

* [PATCH 3/3] net: core: add IFLA_STATS64 support
From: Jan Engelhardt @ 2010-03-11 19:57 UTC (permalink / raw)
  To: davem; +Cc: netdev
In-Reply-To: <1268337450-6749-1-git-send-email-jengelh@medozas.de>

`ip -s link` shows interface counters truncated to 32 bit. This is
because interface statistics are transported only in 32-bit quantity
to userspace. This commit adds a new IFLA_STATS64 attribute that
exports them in full 64 bit.

References: http://lkml.indiana.edu/hypermail/linux/kernel/0307.3/0215.html
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 include/linux/if_link.h |   33 +++++++++++++++++++++++++++++++++
 net/core/rtnetlink.c    |   42 +++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 74 insertions(+), 1 deletions(-)

diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index c9bf92c..cfd420b 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -37,6 +37,38 @@ struct rtnl_link_stats {
 	__u32	tx_compressed;
 };
 
+struct rtnl_link_stats64 {
+	__u64	rx_packets;		/* total packets received	*/
+	__u64	tx_packets;		/* total packets transmitted	*/
+	__u64	rx_bytes;		/* total bytes received 	*/
+	__u64	tx_bytes;		/* total bytes transmitted	*/
+	__u64	rx_errors;		/* bad packets received		*/
+	__u64	tx_errors;		/* packet transmit problems	*/
+	__u64	rx_dropped;		/* no space in linux buffers	*/
+	__u64	tx_dropped;		/* no space available in linux	*/
+	__u64	multicast;		/* multicast packets received	*/
+	__u64	collisions;
+
+	/* detailed rx_errors: */
+	__u64	rx_length_errors;
+	__u64	rx_over_errors;		/* receiver ring buff overflow	*/
+	__u64	rx_crc_errors;		/* recved pkt with crc error	*/
+	__u64	rx_frame_errors;	/* recv'd frame alignment error */
+	__u64	rx_fifo_errors;		/* recv'r fifo overrun		*/
+	__u64	rx_missed_errors;	/* receiver missed packet	*/
+
+	/* detailed tx_errors */
+	__u64	tx_aborted_errors;
+	__u64	tx_carrier_errors;
+	__u64	tx_fifo_errors;
+	__u64	tx_heartbeat_errors;
+	__u64	tx_window_errors;
+
+	/* for cslip etc */
+	__u64	rx_compressed;
+	__u64	tx_compressed;
+};
+
 /* The struct should be in sync with struct ifmap */
 struct rtnl_link_ifmap {
 	__u64	mem_start;
@@ -83,6 +115,7 @@ enum {
 	IFLA_VF_VLAN,
 	IFLA_VF_TX_RATE,	/* TX Bandwidth Allocation */
 	IFLA_VFINFO,
+	IFLA_STATS64,
 	__IFLA_MAX
 };
 
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 4568120..e1121f0 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -600,7 +600,39 @@ static void copy_rtnl_link_stats(struct rtnl_link_stats *a,
 
 	a->rx_compressed = b->rx_compressed;
 	a->tx_compressed = b->tx_compressed;
-};
+}
+
+static void copy_rtnl_link_stats64(struct rtnl_link_stats64 *a,
+				   const struct net_device_stats *b)
+{
+	a->rx_packets = b->rx_packets;
+	a->tx_packets = b->tx_packets;
+	a->rx_bytes = b->rx_bytes;
+	a->tx_bytes = b->tx_bytes;
+	a->rx_errors = b->rx_errors;
+	a->tx_errors = b->tx_errors;
+	a->rx_dropped = b->rx_dropped;
+	a->tx_dropped = b->tx_dropped;
+
+	a->multicast = b->multicast;
+	a->collisions = b->collisions;
+
+	a->rx_length_errors = b->rx_length_errors;
+	a->rx_over_errors = b->rx_over_errors;
+	a->rx_crc_errors = b->rx_crc_errors;
+	a->rx_frame_errors = b->rx_frame_errors;
+	a->rx_fifo_errors = b->rx_fifo_errors;
+	a->rx_missed_errors = b->rx_missed_errors;
+
+	a->tx_aborted_errors = b->tx_aborted_errors;
+	a->tx_carrier_errors = b->tx_carrier_errors;
+	a->tx_fifo_errors = b->tx_fifo_errors;
+	a->tx_heartbeat_errors = b->tx_heartbeat_errors;
+	a->tx_window_errors = b->tx_window_errors;
+
+	a->rx_compressed = b->rx_compressed;
+	a->tx_compressed = b->tx_compressed;
+}
 
 static inline int rtnl_vfinfo_size(const struct net_device *dev)
 {
@@ -698,6 +730,14 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 	stats = dev_get_stats(dev);
 	copy_rtnl_link_stats(nla_data(attr), stats);
 
+	attr = nla_reserve(skb, IFLA_STATS64,
+			sizeof(struct rtnl_link_stats64));
+	if (attr == NULL)
+		goto nla_put_failure;
+
+	stats = dev_get_stats(dev);
+	copy_rtnl_link_stats64(nla_data(attr), stats);
+
 	if (dev->netdev_ops->ndo_get_vf_config && dev->dev.parent) {
 		int i;
 		struct ifla_vf_info ivi;
-- 
1.7.0


^ permalink raw reply related

* Re: [PATCH 25/37] drivers/infiniband: use .dev.of_node instead of .node in struct of_device
From: Roland Dreier @ 2010-03-11 19:57 UTC (permalink / raw)
  To: Grant Likely
  Cc: Hoang-Nam Nguyen, Christoph Raisch, monstr, gregkh, benh, akpm,
	davem, sfr, jgarzik, ben-linux, dwmw2, jeremy.kerr,
	James.Bottomley, broonie, microblaze-uclinux, linux-kernel,
	linuxppc-dev, sparclinux, linux-ide, netdev, linux-i2c,
	devicetree-discuss, linux-scsi, alsa-devel
In-Reply-To: <20100311180605.4824.3613.stgit@angua>

Seems fine... adding EHCA guys just to make sure.

 > .node is being removed
 > 
 > Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
 > ---
 > 
 >  drivers/infiniband/hw/ehca/ehca_main.c |   11 ++++++-----
 >  1 files changed, 6 insertions(+), 5 deletions(-)
 > 
 > diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
 > index 129a6be..2639185 100644
 > --- a/drivers/infiniband/hw/ehca/ehca_main.c
 > +++ b/drivers/infiniband/hw/ehca/ehca_main.c
 > @@ -291,8 +291,9 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
 >  	};
 >  
 >  	ehca_gen_dbg("Probing adapter %s...",
 > -		     shca->ofdev->node->full_name);
 > -	loc_code = of_get_property(shca->ofdev->node, "ibm,loc-code", NULL);
 > +		     shca->ofdev->dev.of_node->full_name);
 > +	loc_code = of_get_property(shca->ofdev->dev.of_node, "ibm,loc-code",
 > +				   NULL);
 >  	if (loc_code)
 >  		ehca_gen_dbg(" ... location lode=%s", loc_code);
 >  
 > @@ -720,16 +721,16 @@ static int __devinit ehca_probe(struct of_device *dev,
 >  	int ret, i, eq_size;
 >  	unsigned long flags;
 >  
 > -	handle = of_get_property(dev->node, "ibm,hca-handle", NULL);
 > +	handle = of_get_property(dev->dev.of_node, "ibm,hca-handle", NULL);
 >  	if (!handle) {
 >  		ehca_gen_err("Cannot get eHCA handle for adapter: %s.",
 > -			     dev->node->full_name);
 > +			     dev->dev.of_node->full_name);
 >  		return -ENODEV;
 >  	}
 >  
 >  	if (!(*handle)) {
 >  		ehca_gen_err("Wrong eHCA handle for adapter: %s.",
 > -			     dev->node->full_name);
 > +			     dev->dev.of_node->full_name);
 >  		return -ENODEV;
 >  	}
 >  
 > 
 > -- 
Roland Dreier  <rolandd@cisco.com>
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html

^ permalink raw reply

* iproute2: IFLA_STATS64
From: Jan Engelhardt @ 2010-03-11 20:00 UTC (permalink / raw)
  To: stephen.hemminger; +Cc: davem, netdev



Just a small compose filler here to mark it as iproute2 stuff.

---
 include/linux/if_link.h |   33 +++++++++++++++++++++++
 ip/ipaddress.c          |   55 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 87 insertions(+), 1 deletions(-)

^ permalink raw reply

* [PATCH] Add IFLA_STATS64 support
From: Jan Engelhardt @ 2010-03-11 20:00 UTC (permalink / raw)
  To: stephen.hemminger; +Cc: davem, netdev
In-Reply-To: <1268337635-7031-1-git-send-email-jengelh@medozas.de>

`ip -s link` shows interface counters truncated to 32 bit. This is
because interface statistics are transported only in 32-bit quantity
to userspace. This commit adds recognition for the new IFLA_STATS64
attribute that exports them in full 64 bit.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 include/linux/if_link.h |   33 ++++++++++++++++++++++++++++
 ip/ipaddress.c          |   55 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 87 insertions(+), 1 deletions(-)

diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 5110b96..8772719 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -37,6 +37,38 @@ struct rtnl_link_stats {
 	__u32	tx_compressed;
 };
 
+struct rtnl_link_stats64 {
+	__u64	rx_packets;		/* total packets received	*/
+	__u64	tx_packets;		/* total packets transmitted	*/
+	__u64	rx_bytes;		/* total bytes received 	*/
+	__u64	tx_bytes;		/* total bytes transmitted	*/
+	__u64	rx_errors;		/* bad packets received		*/
+	__u64	tx_errors;		/* packet transmit problems	*/
+	__u64	rx_dropped;		/* no space in linux buffers	*/
+	__u64	tx_dropped;		/* no space available in linux	*/
+	__u64	multicast;		/* multicast packets received	*/
+	__u64	collisions;
+
+	/* detailed rx_errors: */
+	__u64	rx_length_errors;
+	__u64	rx_over_errors;		/* receiver ring buff overflow	*/
+	__u64	rx_crc_errors;		/* recved pkt with crc error	*/
+	__u64	rx_frame_errors;	/* recv'd frame alignment error */
+	__u64	rx_fifo_errors;		/* recv'r fifo overrun		*/
+	__u64	rx_missed_errors;	/* receiver missed packet	*/
+
+	/* detailed tx_errors */
+	__u64	tx_aborted_errors;
+	__u64	tx_carrier_errors;
+	__u64	tx_fifo_errors;
+	__u64	tx_heartbeat_errors;
+	__u64	tx_window_errors;
+
+	/* for cslip etc */
+	__u64	rx_compressed;
+	__u64	tx_compressed;
+};
+
 /* The struct should be in sync with struct ifmap */
 struct rtnl_link_ifmap {
 	__u64	mem_start;
@@ -83,6 +115,7 @@ enum {
 	IFLA_VF_VLAN,
 	IFLA_VF_TX_RATE,	/* TX Bandwidth Allocation */
 	IFLA_VFINFO,
+	IFLA_STATS64,
 	__IFLA_MAX
 };
 
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 48f7b1e..33fc606 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -284,7 +284,60 @@ int print_linkinfo(const struct sockaddr_nl *who,
 		fprintf(fp,"\n    alias %s", 
 			(const char *) RTA_DATA(tb[IFLA_IFALIAS]));
 
-	if (do_link && tb[IFLA_STATS] && show_stats) {
+	if (do_link && tb[IFLA_STATS64] && show_stats) {
+		struct rtnl_link_stats64 slocal;
+		struct rtnl_link_stats64 *s = RTA_DATA(tb[IFLA_STATS64]);
+		if (((unsigned long)s) & (sizeof(unsigned long)-1)) {
+			memcpy(&slocal, s, sizeof(slocal));
+			s = &slocal;
+		}
+		fprintf(fp, "%s", _SL_);
+		fprintf(fp, "    RX: bytes  packets  errors  dropped overrun mcast   %s%s",
+			s->rx_compressed ? "compressed" : "", _SL_);
+		fprintf(fp, "    %-10llu %-8llu %-7llu %-7llu %-7llu %-7llu",
+			(unsigned long long)s->rx_bytes,
+			(unsigned long long)s->rx_packets,
+			(unsigned long long)s->rx_errors,
+			(unsigned long long)s->rx_dropped,
+			(unsigned long long)s->rx_over_errors,
+			(unsigned long long)s->multicast);
+		if (s->rx_compressed)
+			fprintf(fp, " %-7llu",
+				(unsigned long long)s->rx_compressed);
+		if (show_stats > 1) {
+			fprintf(fp, "%s", _SL_);
+			fprintf(fp, "    RX errors: length  crc     frame   fifo    missed%s", _SL_);
+			fprintf(fp, "               %-7llu  %-7llu %-7llu %-7llu %-7llu",
+				(unsigned long long)s->rx_length_errors,
+				(unsigned long long)s->rx_crc_errors,
+				(unsigned long long)s->rx_frame_errors,
+				(unsigned long long)s->rx_fifo_errors,
+				(unsigned long long)s->rx_missed_errors);
+		}
+		fprintf(fp, "%s", _SL_);
+		fprintf(fp, "    TX: bytes  packets  errors  dropped carrier collsns %s%s",
+			s->tx_compressed ? "compressed" : "", _SL_);
+		fprintf(fp, "    %-10llu %-8llu %-7llu %-7llu %-7llu %-7llu",
+			(unsigned long long)s->tx_bytes,
+			(unsigned long long)s->tx_packets,
+			(unsigned long long)s->tx_errors,
+			(unsigned long long)s->tx_dropped,
+			(unsigned long long)s->tx_carrier_errors,
+			(unsigned long long)s->collisions);
+		if (s->tx_compressed)
+			fprintf(fp, " %-7llu",
+				(unsigned long long)s->tx_compressed);
+		if (show_stats > 1) {
+			fprintf(fp, "%s", _SL_);
+			fprintf(fp, "    TX errors: aborted fifo    window  heartbeat%s", _SL_);
+			fprintf(fp, "               %-7llu  %-7llu %-7llu %-7llu",
+				(unsigned long long)s->tx_aborted_errors,
+				(unsigned long long)s->tx_fifo_errors,
+				(unsigned long long)s->tx_window_errors,
+				(unsigned long long)s->tx_heartbeat_errors);
+		}
+	}
+	if (do_link && !tb[IFLA_STATS64] && tb[IFLA_STATS] && show_stats) {
 		struct rtnl_link_stats slocal;
 		struct rtnl_link_stats *s = RTA_DATA(tb[IFLA_STATS]);
 		if (((unsigned long)s) & (sizeof(unsigned long)-1)) {
-- 
1.7.0


^ permalink raw reply related

* Re: [PATCH 1/3] net: tcp: make hybla selectable as default congestion module
From: Stephen Hemminger @ 2010-03-11 20:10 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: davem, netdev
In-Reply-To: <1268337450-6749-2-git-send-email-jengelh@medozas.de>

On Thu, 11 Mar 2010 20:57:27 +0100
Jan Engelhardt <jengelh@medozas.de> wrote:

> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
> ---
>  net/ipv4/Kconfig |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
> index 0c94a1a..731c47b 100644
> --- a/net/ipv4/Kconfig
> +++ b/net/ipv4/Kconfig
> @@ -587,6 +587,9 @@ choice
>  	config DEFAULT_HTCP
>  		bool "Htcp" if TCP_CONG_HTCP=y
>  
> +	config DEFAULT_HYBLA
> +		bool "Hybla" if TCP_CONG_HYBLA=y
> +
>  	config DEFAULT_VEGAS
>  		bool "Vegas" if TCP_CONG_VEGAS=y
>  
> @@ -610,6 +613,7 @@ config DEFAULT_TCP_CONG
>  	default "bic" if DEFAULT_BIC
>  	default "cubic" if DEFAULT_CUBIC
>  	default "htcp" if DEFAULT_HTCP
> +	default "hybla" if DEFAULT_HYBLA
>  	default "vegas" if DEFAULT_VEGAS
>  	default "westwood" if DEFAULT_WESTWOOD
>  	default "reno" if DEFAULT_RENO

Hybla seems too experimental to be made default.

^ permalink raw reply

* Re: [PATCH 1/3] net: tcp: make hybla selectable as default congestion module
From: Jan Engelhardt @ 2010-03-11 20:19 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: davem, netdev
In-Reply-To: <20100311121032.3b9213e1@nehalam>


On Thursday 2010-03-11 21:10, Stephen Hemminger wrote:
>> 
>> diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
>> index 0c94a1a..731c47b 100644
>> --- a/net/ipv4/Kconfig
>> +++ b/net/ipv4/Kconfig
>> @@ -587,6 +587,9 @@ choice
>>  	config DEFAULT_HTCP
>>  		bool "Htcp" if TCP_CONG_HTCP=y
>>  
>> +	config DEFAULT_HYBLA
>> +		bool "Hybla" if TCP_CONG_HYBLA=y
>> +
>>  	config DEFAULT_VEGAS
>>  		bool "Vegas" if TCP_CONG_VEGAS=y
>>  
>> @@ -610,6 +613,7 @@ config DEFAULT_TCP_CONG
>>  	default "bic" if DEFAULT_BIC
>>  	default "cubic" if DEFAULT_CUBIC
>>  	default "htcp" if DEFAULT_HTCP
>> +	default "hybla" if DEFAULT_HYBLA
>>  	default "vegas" if DEFAULT_VEGAS
>>  	default "westwood" if DEFAULT_WESTWOOD
>>  	default "reno" if DEFAULT_RENO
>
>Hybla seems too experimental to be made default.

I run Hybla since 2006 on anything that is not connected via
wireless and I did not notice any pressing issues.

Also, the patch does not make hybla the default default (reno remains),
just the default once explicitly selected in a two-step process:

1. CONFIG_TCP_CONG_HYBLA=y
*and*
2. choosing Hybla in CONFIG_DEFAULT_TCP_CONG

I think that is enough of a "safety measure" against any potential
unsuspecting users.

^ permalink raw reply

* Re: [PATCH 3/3] net: core: add IFLA_STATS64 support
From: Eric Dumazet @ 2010-03-11 20:19 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: davem, netdev
In-Reply-To: <1268337450-6749-4-git-send-email-jengelh@medozas.de>

Le jeudi 11 mars 2010 à 20:57 +0100, Jan Engelhardt a écrit :
> `ip -s link` shows interface counters truncated to 32 bit. This is
> because interface statistics are transported only in 32-bit quantity
> to userspace. This commit adds a new IFLA_STATS64 attribute that
> exports them in full 64 bit.
> 
> References: http://lkml.indiana.edu/hypermail/linux/kernel/0307.3/0215.html

oh oh, back to  2003 :)

> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
> ---
>  
>  static inline int rtnl_vfinfo_size(const struct net_device *dev)
>  {
> @@ -698,6 +730,14 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
>  	stats = dev_get_stats(dev);

OK, stats is up2date with device stats

>  	copy_rtnl_link_stats(nla_data(attr), stats);
>  
> +	attr = nla_reserve(skb, IFLA_STATS64,
> +			sizeof(struct rtnl_link_stats64));
> +	if (attr == NULL)
> +		goto nla_put_failure;
> +
> +	stats = dev_get_stats(dev);

Why calling dev_get_stats(dev) a second time ?
Its can be pretty expensive on some devices.

> +	copy_rtnl_link_stats64(nla_data(attr), stats);
> +
>  	if (dev->netdev_ops->ndo_get_vf_config && dev->dev.parent) {
>  		int i;
>  		struct ifla_vf_info ivi;
> -- 



^ permalink raw reply

* Re: [PATCH 3/3] net: core: add IFLA_STATS64 support
From: Stephen Hemminger @ 2010-03-11 20:12 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: davem, netdev
In-Reply-To: <1268337450-6749-4-git-send-email-jengelh@medozas.de>

On Thu, 11 Mar 2010 20:57:29 +0100
Jan Engelhardt <jengelh@medozas.de> wrote:

> `ip -s link` shows interface counters truncated to 32 bit. This is
> because interface statistics are transported only in 32-bit quantity
> to userspace. This commit adds a new IFLA_STATS64 attribute that
> exports them in full 64 bit.
> 
> References: http://lkml.indiana.edu/hypermail/linux/kernel/0307.3/0215.html
> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
> 

What is the point since net_device_stats has only 32 bit counters.
The last time this came up the issue was is that is not possible
to atomically increment a 64 bit counter on most 32 bit platforms.

^ permalink raw reply

* [PATCH] ip: correctly report tunnel link type
From: Jan Engelhardt @ 2010-03-11 20:22 UTC (permalink / raw)
  To: stephen.hemminger; +Cc: davem, netdev

Up until now, "tun" tunnels were displayed as link/[65534].

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 lib/ll_types.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/lib/ll_types.c b/lib/ll_types.c
index 9d75bd2..846cdb0 100644
--- a/lib/ll_types.c
+++ b/lib/ll_types.c
@@ -125,6 +125,9 @@ __PF(IEEE80211_PRISM,ieee802.11/prism)
 #ifdef ARPHRD_IEEE80211_RADIOTAP
 __PF(IEEE80211_RADIOTAP,ieee802.11/radiotap)
 #endif
+#ifdef ARPHRD_NONE
+__PF(NONE, none)
+#endif
 #ifdef ARPHRD_VOID
 __PF(VOID,void)
 #endif
-- 
1.7.0


^ permalink raw reply related

* Re: [PATCH 3/3] net: core: add IFLA_STATS64 support
From: David Miller @ 2010-03-11 20:26 UTC (permalink / raw)
  To: shemminger; +Cc: jengelh, netdev
In-Reply-To: <20100311121239.14944fd5@nehalam>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Thu, 11 Mar 2010 12:12:39 -0800

> On Thu, 11 Mar 2010 20:57:29 +0100
> Jan Engelhardt <jengelh@medozas.de> wrote:
> 
>> `ip -s link` shows interface counters truncated to 32 bit. This is
>> because interface statistics are transported only in 32-bit quantity
>> to userspace. This commit adds a new IFLA_STATS64 attribute that
>> exports them in full 64 bit.
>> 
>> References: http://lkml.indiana.edu/hypermail/linux/kernel/0307.3/0215.html
>> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
>> 
> 
> What is the point since net_device_stats has only 32 bit counters.
> The last time this came up the issue was is that is not possible
> to atomically increment a 64 bit counter on most 32 bit platforms.

On 64-bit it has 64-bit counters, yet we only report 32-bit
counters to userspace via netlink even in that case.

That's what Jan is fixing here.

^ permalink raw reply

* [PATCH v2] iproute2: detect iptables modules dir in configure.
From: Andreas Henriksson @ 2010-03-11 20:54 UTC (permalink / raw)
  To: shemminger; +Cc: netdev
In-Reply-To: <20100311190740.GA28425@amd64.fatal.se>

Try to automatically detect iptables modules directory.

Make the configure script look for iptables modules.
This also makes it possible to specify it on the
command line while building via "make IPT_LIB_DIR=/foo/bar".

Signed-off-by: Andreas Henriksson <andreas@fatal.se>

---

Possibly the ifndef check in include/iptables.h
should be turned into an #error to force the person
building to manually specify it instead of just silently
using a probably incorrect path.

This is version 2 of the patch,
in v1 the escaping of the "'s in tc/Makefile was forgotten.


diff --git a/configure b/configure
index 92a0b48..600fa96 100755
--- a/configure
+++ b/configure
@@ -3,6 +3,8 @@
 #
 INCLUDE=${1:-"$PWD/include"}
 
+TABLES=
+
 check_atm()
 {
 cat >/tmp/atmtest.c <<EOF
@@ -139,9 +141,28 @@ check_ipt()
 	if ! grep TC_CONFIG_XT Config > /dev/null
 	then
 		echo "using iptables"
+		TABLES="iptables"
+	else
+		TABLES="xtables"
 	fi
 }
 
+check_ipt_lib_dir()
+{
+	IPT_LIB_DIR=""
+	for dir in /lib /usr/lib /usr/local/lib
+	do
+		for file in $dir/$TABLES/lib*t_*so ; do
+			if [ -f $file ]; then
+				echo $dir/$TABLES
+				echo "IPT_LIB_DIR:=$dir/$TABLES" >> Config
+				return
+			fi
+		done
+	done
+	echo "not found!"
+}
+
 echo "# Generated config based on" $INCLUDE >Config
 
 echo "TC schedulers"
@@ -155,3 +176,5 @@ check_xt_old
 check_xt_old_internal_h
 check_ipt
 
+echo -n "iptables modules directory: "
+check_ipt_lib_dir
diff --git a/tc/Makefile b/tc/Makefile
index 0b5d7d3..805c108 100644
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -77,6 +77,9 @@ TCLIB += tc_estimator.o
 TCLIB += tc_stab.o
 
 CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PROB
+ifneq ($(IPT_LIB_DIR),)
+	CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
+endif
 
 TCSO :=
 ifeq ($(TC_CONFIG_ATM),y)

^ permalink raw reply related

* Re: [PATCH 3/3] net: core: add IFLA_STATS64 support
From: Jan Engelhardt @ 2010-03-11 21:07 UTC (permalink / raw)
  To: David Miller; +Cc: shemminger, netdev
In-Reply-To: <20100311.122639.258785986.davem@davemloft.net>


On Thursday 2010-03-11 21:26, David Miller wrote:
>> On Thu, 11 Mar 2010 20:57:29 +0100
>> Jan Engelhardt <jengelh@medozas.de> wrote:
>> 
>>> `ip -s link` shows interface counters truncated to 32 bit. This is
>>> because interface statistics are transported only in 32-bit quantity
>>> to userspace. This commit adds a new IFLA_STATS64 attribute that
>>> exports them in full 64 bit.
>>> 
>>> References: http://lkml.indiana.edu/hypermail/linux/kernel/0307.3/0215.html
>>> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
>>> 
>> 
>> What is the point since net_device_stats has only 32 bit counters.
>> The last time this came up the issue was is that is not possible
>> to atomically increment a 64 bit counter on most 32 bit platforms.
>
>On 64-bit it has 64-bit counters, yet we only report 32-bit
>counters to userspace via netlink even in that case.
>
>That's what Jan is fixing here.

On a side note, is it perhaps possible to use jiffies-like magic to
also have 64-bit counters on 32-bit, or is that still too expensive?

^ permalink raw reply

* Re: [PATCH] iproute2: detect iptables modules dir in configure.
From: Andreas Henriksson @ 2010-03-11 20:47 UTC (permalink / raw)
  To: shemminger; +Cc: netdev
In-Reply-To: <20100311190740.GA28425@amd64.fatal.se>

On tor, 2010-03-11 at 20:07 +0100, Andreas Henriksson wrote:
[...]
> --- a/tc/Makefile
> +++ b/tc/Makefile
> @@ -77,6 +77,9 @@ TCLIB += tc_estimator.o
>  TCLIB += tc_stab.o
>  
>  CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PROB
> +ifneq ($(IPT_LIB_DIR),)
> +	CFLAGS += -DIPT_LIB_DIR="$(IPT_LIB_DIR)"
> +endif
>  

Sorry, I missed to escape the "'s above. I'll send a v2 in a few
seconds.



-- 
Regards,
Andreas Henriksson

^ permalink raw reply

* Re: [PATCH 33/37] sound/soc: use .dev.of_node instead of .node in struct of_device
From: Grant Likely @ 2010-03-11 21:22 UTC (permalink / raw)
  To: Mark Brown
  Cc: monstr, gregkh, benh, akpm, davem, sfr, jgarzik, ben-linux, dwmw2,
	jeremy.kerr, James.Bottomley, microblaze-uclinux, linux-kernel,
	linuxppc-dev, sparclinux, linux-ide, netdev, linux-i2c,
	devicetree-discuss, linux-scsi, alsa-devel, timur, lrg
In-Reply-To: <20100311193458.GA13289@opensource.wolfsonmicro.com>

On Thu, Mar 11, 2010 at 12:34 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Thu, Mar 11, 2010 at 11:06:50AM -0700, Grant Likely wrote:
>> .node is being removed
>>
>> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
>
> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
>
> but please ensure that Liam and especially Timur also check this (both
> CCed).
>
> For enormous patch serieses like this it's really nice if you can ensure
> that each person is only CCed on the patches that they need to review.
> Much less stuff in the inbox.

Yeah, sorry about that (and to everyone receiving this thread, I'm
really sorry.  I won't do it again).  I've already been yelled at for
that.  What happened is that on a previous series I was yelled at for
not sending all patches to everyone (so that the patches could be
reviewed in context).  So, naturally, I made sure to include everyone
on the whole series this time....  doh.

Next time I post I'll constrain it to small chunks.

Thanks for the review.

g.

^ 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