* Re: [PATCH] sctp: user perfect name for Delayed SACK Timer option
From: David Miller @ 2011-01-19 7:39 UTC (permalink / raw)
To: shanwei; +Cc: vladislav.yasevich, yjwei, netdev, linux-sctp
In-Reply-To: <4D3693CA.40508@cn.fujitsu.com>
From: Shan Wei <shanwei@cn.fujitsu.com>
Date: Wed, 19 Jan 2011 15:33:30 +0800
> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
> not SCTP_DELAYED_ACK.
>
> Reference:
> 8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK)
> (http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25)
>
>
> Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
You can't make this change, you'll break applications using the
existing definition.
^ permalink raw reply
* Re: [PATCH] sctp: user perfect name for Delayed SACK Timer option
From: Shan Wei @ 2011-01-19 8:17 UTC (permalink / raw)
To: David Miller; +Cc: vladislav.yasevich, yjwei, netdev, linux-sctp
In-Reply-To: <20110118.233932.91327830.davem@davemloft.net>
David Miller wrote, at 01/19/2011 03:39 PM:
> From: Shan Wei <shanwei@cn.fujitsu.com>
> Date: Wed, 19 Jan 2011 15:33:30 +0800
>
>> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
>> not SCTP_DELAYED_ACK.
>>
>> Reference:
>> 8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK)
>> (http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25)
>>
>>
>> Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
>
> You can't make this change, you'll break applications using the
> existing definition.
No documents guide user to use SCTP_DELAYED_ACK option.
I double that there is no applications using this option.
If, there be. How about keeping this be concomitant with SCTP_DELAYED_SACK?
--
Best Regards
-----
Shan Wei
^ permalink raw reply
* Re: [PATCH] sctp: user perfect name for Delayed SACK Timer option
From: Wei Yongjun @ 2011-01-19 8:22 UTC (permalink / raw)
To: Shan Wei; +Cc: David Miller, vladislav.yasevich, netdev, linux-sctp
In-Reply-To: <4D369E03.2000109@cn.fujitsu.com>
> David Miller wrote, at 01/19/2011 03:39 PM:
>> From: Shan Wei <shanwei@cn.fujitsu.com>
>> Date: Wed, 19 Jan 2011 15:33:30 +0800
>>
>>> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
>>> not SCTP_DELAYED_ACK.
>>>
>>> Reference:
>>> 8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK)
>>> (http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25)
>>>
>>>
>>> Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
>> You can't make this change, you'll break applications using the
>> existing definition.
> No documents guide user to use SCTP_DELAYED_ACK option.
> I double that there is no applications using this option.
>
> If, there be. How about keeping this be concomitant with SCTP_DELAYED_SACK?
You sould do as the same as the following patch, which has fixed the same
problem of lksctp-tools, but not lksctp:
http://git.kernel.org/?p=linux/kernel/git/vxy/lksctp-tools.git;a=commit;h=ecdc6c0d3c3e40843916427923a45a93d748c1c6
^ permalink raw reply
* [PATCH-v2] sctp: user perfect name for Delayed SACK Timer option
From: Shan Wei @ 2011-01-19 8:39 UTC (permalink / raw)
To: David Miller, Vlad Yasevich, 魏勇军,
Network-Maillist
In-Reply-To: <4D3693CA.40508@cn.fujitsu.com>
The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
not SCTP_DELAYED_ACK.
Left SCTP_DELAYED_ACK be concomitant with SCTP_DELAYED_SACK,
for making compatibility with existing applications.
Reference:
8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK)
(http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25)
Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
---
include/net/sctp/user.h | 1 +
net/sctp/socket.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h
index 2b2769c..92eedc0 100644
--- a/include/net/sctp/user.h
+++ b/include/net/sctp/user.h
@@ -78,6 +78,7 @@ typedef __s32 sctp_assoc_t;
#define SCTP_GET_PEER_ADDR_INFO 15
#define SCTP_DELAYED_ACK_TIME 16
#define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
+#define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
#define SCTP_CONTEXT 17
#define SCTP_FRAGMENT_INTERLEAVE 18
#define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index a09b0dd..8e02550 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3428,7 +3428,7 @@ SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname,
retval = sctp_setsockopt_peer_addr_params(sk, optval, optlen);
break;
- case SCTP_DELAYED_ACK:
+ case SCTP_DELAYED_SACK:
retval = sctp_setsockopt_delayed_ack(sk, optval, optlen);
break;
case SCTP_PARTIAL_DELIVERY_POINT:
@@ -5333,7 +5333,7 @@ SCTP_STATIC int sctp_getsockopt(struct sock *sk, int level, int optname,
retval = sctp_getsockopt_peer_addr_params(sk, len, optval,
optlen);
break;
- case SCTP_DELAYED_ACK:
+ case SCTP_DELAYED_SACK:
retval = sctp_getsockopt_delayed_ack(sk, len, optval,
optlen);
break;
--
1.6.3.3
^ permalink raw reply related
* Re: [PATCH-v2] sctp: user perfect name for Delayed SACK Timer option
From: Wei Yongjun @ 2011-01-19 8:48 UTC (permalink / raw)
To: Shan Wei; +Cc: David Miller, Vlad Yasevich, Network-Maillist, SCTP-Maillist
In-Reply-To: <4D36A324.4040307@cn.fujitsu.com>
> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
> not SCTP_DELAYED_ACK.
>
> Left SCTP_DELAYED_ACK be concomitant with SCTP_DELAYED_SACK,
> for making compatibility with existing applications.
SCTP_DELAYED_ACK is introduced by my typo when change it to
API compliance two years ago. So:
Acked-by: Wei Yongjun <yjwei@cn.fujitsu.com>
^ permalink raw reply
* Re: [PATCH-v2] sctp: user perfect name for Delayed SACK Timer option
From: Shan Wei @ 2011-01-19 8:54 UTC (permalink / raw)
To: Wei Yongjun; +Cc: David Miller, Vlad Yasevich, Network-Maillist, SCTP-Maillist
In-Reply-To: <4D36A557.6080708@cn.fujitsu.com>
Wei Yongjun wrote, at 01/19/2011 04:48 PM:
>
>> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
>> not SCTP_DELAYED_ACK.
>>
>> Left SCTP_DELAYED_ACK be concomitant with SCTP_DELAYED_SACK,
>> for making compatibility with existing applications.
>
> SCTP_DELAYED_ACK is introduced by my typo when change it to
> API compliance two years ago. So:
>
> Acked-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Thanks for your work.
--
Best Regards
-----
Shan Wei
^ permalink raw reply
* [PATCH] e1000: add support for Marvell Alaska M88E1118R PHY
From: Florian Fainelli @ 2011-01-19 9:09 UTC (permalink / raw)
To: netdev; +Cc: David Miller, Dirk Brandewie, Jeff Kirsher
From: Florian Fainelli <ffainelli@freebox.fr>
This patch adds support for Marvell Alask M88E188R PHY chips. Support for
other M88* PHYs is already there, so there is nothing more to add than its
PHY id.
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
CC: Dirk Brandewie <dirk.j.brandewie@intel.com>
CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index aed223b..7501d97 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -124,6 +124,7 @@ static s32 e1000_set_phy_type(struct e1000_hw *hw)
case M88E1000_I_PHY_ID:
case M88E1011_I_PHY_ID:
case M88E1111_I_PHY_ID:
+ case M88E1118_E_PHY_ID:
hw->phy_type = e1000_phy_m88;
break;
case IGP01E1000_I_PHY_ID:
@@ -3222,7 +3223,8 @@ static s32 e1000_detect_gig_phy(struct e1000_hw *hw)
break;
case e1000_ce4100:
if ((hw->phy_id == RTL8211B_PHY_ID) ||
- (hw->phy_id == RTL8201N_PHY_ID))
+ (hw->phy_id == RTL8201N_PHY_ID) ||
+ (hw->phy_id == M88E1118_E_PHY_ID))
match = true;
break;
case e1000_82541:
diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/e1000/e1000_hw.h
index 196eeda..c70b23d 100644
--- a/drivers/net/e1000/e1000_hw.h
+++ b/drivers/net/e1000/e1000_hw.h
@@ -2917,6 +2917,7 @@ struct e1000_host_command_info {
#define M88E1000_14_PHY_ID M88E1000_E_PHY_ID
#define M88E1011_I_REV_4 0x04
#define M88E1111_I_PHY_ID 0x01410CC0
+#define M88E1118_E_PHY_ID 0x01410E40
#define L1LXT971A_PHY_ID 0x001378E0
#define RTL8211B_PHY_ID 0x001CC910
--
1.7.1
^ permalink raw reply related
* Re: Flow Control and Port Mirroring Revisited
From: Simon Horman @ 2011-01-19 9:11 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Rick Jones, Jesse Gross, Eric Dumazet, Rusty Russell,
virtualization, dev, virtualization, netdev, kvm
In-Reply-To: <20110118201333.GD18760@redhat.com>
On Tue, Jan 18, 2011 at 10:13:33PM +0200, Michael S. Tsirkin wrote:
> On Tue, Jan 18, 2011 at 11:41:22AM -0800, Rick Jones wrote:
> > >So it won't be all that simple to implement well, and before we try,
> > >I'd like to know whether there are applications that are helped
> > >by it. For example, we could try to measure latency at various
> > >pps and see whether the backpressure helps. netperf has -b, -w
> > >flags which might help these measurements.
> >
> > Those options are enabled when one adds --enable-burst to the
> > pre-compilation ./configure of netperf (one doesn't have to
> > recompile netserver). However, if one is also looking at latency
> > statistics via the -j option in the top-of-trunk, or simply at the
> > histogram with --enable-histogram on the ./configure and a verbosity
> > level of 2 (global -v 2) then one wants the very top of trunk
> > netperf from:
> >
> > http://www.netperf.org/svn/netperf2/trunk
> >
> > to get the recently added support for accurate (netperf level) RTT
> > measuremnts on burst-mode request/response tests.
> >
> > happy benchmarking,
> >
> > rick jones
Thanks Rick, that is really helpful.
> > PS - the enhanced latency statistics from -j are only available in
> > the "omni" version of the TCP_RR test. To get that add a
> > --enable-omni to the ./configure - and in this case both netperf and
> > netserver have to be recompiled.
>
>
> Is this TCP only? I would love to get latency data from UDP as well.
At a glance, -- -T UDP is what you are after.
^ permalink raw reply
* Re: [PATCH v2] net: add Faraday FTMAC100 10/100 Ethernet driver
From: Po-Yu Chuang @ 2011-01-19 9:20 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, linux-kernel, ratbert, bhutchings, joe, dilinger
In-Reply-To: <1295288462.3335.55.camel@edumazet-laptop>
Dear Eric,
On Tue, Jan 18, 2011 at 2:21 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le lundi 17 janvier 2011 à 17:21 +0800, Po-Yu Chuang a écrit :
>> + spin_lock_irqsave(&priv->tx_lock, flags);
>> + ftmac100_txdes_set_skb(txdes, skb);
>> + ftmac100_txdes_set_dma_addr(txdes, map);
>> +
>> + ftmac100_txdes_set_first_segment(txdes);
>> + ftmac100_txdes_set_last_segment(txdes);
>> + ftmac100_txdes_set_txint(txdes);
>> + ftmac100_txdes_set_buffer_size(txdes, len);
>
> I wonder if its not too expensive to read/modify/write txdes->txdes1
>
> Maybe you should use a temporary u32 var and perform one final write on
> txdes->txdes1 (with the set_dma_own)
That's OK, the compiler combines these bits updates together and write once
since txdes is not volatile. (I checked the object file)
It's not expensive.
BTW, DMA_OWN bit is at txdes0
>> + priv->tx_pending++;
>> + if (priv->tx_pending == TX_QUEUE_ENTRIES) {
>> + if (net_ratelimit())
>> + netdev_info(netdev, "tx queue full\n");
>> +
>> + netif_stop_queue(netdev);
>> + }
>> +
>> + /* start transmit */
>> + ftmac100_txdes_set_dma_own(txdes);
>
> txdes->txdes1 = txdes1;
>
> BTW, shouldnt you use cpu_to_be32() or cpu_to_le32(), if this driver is
> multi platform ?
OK, but I am not sure if I use them the right way.
Please check my v3 patch later.
Thanks,
Po-Yu Chuang
^ permalink raw reply
* Re: [PATCH v2] net: add Faraday FTMAC100 10/100 Ethernet driver
From: Po-Yu Chuang @ 2011-01-19 9:40 UTC (permalink / raw)
To: Joe Perches
Cc: netdev, linux-kernel, ratbert, bhutchings, eric.dumazet, dilinger
In-Reply-To: <1295284788.21277.65.camel@Joe-Laptop>
Dear Joe,
On Tue, Jan 18, 2011 at 1:19 AM, Joe Perches <joe@perches.com> wrote:
> On Mon, 2011-01-17 at 17:21 +0800, Po-Yu Chuang wrote:
>
>> + * priveate data
>
> private
Fixed.
>> +static void ftmac100_enable_all_int(struct ftmac100 *priv)
>> +{
>> + unsigned int imr;
>> +
>> + imr = FTMAC100_INT_RPKT_FINISH | FTMAC100_INT_NORXBUF
>> + | FTMAC100_INT_XPKT_OK | FTMAC100_INT_XPKT_LOST
>> + | FTMAC100_INT_RPKT_LOST | FTMAC100_INT_AHB_ERR
>> + | FTMAC100_INT_PHYSTS_CHG;
>
> This could be a #define.
OK, done.
>> + maccr = FTMAC100_MACCR_XMT_EN |
>> + FTMAC100_MACCR_RCV_EN |
>> + FTMAC100_MACCR_XDMA_EN |
>> + FTMAC100_MACCR_RDMA_EN |
>> + FTMAC100_MACCR_CRC_APD |
>> + FTMAC100_MACCR_FULLDUP |
>> + FTMAC100_MACCR_RX_RUNT |
>> + FTMAC100_MACCR_RX_BROADPKT;
>
> Here too.
OK, done.
>> +static int ftmac100_rx_packet_error(struct ftmac100 *priv,
>> + struct ftmac100_rxdes *rxdes)
> []
>> + if (unlikely(ftmac100_rxdes_frame_too_long(rxdes))) {
>> + if (net_ratelimit())
>> + netdev_info(netdev, "rx frame too long\n");
>> +
>> + netdev->stats.rx_length_errors++;
>> + error = 1;
>> + }
>> +
>> + if (unlikely(ftmac100_rxdes_runt(rxdes))) {
>
> else if ?
OK, fixed.
>> +static int ftmac100_rx_packet(struct ftmac100 *priv, int *processed)
>> +{
>> + struct net_device *netdev = priv->netdev;
>> + struct ftmac100_rxdes *rxdes;
>> + struct sk_buff *skb;
>> + int length;
>> + int copied = 0;
>> + int done = 0;
>
> You could use bool/true/false here for copied and done
> and all the other uses of an int for a logical bool.
OK, fixed.
>> +static void ftmac100_txdes_set_dma_own(struct ftmac100_txdes *txdes)
>> +{
>> + /*
>> + * Make sure dma own bit will not be set before any other
>> + * descriptor fiels.
>
> field/fields
Fixed.
>> +static int ftmac100_mdio_read(struct net_device *netdev, int phy_id, int reg)
>> +{
>> + struct ftmac100 *priv = netdev_priv(netdev);
>> + int phycr;
>> + int i;
>> +
>> + phycr = FTMAC100_PHYCR_PHYAD(phy_id) |
>> + FTMAC100_PHYCR_REGAD(reg) |
>> + FTMAC100_PHYCR_MIIRD;
>> +
>> + iowrite32(phycr, priv->base + FTMAC100_OFFSET_PHYCR);
>> + for (i = 0; i < 10; i++) {
>> + phycr = ioread32(priv->base + FTMAC100_OFFSET_PHYCR);
>> +
>> + if ((phycr & FTMAC100_PHYCR_MIIRD) == 0)
>> + return phycr & FTMAC100_PHYCR_MIIRDATA;
>> +
>> + usleep_range(100, 1000);
>> + }
>> +
>> + netdev_err(netdev, "mdio read timed out\n");
>> + return 0xffff;
>
> 0xffff is a rather odd return, perhaps a #define?
After a little digging in drivers/net/mii.c, it seems that mii lib does not
check return value if it is error. So I guess I should return 0 if error.
>> +/******************************************************************************
>> + * initialization / finalization
>> + *****************************************************************************/
>> +static int __init ftmac100_init(void)
>> +{
>> + printk(KERN_INFO "Loading " DRV_NAME ": version " DRV_VERSION " ...\n");
>
> You could use
> #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> before any #include and
> pr_info("Loading version " DRV_VERSION " ...\n");
OK
> One last comment on split long line indentation style
> and long function declarations.
>
> There's no required style so you can use what you are
> most comfortable doing.
>
> Most of drivers/net uses an alignment to open parenthesis
> using maximal tabs and minimal necessary spaces instead of
> an extra tabstop.
>
> Like:
>
> static int some_long_function(type var1, type var2...
> type varN)
> and
> some_long_function(var1, var2, ...
> varN);
>
> not
> static int some_long_function(type var1, type var2...
> type varN)
> and
> some_long_function(var1, var2, ...
> varN);
Well, TBH, I don't like this style because if I changed the
function name, the indentation might need to be adjusted.
Even worse, I got an infeasible case :-(
static struct ftmac100_rxdes *ftmac100_rx_locate_first_segment(
struct ftmac100 *priv)
I know my function names are quite long, but I like them to be descriptive.
Do you really insist on it?
Thanks,
Po-Yu Chuang
^ permalink raw reply
* Re: tool to send unsolicited neighbour advertisements?
From: Martin Volf @ 2011-01-19 9:42 UTC (permalink / raw)
To: Chris Friesen; +Cc: netdev, Linux Kernel Mailing List
In-Reply-To: <4D35FB33.1080305@genband.com>
On 18 January 2011 21:42, Chris Friesen <chris.friesen@genband.com> wrote:
> We're transitioning stuff to IPv6 and I've been trying (without much
> luck) to find a standard tool for sending out unsolicited neighbour
> advertisements for failover purposes.
> Is there such a thing? In ipv4 arping works fine.
Hello,
probably http://www.remlab.net/ndisc6/
--
Martin Volf
^ permalink raw reply
* netconsole build breakage (Re: [GIT] Networking)
From: Ingo Molnar @ 2011-01-19 9:59 UTC (permalink / raw)
To: David Miller, Nicholas Bellinger, James Bottomley, Randy Dunlap
Cc: torvalds, akpm, netdev, linux-kernel
In-Reply-To: <20110114.130323.201674039.davem@davemloft.net>
FYI, there's a .38-rc1 build failure that triggers rather often:
drivers/built-in.o: In function `drop_netconsole_target':
netconsole.c:(.text+0x130146): undefined reference to `config_item_put'
drivers/built-in.o: In function `write_msg':
netconsole.c:(.text+0x1301aa): undefined reference to `config_item_get'
netconsole.c:(.text+0x130217): undefined reference to `config_item_put'
drivers/built-in.o: In function `netconsole_netdev_event':
netconsole.c:(.text+0x1302ab): undefined reference to `config_item_get'
...
Triggered by this configuration:
CONFIG_CONFIGFS_FS=m
CONFIG_NETCONSOLE=y
Probably caused by:
d9f9ab51e55e: net: Make NETCONSOLE_DYNAMIC depend on CONFIGFS_FS
The commit appears to have gone upstream via the iscsi tree. The commit is going in
the wrong direction as well, beyond being buggy.
The original problem was caused by this iscsi commit:
e205117285d6: configfs: change depends -> select SYSFS
and the dependency problems snowballed from there, and one side-effect was patched
up - but others remain.
Thanks,
Ingo
^ permalink raw reply
* Altering default SO_PRIORITY of a socket.
From: Janek Wrobel @ 2011-01-19 10:02 UTC (permalink / raw)
To: netdev
Hi,
Does Linux allow to change default priority of listening or connected
sockets, without process ever calling setsockopt(..,SO_PRIORITY,..)?
In other words, in a following sequence of events, is it possible that
priority_a, or priority_b will ever be non 0 (assuming all calls
succeeded)?
sock = socket(AF_INET, SOCK_STREAM, 0);
bind(sock, some address)
listen(sock, ...)
int priority_a;
getsockopt(sock, SOL_SOCKET, SO_PRIORITY, &priority_a, sizeof(priority_a))
client_sock = accept(sock, ...);
int priority_b;
getsockopt(client_sock, SOL_SOCKET, SO_PRIORITY, &priority_b,
sizeof(priority_b))
thanks,
Janek
^ permalink raw reply
* Re: netconsole build breakage (Re: [GIT] Networking)
From: Américo Wang @ 2011-01-19 10:08 UTC (permalink / raw)
To: Ingo Molnar
Cc: David Miller, Nicholas Bellinger, James Bottomley, Randy Dunlap,
torvalds, akpm, netdev, linux-kernel
In-Reply-To: <20110119095920.GA10543@elte.hu>
On Wed, Jan 19, 2011 at 10:59:20AM +0100, Ingo Molnar wrote:
>
>FYI, there's a .38-rc1 build failure that triggers rather often:
>
> drivers/built-in.o: In function `drop_netconsole_target':
> netconsole.c:(.text+0x130146): undefined reference to `config_item_put'
> drivers/built-in.o: In function `write_msg':
> netconsole.c:(.text+0x1301aa): undefined reference to `config_item_get'
> netconsole.c:(.text+0x130217): undefined reference to `config_item_put'
> drivers/built-in.o: In function `netconsole_netdev_event':
> netconsole.c:(.text+0x1302ab): undefined reference to `config_item_get'
> ...
>
>Triggered by this configuration:
>
> CONFIG_CONFIGFS_FS=m
> CONFIG_NETCONSOLE=y
>
Should be "depends on CONFIGFS_FS=y".
^ permalink raw reply
* Re: netconsole build breakage (Re: [GIT] Networking)
From: Nicholas A. Bellinger @ 2011-01-19 10:33 UTC (permalink / raw)
To: Américo Wang
Cc: Ingo Molnar, David Miller, James Bottomley, Randy Dunlap,
torvalds, akpm, netdev, linux-kernel, Joel Becker
In-Reply-To: <20110119100824.GD9903@cr0.nay.redhat.com>
On Wed, 2011-01-19 at 18:08 +0800, Américo Wang wrote:
> On Wed, Jan 19, 2011 at 10:59:20AM +0100, Ingo Molnar wrote:
> >
> >FYI, there's a .38-rc1 build failure that triggers rather often:
> >
> > drivers/built-in.o: In function `drop_netconsole_target':
> > netconsole.c:(.text+0x130146): undefined reference to `config_item_put'
> > drivers/built-in.o: In function `write_msg':
> > netconsole.c:(.text+0x1301aa): undefined reference to `config_item_get'
> > netconsole.c:(.text+0x130217): undefined reference to `config_item_put'
> > drivers/built-in.o: In function `netconsole_netdev_event':
> > netconsole.c:(.text+0x1302ab): undefined reference to `config_item_get'
> > ...
> >
> >Triggered by this configuration:
> >
> > CONFIG_CONFIGFS_FS=m
> > CONFIG_NETCONSOLE=y
> >
>
> Should be "depends on CONFIGFS_FS=y".
Sorry for breaking this one folks..
Where this was left yesterday was to change NETCONSOLE_DYNAMIC, DLM and
OCFS2_FS symbols to use 'select configfs' instead of 'depends on SYSFS
&& CONFIGFS':
http://marc.info/?l=linux-kernel&m=129539400709508&w=2
but unfortuately this did not make it into .38-rc1 in time..
Using 'select CONFIGFS_FS' here for NETCONSOLE_DYNAMIC with the
following patches should do the trick.
git://git.kernel.org/pub/scm/linux/kernel/git/nab/scsi-post-merge-2.6.git for-linus
Thanks,
Nicholas Bellinger (3):
net: Make NETCONSOLE_DYNAMIC use select CONFIGFS_FS
dlm: Make DLM use select CONFIGFS_FS
ocfs2: Make OCFS2_FS use select CONFIGFS_FS
drivers/net/Kconfig | 3 ++-
fs/dlm/Kconfig | 4 ++--
fs/ocfs2/Kconfig | 3 ++-
3 files changed, 6 insertions(+), 4 deletions(-)
^ permalink raw reply
* [PATCH] net: fix can_checksum_protocol() arguments swap
From: Eric Dumazet @ 2011-01-19 10:51 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Jesse Gross, Hans de Bruin
commit 0363466866d901fbc (net offloading: Convert checksums to use
centrally computed features.) mistakenly swapped can_checksum_protocol()
arguments.
This broke IPv6 on bnx2 for instance, on NIC without TCPv6 checksum
offloads.
Reported-by: Hans de Bruin <jmdebruin@xmsnet.nl>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Jesse Gross <jesse@nicira.com>
---
I cant believe I spent so much time on this bug.
net/core/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 54277df..cff6d9b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2001,7 +2001,7 @@ static bool can_checksum_protocol(unsigned long features, __be16 protocol)
static int harmonize_features(struct sk_buff *skb, __be16 protocol, int features)
{
- if (!can_checksum_protocol(protocol, features)) {
+ if (!can_checksum_protocol(features, protocol)) {
features &= ~NETIF_F_ALL_CSUM;
features &= ~NETIF_F_SG;
} else if (illegal_highdma(skb->dev, skb)) {
^ permalink raw reply related
* Re: netconsole build breakage (Re: [GIT] Networking)
From: Ingo Molnar @ 2011-01-19 10:57 UTC (permalink / raw)
To: Nicholas A. Bellinger
Cc: Américo Wang, David Miller, James Bottomley, Randy Dunlap,
torvalds, akpm, netdev, linux-kernel, Joel Becker
In-Reply-To: <1295433231.21351.17.camel@haakon2.linux-iscsi.org>
* Nicholas A. Bellinger <nab@linux-iscsi.org> wrote:
> On Wed, 2011-01-19 at 18:08 +0800, Américo Wang wrote:
> > On Wed, Jan 19, 2011 at 10:59:20AM +0100, Ingo Molnar wrote:
> > >
> > >FYI, there's a .38-rc1 build failure that triggers rather often:
> > >
> > > drivers/built-in.o: In function `drop_netconsole_target':
> > > netconsole.c:(.text+0x130146): undefined reference to `config_item_put'
> > > drivers/built-in.o: In function `write_msg':
> > > netconsole.c:(.text+0x1301aa): undefined reference to `config_item_get'
> > > netconsole.c:(.text+0x130217): undefined reference to `config_item_put'
> > > drivers/built-in.o: In function `netconsole_netdev_event':
> > > netconsole.c:(.text+0x1302ab): undefined reference to `config_item_get'
> > > ...
> > >
> > >Triggered by this configuration:
> > >
> > > CONFIG_CONFIGFS_FS=m
> > > CONFIG_NETCONSOLE=y
> > >
> >
> > Should be "depends on CONFIGFS_FS=y".
>
> Sorry for breaking this one folks..
>
> Where this was left yesterday was to change NETCONSOLE_DYNAMIC, DLM and
> OCFS2_FS symbols to use 'select configfs' instead of 'depends on SYSFS
> && CONFIGFS':
>
> http://marc.info/?l=linux-kernel&m=129539400709508&w=2
>
> but unfortuately this did not make it into .38-rc1 in time..
>
> Using 'select CONFIGFS_FS' here for NETCONSOLE_DYNAMIC with the
> following patches should do the trick.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/nab/scsi-post-merge-2.6.git for-linus
>
> Thanks,
>
> Nicholas Bellinger (3):
> net: Make NETCONSOLE_DYNAMIC use select CONFIGFS_FS
> dlm: Make DLM use select CONFIGFS_FS
> ocfs2: Make OCFS2_FS use select CONFIGFS_FS
>
> drivers/net/Kconfig | 3 ++-
Yeah, using select CONFIGFS_FS (and removing the SYSFS and CONFIGFS_FS dependencies)
is the correct and clean solution here.
Thanks,
Ingo
^ permalink raw reply
* Re: [PATCH v5 0/4] Adding HID Feature Report Support to hidraw
From: Jiri Kosina @ 2011-01-19 12:17 UTC (permalink / raw)
To: Alan Ott, Marcel Holtmann
Cc: Gustavo F. Padovan, David S. Miller, Michael Poole, Eric Dumazet,
linux-input, linux-kernel, linux-usb, linux-bluetooth, netdev
In-Reply-To: <1295337880-12452-1-git-send-email-alan@signal11.us>
On Tue, 18 Jan 2011, Alan Ott wrote:
> This patch adds Feature Report support for USB and Bluetooth HID devices
> through hidraw.
>
> The first two patches prepare the bluetooth side for the change.
> a. Make sure the hidp_session() thread is started before
> device's probe() functions are called.
> b. Wait for ACK/NAK on sent reports, and return proper
> error codes.
> The third patch is the hidraw core and USB changes.
> The fourth patch is the Bluetooth changes.
>
> Thanks to Antonio Ospite and Bill Good for providing testing and feedback.
>
>
> Alan Ott (4):
> bt hidp: Move hid_add_device() call to after hidp_session() has
> started.
> bt hidp: Wait for ACK on Sent Reports
> HID: Add Support for Setting and Getting Feature Reports from hidraw
> Bluetooth hidp: Add support for hidraw HIDIOCGFEATURE and
> HIDIOCSFEATURE
>
> drivers/hid/hidraw.c | 106 +++++++++++++++++++-
> drivers/hid/usbhid/hid-core.c | 35 +++++++
> include/linux/hid.h | 3 +
> include/linux/hidraw.h | 3 +
> net/bluetooth/hidp/core.c | 214 ++++++++++++++++++++++++++++++++++++++---
> net/bluetooth/hidp/hidp.h | 15 +++
Before proceeding with these patches, I'd really like to have comment
(ideally 'Acked-by') from Marcel on the net/bluetooth/hidp part,
obviously.
Marcel?
Thanks,
--
Jiri Kosina
SUSE Labs, Novell Inc.
^ permalink raw reply
* Re: [PATCH v2] net: add Faraday FTMAC100 10/100 Ethernet driver
From: Ben Hutchings @ 2011-01-19 12:46 UTC (permalink / raw)
To: Po-Yu Chuang
Cc: Joe Perches, netdev, linux-kernel, ratbert, eric.dumazet,
dilinger
In-Reply-To: <AANLkTi=nJxwR89CF3i0+L6+yM4Bg_PN8PQByTAHP2nPM@mail.gmail.com>
On Wed, 2011-01-19 at 17:40 +0800, Po-Yu Chuang wrote:
[...]
> Well, TBH, I don't like this style because if I changed the
> function name, the indentation might need to be adjusted.
>
> Even worse, I got an infeasible case :-(
>
> static struct ftmac100_rxdes *ftmac100_rx_locate_first_segment(
> struct ftmac100 *priv)
>
> I know my function names are quite long, but I like them to be descriptive.
> Do you really insist on it?
You can break after the return type:
static struct ftmac100_rxdes *
ftmac100_rx_locate_first_segment(struct ftmac100 *priv)
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply
* Re: [PATCH] net: fix can_checksum_protocol() arguments swap
From: Jesse Gross @ 2011-01-19 13:33 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, netdev, Hans de Bruin
In-Reply-To: <1295434296.3273.18.camel@edumazet-laptop>
On Wed, Jan 19, 2011 at 2:51 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> commit 0363466866d901fbc (net offloading: Convert checksums to use
> centrally computed features.) mistakenly swapped can_checksum_protocol()
> arguments.
>
> This broke IPv6 on bnx2 for instance, on NIC without TCPv6 checksum
> offloads.
>
> Reported-by: Hans de Bruin <jmdebruin@xmsnet.nl>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> CC: Jesse Gross <jesse@nicira.com>
> ---
> I cant believe I spent so much time on this bug.
Thanks Eric, I was staring at this code and I can't believe that I
didn't see it.
Acked-by: Jesse Gross <jesse@nicira.com>
^ permalink raw reply
* Re: [PATCH-v2] sctp: user perfect name for Delayed SACK Timer option
From: Vladislav Yasevich @ 2011-01-19 13:37 UTC (permalink / raw)
To: Shan Wei
Cc: David Miller, 魏勇军, Network-Maillist,
SCTP-Maillist
In-Reply-To: <4D36A324.4040307@cn.fujitsu.com>
On 01/19/2011 03:39 AM, Shan Wei wrote:
> The option name of Delayed SACK Timer should be SCTP_DELAYED_SACK,
> not SCTP_DELAYED_ACK.
>
> Left SCTP_DELAYED_ACK be concomitant with SCTP_DELAYED_SACK,
> for making compatibility with existing applications.
>
> Reference:
> 8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK)
> (http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25)
>
this one much better.
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
-vlad
> Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
> ---
> include/net/sctp/user.h | 1 +
> net/sctp/socket.c | 4 ++--
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h
> index 2b2769c..92eedc0 100644
> --- a/include/net/sctp/user.h
> +++ b/include/net/sctp/user.h
> @@ -78,6 +78,7 @@ typedef __s32 sctp_assoc_t;
> #define SCTP_GET_PEER_ADDR_INFO 15
> #define SCTP_DELAYED_ACK_TIME 16
> #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
> +#define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
> #define SCTP_CONTEXT 17
> #define SCTP_FRAGMENT_INTERLEAVE 18
> #define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */
> diff --git a/net/sctp/socket.c b/net/sctp/socket.c
> index a09b0dd..8e02550 100644
> --- a/net/sctp/socket.c
> +++ b/net/sctp/socket.c
> @@ -3428,7 +3428,7 @@ SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname,
> retval = sctp_setsockopt_peer_addr_params(sk, optval, optlen);
> break;
>
> - case SCTP_DELAYED_ACK:
> + case SCTP_DELAYED_SACK:
> retval = sctp_setsockopt_delayed_ack(sk, optval, optlen);
> break;
> case SCTP_PARTIAL_DELIVERY_POINT:
> @@ -5333,7 +5333,7 @@ SCTP_STATIC int sctp_getsockopt(struct sock *sk, int level, int optname,
> retval = sctp_getsockopt_peer_addr_params(sk, len, optval,
> optlen);
> break;
> - case SCTP_DELAYED_ACK:
> + case SCTP_DELAYED_SACK:
> retval = sctp_getsockopt_delayed_ack(sk, len, optval,
> optlen);
> break;
^ permalink raw reply
* Re: inbound connection problems when "netlink: test for all flags of the NLM_F_DUMP composite" commit applied
From: jamal @ 2011-01-19 14:28 UTC (permalink / raw)
To: Jarek Poplawski
Cc: Pablo Neira Ayuso, David Miller, arthur.marsh, jengelh,
eric.dumazet, netdev
In-Reply-To: <20110118205507.GB4288@del.dom.local>
On Tue, 2011-01-18 at 21:55 +0100, Jarek Poplawski wrote:
> On Tue, Jan 18, 2011 at 09:31:31PM +0100, Pablo Neira Ayuso wrote:
> > The combination that avahi uses makes no sense.
>
> I don't agree as explained in the reverting patch. Anyway, again,
> this is an old problem, so no reason to force "fixing" it just now
> at the expense of the obvious regression especially in stable kernels
> Anyway, I'll accept any David's decision wrt this problem.
>
So here is what i think the criteria should be:
If Avahi is popular and widely deployed (I dont use it anywhere), it
makes no sense to revert.
A middle ground is: instead of rejecting the nonsense passed, maybe a
sane thing to do is a kernel warning for a period of time (sort of like
feature removal warnings).
The only way to keep the patch IMO (if avahi is widely deployed) is if
common distro policy is such that they will immediately fix and
distribute a new avahi even when this breakage is with a kernel that
distro wont support for a year.
hope i am making sense.
cheers,
jamal
^ permalink raw reply
* Re: [PATCH 1/7] dma/shdma.c Typo change desciptor to descriptor.
From: Jiri Kosina @ 2011-01-19 14:38 UTC (permalink / raw)
To: Justin P. Mattock
Cc: dan.j.williams, linux-kernel, netdev, linux-scsi, linux-usb
In-Reply-To: <1293817097-7945-1-git-send-email-justinmattock@gmail.com>
On Fri, 31 Dec 2010, Justin P. Mattock wrote:
> Below is a patch, that changes a typo from "desciptor" to "descriptor".
> Let me know if I missed anything.
>
> Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
>
> ---
> drivers/dma/shdma.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c
> index 85ffd5e..72d25d9 100644
> --- a/drivers/dma/shdma.c
> +++ b/drivers/dma/shdma.c
> @@ -740,7 +740,7 @@ static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan)
> return;
> }
>
> - /* Find the first not transferred desciptor */
> + /* Find the first not transferred descriptor */
> list_for_each_entry(desc, &sh_chan->ld_queue, node)
> if (desc->mark == DESC_SUBMITTED) {
> dev_dbg(sh_chan->dev, "Queue #%d to %d: %u@%x -> %x\n",
I have folded the whole series into one patch and applied, thanks.
--
Jiri Kosina
SUSE Labs, Novell Inc.
^ permalink raw reply
* Re: [Patch] Kill off warning: ‘inline’ is not at beginning of declaration
From: Jiri Kosina @ 2011-01-19 14:44 UTC (permalink / raw)
To: Jesper Juhl
Cc: alsa-devel, Mauro Carvalho Chehab, Takashi Iwai,
Frederic Weisbecker, Gustavo F. Padovan, Jaroslav Kysela,
Jens Axboe, Stephen Hemminger, Andi Kleen, H. Peter Anvin,
Pekka Savola (ipv6), x86, James Morris, Ingo Molnar,
oprofile-list, Alexey Kuznetsov, Mark Fasheh, Marcel Holtmann,
John W. Linville, David Teigland, Joel Becker, Thomas Gleixner,
linux-edac, Hideaki YOSHIFUJI, netdev
In-Reply-To: <alpine.LNX.2.00.1101170000270.13377@swampdragon.chaosbits.net>
On Mon, 17 Jan 2011, Jesper Juhl wrote:
> Fix a bunch of
> warning: ‘inline’ is not at beginning of declaration
> messages when building a 'make allyesconfig' kernel with -Wextra.
>
> These warnings are trivial to kill, yet rather annoying when building with
> -Wextra.
> The more we can cut down on pointless crap like this the better (IMHO).
>
> A previous patch to do this for a 'allnoconfig' build has already been
> merged. This just takes the cleanup a little further.
>
> Signed-off-by: Jesper Juhl <jj@chaosbits.net>
> ---
> arch/x86/oprofile/op_model_p4.c | 2 +-
> drivers/bluetooth/btusb.c | 4 ++--
> drivers/cpuidle/sysfs.c | 2 +-
> drivers/edac/i7300_edac.c | 2 +-
> fs/ocfs2/dir.c | 2 +-
> kernel/trace/ring_buffer.c | 2 +-
> net/ipv6/inet6_hashtables.c | 2 +-
> net/mac80211/tx.c | 2 +-
> sound/pci/au88x0/au88x0.h | 4 ++--
> sound/pci/au88x0/au88x0_core.c | 4 ++--
> 10 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/arch/x86/oprofile/op_model_p4.c b/arch/x86/oprofile/op_model_p4.c
> index 9fadec0..98ab130 100644
> --- a/arch/x86/oprofile/op_model_p4.c
> +++ b/arch/x86/oprofile/op_model_p4.c
> @@ -50,7 +50,7 @@ static inline void setup_num_counters(void)
> #endif
> }
>
> -static int inline addr_increment(void)
> +static inline int addr_increment(void)
> {
> #ifdef CONFIG_SMP
> return smp_num_siblings == 2 ? 2 : 1;
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 1da773f..92d29bf 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -424,7 +424,7 @@ static void btusb_isoc_complete(struct urb *urb)
> }
> }
>
> -static void inline __fill_isoc_descriptor(struct urb *urb, int len, int mtu)
> +static inline void __fill_isoc_descriptor(struct urb *urb, int len, int mtu)
> {
> int i, offset = 0;
>
> @@ -775,7 +775,7 @@ static void btusb_notify(struct hci_dev *hdev, unsigned int evt)
> }
> }
>
> -static int inline __set_isoc_interface(struct hci_dev *hdev, int altsetting)
> +static inline int __set_isoc_interface(struct hci_dev *hdev, int altsetting)
> {
> struct btusb_data *data = hdev->driver_data;
> struct usb_interface *intf = data->isoc;
> diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
> index 0310ffa..be7917ec 100644
> --- a/drivers/cpuidle/sysfs.c
> +++ b/drivers/cpuidle/sysfs.c
> @@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpuidle = {
> .release = cpuidle_state_sysfs_release,
> };
>
> -static void inline cpuidle_free_state_kobj(struct cpuidle_device *device, int i)
> +static inline void cpuidle_free_state_kobj(struct cpuidle_device *device, int i)
> {
> kobject_put(&device->kobjs[i]->kobj);
> wait_for_completion(&device->kobjs[i]->kobj_unregister);
> diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c
> index 05523b5..76d1f57 100644
> --- a/drivers/edac/i7300_edac.c
> +++ b/drivers/edac/i7300_edac.c
> @@ -162,7 +162,7 @@ static struct edac_pci_ctl_info *i7300_pci;
> #define AMBPRESENT_0 0x64
> #define AMBPRESENT_1 0x66
>
> -const static u16 mtr_regs[MAX_SLOTS] = {
> +static const u16 mtr_regs[MAX_SLOTS] = {
> 0x80, 0x84, 0x88, 0x8c,
> 0x82, 0x86, 0x8a, 0x8e
> };
> diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
> index d417b3f..f97b6f1 100644
> --- a/fs/ocfs2/dir.c
> +++ b/fs/ocfs2/dir.c
> @@ -354,7 +354,7 @@ static inline int ocfs2_match(int len,
> /*
> * Returns 0 if not found, -1 on failure, and 1 on success
> */
> -static int inline ocfs2_search_dirblock(struct buffer_head *bh,
> +static inline int ocfs2_search_dirblock(struct buffer_head *bh,
> struct inode *dir,
> const char *name, int namelen,
> unsigned long offset,
> diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
> index bd1c35a..6ee56b4 100644
> --- a/kernel/trace/ring_buffer.c
> +++ b/kernel/trace/ring_buffer.c
> @@ -669,7 +669,7 @@ static struct list_head *rb_list_head(struct list_head *list)
> * the reader page). But if the next page is a header page,
> * its flags will be non zero.
> */
> -static int inline
> +static inline int
> rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
> struct buffer_page *page, struct list_head *list)
> {
> diff --git a/net/ipv6/inet6_hashtables.c b/net/ipv6/inet6_hashtables.c
> index 633a6c2..b531972 100644
> --- a/net/ipv6/inet6_hashtables.c
> +++ b/net/ipv6/inet6_hashtables.c
> @@ -124,7 +124,7 @@ out:
> }
> EXPORT_SYMBOL(__inet6_lookup_established);
>
> -static int inline compute_score(struct sock *sk, struct net *net,
> +static inline int compute_score(struct sock *sk, struct net *net,
> const unsigned short hnum,
> const struct in6_addr *daddr,
> const int dif)
> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
> index 5950e3a..a449dd5 100644
> --- a/net/mac80211/tx.c
> +++ b/net/mac80211/tx.c
> @@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr,
> return cpu_to_le16(dur);
> }
>
> -static int inline is_ieee80211_device(struct ieee80211_local *local,
> +static inline int is_ieee80211_device(struct ieee80211_local *local,
> struct net_device *dev)
> {
> return local == wdev_priv(dev->ieee80211_ptr);
> diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
> index cf46bba..ecb8f4d 100644
> --- a/sound/pci/au88x0/au88x0.h
> +++ b/sound/pci/au88x0/au88x0.h
> @@ -211,7 +211,7 @@ static void vortex_adbdma_startfifo(vortex_t * vortex, int adbdma);
> //static void vortex_adbdma_stopfifo(vortex_t *vortex, int adbdma);
> static void vortex_adbdma_pausefifo(vortex_t * vortex, int adbdma);
> static void vortex_adbdma_resumefifo(vortex_t * vortex, int adbdma);
> -static int inline vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma);
> +static inline int vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma);
> static void vortex_adbdma_resetup(vortex_t *vortex, int adbdma);
>
> #ifndef CHIP_AU8810
> @@ -219,7 +219,7 @@ static void vortex_wtdma_startfifo(vortex_t * vortex, int wtdma);
> static void vortex_wtdma_stopfifo(vortex_t * vortex, int wtdma);
> static void vortex_wtdma_pausefifo(vortex_t * vortex, int wtdma);
> static void vortex_wtdma_resumefifo(vortex_t * vortex, int wtdma);
> -static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma);
> +static inline int vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma);
> #endif
>
> /* global stuff. */
> diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
> index 23f49f3..d43252a 100644
> --- a/sound/pci/au88x0/au88x0_core.c
> +++ b/sound/pci/au88x0/au88x0_core.c
> @@ -1249,7 +1249,7 @@ static void vortex_adbdma_resetup(vortex_t *vortex, int adbdma) {
> }
> }
>
> -static int inline vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma)
> +static inline int vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma)
> {
> stream_t *dma = &vortex->dma_adb[adbdma];
> int temp;
> @@ -1498,7 +1498,7 @@ static int vortex_wtdma_getcursubuffer(vortex_t * vortex, int wtdma)
> POS_SHIFT) & POS_MASK);
> }
> #endif
> -static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma)
> +static inline int vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma)
> {
> stream_t *dma = &vortex->dma_wt[wtdma];
> int temp;
Wow, what a huge CC list for such a simple change. Jesper, I think you
should re-consider this next time. I bet you used get_maintainer script,
didn't you? :)
I have applied it to my tree now. If anyone has objections/has already
applied part of the patch to subsystem tree, please let me know.
Thanks,
--
Jiri Kosina
SUSE Labs, Novell Inc.
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
oprofile-list mailing list
oprofile-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list
^ permalink raw reply
* Re: [Patch] Kill off warning: ‘inline’ is not at beginning of declaration
From: Mauro Carvalho Chehab @ 2011-01-19 14:49 UTC (permalink / raw)
To: Jiri Kosina
Cc: alsa-devel, Takashi Iwai, Frederic Weisbecker, Gustavo F. Padovan,
Jaroslav Kysela, Jens Axboe, Stephen Hemminger, Andi Kleen,
H. Peter Anvin, Pekka Savola (ipv6), x86, James Morris,
Ingo Molnar, oprofile-list, Alexey Kuznetsov, Mark Fasheh,
Marcel Holtmann, John W. Linville, Jesper Juhl, David Teigland,
Joel Becker, Thomas Gleixner, linux-edac, Hideaki YOSHIFUJI,
netdev, Gr
In-Reply-To: <alpine.LNX.2.00.1101191543110.26685@pobox.suse.cz>
Em 19-01-2011 12:44, Jiri Kosina escreveu:
> On Mon, 17 Jan 2011, Jesper Juhl wrote:
>
>> Fix a bunch of
>> warning: ‘inline’ is not at beginning of declaration
>> messages when building a 'make allyesconfig' kernel with -Wextra.
>>
>> These warnings are trivial to kill, yet rather annoying when building with
>> -Wextra.
>> The more we can cut down on pointless crap like this the better (IMHO).
>>
>> A previous patch to do this for a 'allnoconfig' build has already been
>> merged. This just takes the cleanup a little further.
>>
>> Signed-off-by: Jesper Juhl <jj@chaosbits.net>
>> ---
>> arch/x86/oprofile/op_model_p4.c | 2 +-
>> drivers/bluetooth/btusb.c | 4 ++--
>> drivers/cpuidle/sysfs.c | 2 +-
>> drivers/edac/i7300_edac.c | 2 +-
For the i7300_edac driver:
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>> fs/ocfs2/dir.c | 2 +-
>> kernel/trace/ring_buffer.c | 2 +-
>> net/ipv6/inet6_hashtables.c | 2 +-
>> net/mac80211/tx.c | 2 +-
>> sound/pci/au88x0/au88x0.h | 4 ++--
>> sound/pci/au88x0/au88x0_core.c | 4 ++--
>> 10 files changed, 13 insertions(+), 13 deletions(-)
>>
>> diff --git a/arch/x86/oprofile/op_model_p4.c b/arch/x86/oprofile/op_model_p4.c
>> index 9fadec0..98ab130 100644
>> --- a/arch/x86/oprofile/op_model_p4.c
>> +++ b/arch/x86/oprofile/op_model_p4.c
>> @@ -50,7 +50,7 @@ static inline void setup_num_counters(void)
>> #endif
>> }
>>
>> -static int inline addr_increment(void)
>> +static inline int addr_increment(void)
>> {
>> #ifdef CONFIG_SMP
>> return smp_num_siblings == 2 ? 2 : 1;
>> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
>> index 1da773f..92d29bf 100644
>> --- a/drivers/bluetooth/btusb.c
>> +++ b/drivers/bluetooth/btusb.c
>> @@ -424,7 +424,7 @@ static void btusb_isoc_complete(struct urb *urb)
>> }
>> }
>>
>> -static void inline __fill_isoc_descriptor(struct urb *urb, int len, int mtu)
>> +static inline void __fill_isoc_descriptor(struct urb *urb, int len, int mtu)
>> {
>> int i, offset = 0;
>>
>> @@ -775,7 +775,7 @@ static void btusb_notify(struct hci_dev *hdev, unsigned int evt)
>> }
>> }
>>
>> -static int inline __set_isoc_interface(struct hci_dev *hdev, int altsetting)
>> +static inline int __set_isoc_interface(struct hci_dev *hdev, int altsetting)
>> {
>> struct btusb_data *data = hdev->driver_data;
>> struct usb_interface *intf = data->isoc;
>> diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
>> index 0310ffa..be7917ec 100644
>> --- a/drivers/cpuidle/sysfs.c
>> +++ b/drivers/cpuidle/sysfs.c
>> @@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpuidle = {
>> .release = cpuidle_state_sysfs_release,
>> };
>>
>> -static void inline cpuidle_free_state_kobj(struct cpuidle_device *device, int i)
>> +static inline void cpuidle_free_state_kobj(struct cpuidle_device *device, int i)
>> {
>> kobject_put(&device->kobjs[i]->kobj);
>> wait_for_completion(&device->kobjs[i]->kobj_unregister);
>> diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c
>> index 05523b5..76d1f57 100644
>> --- a/drivers/edac/i7300_edac.c
>> +++ b/drivers/edac/i7300_edac.c
>> @@ -162,7 +162,7 @@ static struct edac_pci_ctl_info *i7300_pci;
>> #define AMBPRESENT_0 0x64
>> #define AMBPRESENT_1 0x66
>>
>> -const static u16 mtr_regs[MAX_SLOTS] = {
>> +static const u16 mtr_regs[MAX_SLOTS] = {
>> 0x80, 0x84, 0x88, 0x8c,
>> 0x82, 0x86, 0x8a, 0x8e
>> };
>> diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
>> index d417b3f..f97b6f1 100644
>> --- a/fs/ocfs2/dir.c
>> +++ b/fs/ocfs2/dir.c
>> @@ -354,7 +354,7 @@ static inline int ocfs2_match(int len,
>> /*
>> * Returns 0 if not found, -1 on failure, and 1 on success
>> */
>> -static int inline ocfs2_search_dirblock(struct buffer_head *bh,
>> +static inline int ocfs2_search_dirblock(struct buffer_head *bh,
>> struct inode *dir,
>> const char *name, int namelen,
>> unsigned long offset,
>> diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
>> index bd1c35a..6ee56b4 100644
>> --- a/kernel/trace/ring_buffer.c
>> +++ b/kernel/trace/ring_buffer.c
>> @@ -669,7 +669,7 @@ static struct list_head *rb_list_head(struct list_head *list)
>> * the reader page). But if the next page is a header page,
>> * its flags will be non zero.
>> */
>> -static int inline
>> +static inline int
>> rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
>> struct buffer_page *page, struct list_head *list)
>> {
>> diff --git a/net/ipv6/inet6_hashtables.c b/net/ipv6/inet6_hashtables.c
>> index 633a6c2..b531972 100644
>> --- a/net/ipv6/inet6_hashtables.c
>> +++ b/net/ipv6/inet6_hashtables.c
>> @@ -124,7 +124,7 @@ out:
>> }
>> EXPORT_SYMBOL(__inet6_lookup_established);
>>
>> -static int inline compute_score(struct sock *sk, struct net *net,
>> +static inline int compute_score(struct sock *sk, struct net *net,
>> const unsigned short hnum,
>> const struct in6_addr *daddr,
>> const int dif)
>> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
>> index 5950e3a..a449dd5 100644
>> --- a/net/mac80211/tx.c
>> +++ b/net/mac80211/tx.c
>> @@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr,
>> return cpu_to_le16(dur);
>> }
>>
>> -static int inline is_ieee80211_device(struct ieee80211_local *local,
>> +static inline int is_ieee80211_device(struct ieee80211_local *local,
>> struct net_device *dev)
>> {
>> return local == wdev_priv(dev->ieee80211_ptr);
>> diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
>> index cf46bba..ecb8f4d 100644
>> --- a/sound/pci/au88x0/au88x0.h
>> +++ b/sound/pci/au88x0/au88x0.h
>> @@ -211,7 +211,7 @@ static void vortex_adbdma_startfifo(vortex_t * vortex, int adbdma);
>> //static void vortex_adbdma_stopfifo(vortex_t *vortex, int adbdma);
>> static void vortex_adbdma_pausefifo(vortex_t * vortex, int adbdma);
>> static void vortex_adbdma_resumefifo(vortex_t * vortex, int adbdma);
>> -static int inline vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma);
>> +static inline int vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma);
>> static void vortex_adbdma_resetup(vortex_t *vortex, int adbdma);
>>
>> #ifndef CHIP_AU8810
>> @@ -219,7 +219,7 @@ static void vortex_wtdma_startfifo(vortex_t * vortex, int wtdma);
>> static void vortex_wtdma_stopfifo(vortex_t * vortex, int wtdma);
>> static void vortex_wtdma_pausefifo(vortex_t * vortex, int wtdma);
>> static void vortex_wtdma_resumefifo(vortex_t * vortex, int wtdma);
>> -static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma);
>> +static inline int vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma);
>> #endif
>>
>> /* global stuff. */
>> diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
>> index 23f49f3..d43252a 100644
>> --- a/sound/pci/au88x0/au88x0_core.c
>> +++ b/sound/pci/au88x0/au88x0_core.c
>> @@ -1249,7 +1249,7 @@ static void vortex_adbdma_resetup(vortex_t *vortex, int adbdma) {
>> }
>> }
>>
>> -static int inline vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma)
>> +static inline int vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma)
>> {
>> stream_t *dma = &vortex->dma_adb[adbdma];
>> int temp;
>> @@ -1498,7 +1498,7 @@ static int vortex_wtdma_getcursubuffer(vortex_t * vortex, int wtdma)
>> POS_SHIFT) & POS_MASK);
>> }
>> #endif
>> -static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma)
>> +static inline int vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma)
>> {
>> stream_t *dma = &vortex->dma_wt[wtdma];
>> int temp;
>
> Wow, what a huge CC list for such a simple change. Jesper, I think you
> should re-consider this next time. I bet you used get_maintainer script,
> didn't you? :)
>
> I have applied it to my tree now. If anyone has objections/has already
> applied part of the patch to subsystem tree, please let me know.
>
> Thanks,
>
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
oprofile-list mailing list
oprofile-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list
^ 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