* Re: [PATCH v2 12/12] net: ethernet: aquantia: Receive side scaling
From: kbuild test robot @ 2017-01-07 5:49 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel Belous
In-Reply-To: <22b9276ab1020a75c13aa2714922434886446d69.1483689029.git.vomlehn@texas.net>
[-- Attachment #1: Type: text/plain, Size: 8149 bytes --]
Hi David,
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
config: tile-allyesconfig (attached as .config)
compiler: tilegx-linux-gcc (GCC) 4.6.2
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=tile
All error/warnings (new ones prefixed by >>):
In file included from drivers/net/ethernet/aquantia/aq_main.c:14:0:
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
In file included from drivers/net/ethernet/aquantia/aq_main.c:16:0:
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.h:32:50: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
In file included from drivers/net/ethernet/aquantia/aq_main.c:17:0:
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.h:32:50: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
drivers/net/ethernet/aquantia/aq_main.c: In function 'aq_pci_probe_get_hw_ops_by_id':
>> drivers/net/ethernet/aquantia/aq_main.c:44:2: warning: passing argument 1 of 'hw_atl_a0_get_ops_by_id' from incompatible pointer type [enabled by default]
drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.h:32:19: note: expected 'struct pci_dev *' but argument is of type 'struct pci_dev *'
>> drivers/net/ethernet/aquantia/aq_main.c:50:2: warning: passing argument 1 of 'hw_atl_b0_get_ops_by_id' from incompatible pointer type [enabled by default]
drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.h:32:19: note: expected 'struct pci_dev *' but argument is of type 'struct pci_dev *'
drivers/net/ethernet/aquantia/aq_main.c: In function 'aq_pci_probe':
>> drivers/net/ethernet/aquantia/aq_main.c:224:6: warning: passing argument 2 of 'aq_pci_func_alloc' from incompatible pointer type [enabled by default]
drivers/net/ethernet/aquantia/aq_pci_func.h:17:23: note: expected 'struct pci_dev *' but argument is of type 'struct pci_dev *'
--
In file included from drivers/net/ethernet/aquantia/aq_nic.c:16:0:
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
--
In file included from drivers/net/ethernet/aquantia/aq_pci_func.c:12:0:
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/aq_pci_func.h:20:19: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
>> drivers/net/ethernet/aquantia/aq_pci_func.c:36:23: error: conflicting types for 'aq_pci_func_alloc'
drivers/net/ethernet/aquantia/aq_pci_func.h:17:23: note: previous declaration of 'aq_pci_func_alloc' was here
--
In file included from drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.c:15:0:
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.h:32:50: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.h:32:50: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.c:897:19: error: conflicting types for 'hw_atl_a0_get_ops_by_id'
drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.h:32:19: note: previous declaration of 'hw_atl_a0_get_ops_by_id' was here
--
In file included from drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.c:14:0:
>> drivers/net/ethernet/aquantia/hw_atl/../aq_pci_func.h:20:19: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/hw_atl/../aq_pci_func.h:20:19: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
In file included from drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.c:18:0:
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.h:32:50: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.c:955:19: error: conflicting types for 'hw_atl_b0_get_ops_by_id'
drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.h:32:19: note: previous declaration of 'hw_atl_b0_get_ops_by_id' was here
--
In file included from drivers/net/ethernet/aquantia/hw_atl/hw_atl_utils.c:16:0:
>> drivers/net/ethernet/aquantia/hw_atl/../aq_pci_func.h:20:19: warning: 'struct pci_dev' declared inside parameter list [enabled by default]
>> drivers/net/ethernet/aquantia/hw_atl/../aq_pci_func.h:20:19: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
vim +/aq_pci_func_alloc +36 drivers/net/ethernet/aquantia/aq_pci_func.c
bf5c9193 David VomLehn 2017-01-06 6 * under the terms and conditions of the GNU General Public License,
bf5c9193 David VomLehn 2017-01-06 7 * version 2, as published by the Free Software Foundation.
bf5c9193 David VomLehn 2017-01-06 8 */
bf5c9193 David VomLehn 2017-01-06 9
bf5c9193 David VomLehn 2017-01-06 10 /* File aq_pci_func.c: Definition of PCI functions. */
bf5c9193 David VomLehn 2017-01-06 11
bf5c9193 David VomLehn 2017-01-06 @12 #include "aq_pci_func.h"
bf5c9193 David VomLehn 2017-01-06 13 #include "aq_nic.h"
bf5c9193 David VomLehn 2017-01-06 14 #include "aq_vec.h"
bf5c9193 David VomLehn 2017-01-06 15 #include "aq_hw.h"
bf5c9193 David VomLehn 2017-01-06 16
bf5c9193 David VomLehn 2017-01-06 17 #include <linux/pci.h>
bf5c9193 David VomLehn 2017-01-06 18 #include <linux/interrupt.h>
bf5c9193 David VomLehn 2017-01-06 19
bf5c9193 David VomLehn 2017-01-06 20 struct aq_pci_func_s {
bf5c9193 David VomLehn 2017-01-06 21 struct pci_dev *pdev;
bf5c9193 David VomLehn 2017-01-06 22 struct aq_nic_s *port[AQ_CFG_PCI_FUNC_PORTS];
bf5c9193 David VomLehn 2017-01-06 23 void __iomem *mmio;
bf5c9193 David VomLehn 2017-01-06 24 void *aq_vec[AQ_CFG_PCI_FUNC_MSIX_IRQS];
bf5c9193 David VomLehn 2017-01-06 25 resource_size_t mmio_pa;
bf5c9193 David VomLehn 2017-01-06 26 unsigned int msix_entry_mask;
bf5c9193 David VomLehn 2017-01-06 27 unsigned int irq_type;
bf5c9193 David VomLehn 2017-01-06 28 unsigned int ports;
bf5c9193 David VomLehn 2017-01-06 29 bool is_pci_enabled;
bf5c9193 David VomLehn 2017-01-06 30 bool is_regions;
bf5c9193 David VomLehn 2017-01-06 31 bool is_pci_using_dac;
bf5c9193 David VomLehn 2017-01-06 32 struct aq_hw_caps_s aq_hw_caps;
bf5c9193 David VomLehn 2017-01-06 33 struct msix_entry msix_entry[AQ_CFG_PCI_FUNC_MSIX_IRQS];
bf5c9193 David VomLehn 2017-01-06 34 };
bf5c9193 David VomLehn 2017-01-06 35
bf5c9193 David VomLehn 2017-01-06 @36 struct aq_pci_func_s *aq_pci_func_alloc(struct aq_hw_ops *aq_hw_ops,
bf5c9193 David VomLehn 2017-01-06 37 struct pci_dev *pdev,
bf5c9193 David VomLehn 2017-01-06 38 const struct net_device_ops *ndev_ops,
bf5c9193 David VomLehn 2017-01-06 39 const struct ethtool_ops *eth_ops)
:::::: The code at line 36 was first introduced by commit
:::::: bf5c9193db6618c5e2ffad51a3c671d365740163 net: ethernet: aquantia: PCI operations
:::::: TO: David VomLehn <vomlehn@texas.net>
:::::: CC: 0day robot <fengguang.wu@intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 47301 bytes --]
^ permalink raw reply
* [PATCH net-next] mdio: Demote print from info to debug in mdio_device_register
From: Florian Fainelli @ 2017-01-07 6:27 UTC (permalink / raw)
To: netdev; +Cc: davem, andrew, Florian Fainelli
While it is useful to know which MDIO device is being registered, demote
the dev_info() to a dev_dbg().
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/phy/mdio_device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/phy/mdio_device.c b/drivers/net/phy/mdio_device.c
index 43c8fd46504b..fc3aaaa36b1d 100644
--- a/drivers/net/phy/mdio_device.c
+++ b/drivers/net/phy/mdio_device.c
@@ -67,7 +67,7 @@ int mdio_device_register(struct mdio_device *mdiodev)
{
int err;
- dev_info(&mdiodev->dev, "mdio_device_register\n");
+ dev_dbg(&mdiodev->dev, "mdio_device_register\n");
err = mdiobus_register_device(mdiodev);
if (err)
--
2.9.3
^ permalink raw reply related
* Re: [PATCH v2 04/12] net: ethernet: aquantia: Low-level hardware interfaces
From: kbuild test robot @ 2017-01-07 7:03 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel . Belous
In-Reply-To: <258c5f7206d65735020fb03113d47f1c2f00807d.1483689029.git.vomlehn@texas.net>
[-- Attachment #1: Type: text/plain, Size: 1632 bytes --]
Hi David,
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64
Note: the linux-review/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651 HEAD 3bdfdbb2c526cec3941e8e4136feb26e06a8df90 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_llh.c:17:28: fatal error: ../aq_hw_utils.h: No such file or directory
#include "../aq_hw_utils.h"
^
compilation terminated.
vim +17 drivers/net/ethernet/aquantia/hw_atl/hw_atl_llh.c
11 * Atlantic registers.
12 */
13
14 #include "hw_atl_llh.h"
15 #include "hw_atl_llh_internal.h"
16
> 17 #include "../aq_hw_utils.h"
18
19 /* global */
20 void reg_glb_cpu_sem_set(struct aq_hw_s *aq_hw, u32 glb_cpu_sem, u32 semaphore)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45854 bytes --]
^ permalink raw reply
* Re: [PATCH v2 05/12] net: ethernet: aquantia: Support for NIC-specific code
From: kbuild test robot @ 2017-01-07 8:12 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel Belous
In-Reply-To: <2c7a399a225633bb8cda2177a4581fb5cf154e2e.1483689029.git.vomlehn@texas.net>
[-- Attachment #1: Type: text/plain, Size: 1766 bytes --]
Hi David,
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64
Note: the linux-review/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651 HEAD 3bdfdbb2c526cec3941e8e4136feb26e06a8df90 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from drivers/net/ethernet/aquantia/aq_common.h:18:0,
from drivers/net/ethernet/aquantia/aq_main.h:15,
from drivers/net/ethernet/aquantia/aq_main.c:12:
>> drivers/net/ethernet/aquantia/aq_nic.h:16:20: fatal error: aq_rss.h: No such file or directory
#include "aq_rss.h"
^
compilation terminated.
vim +16 drivers/net/ethernet/aquantia/aq_nic.h
10 /* File aq_nic.h: Declaration of common code for NIC. */
11
12 #ifndef AQ_NIC_H
13 #define AQ_NIC_H
14
15 #include "aq_common.h"
> 16 #include "aq_rss.h"
17
18 struct aq_ring_s;
19 struct aq_pci_func_s;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45854 bytes --]
^ permalink raw reply
* Re: [PATCH v2 06/12] net: ethernet: aquantia: Atlantic A0 and B0 specific functions.
From: kbuild test robot @ 2017-01-07 8:31 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel Belous
In-Reply-To: <dddb5f605411f83ca50b86537ed32bf4171d3159.1483689029.git.vomlehn@texas.net>
[-- Attachment #1: Type: text/plain, Size: 1905 bytes --]
Hi David,
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64
Note: the linux-review/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651 HEAD 3bdfdbb2c526cec3941e8e4136feb26e06a8df90 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.c:12:22: fatal error: ../aq_hw.h: No such file or directory
#include "../aq_hw.h"
^
compilation terminated.
--
>> drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.c:12:22: fatal error: ../aq_hw.h: No such file or directory
#include "../aq_hw.h"
^
compilation terminated.
vim +12 drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.c
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 */
9
10 /* File hw_atl_a0.c: Definition of Atlantic hardware specific functions. */
11
> 12 #include "../aq_hw.h"
13 #include "../aq_hw_utils.h"
14 #include "../aq_ring.h"
15 #include "hw_atl_a0.h"
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45854 bytes --]
^ permalink raw reply
* Re: [net-next PATCH v2 5/6] i40e: Add TX and RX support in switchdev mode.
From: Jiri Pirko @ 2017-01-07 8:27 UTC (permalink / raw)
To: Jakub Kicinski
Cc: Samudrala, Sridhar, alexander.h.duyck, john.r.fastabend,
anjali.singhai, jakub.kicinski, davem, intel-wired-lan, netdev
In-Reply-To: <20170106110858.1598bbb8@laptop>
Fri, Jan 06, 2017 at 08:08:58PM CET, kubakici@wp.pl wrote:
>On Fri, 6 Jan 2017 18:30:35 +0100, Jiri Pirko wrote:
>> >> > + skb_dst_drop(skb);
>> >> > + dst_hold(&priv->vfpr_dst->dst);
>> >> > + skb_dst_set(skb, &priv->vfpr_dst->dst);
>> >> > + skb->dev = vsi->netdev;
>> >> This dst dance seems a bit odd to me. Why don't you just call
>> >> i40e_xmit_frame_ring with an extra arg holding the needed metadata?
>> >
>> >We don't have TX/RX queues associated with VFPR netdevs, so we need to set
>> >the dev to PF netdev and requeue the skb.
>>
>> Still, you eventually call a function within same .c file. Using dst
>> does not look right to me.
>
>Do you mean you don't like reusing the dst_metadata to store the
>representative id? The missing patch provided the reasoning behind
>this design [1]. It's mostly about being able to comfortably use the
>queuing infrastructure. Trying to push data from multiple netdevs into
>single ring at driver layer is even less pretty.
>
>[1] http://patchwork.ozlabs.org/patch/710563/
Okay, makes sense. Thanks.
^ permalink raw reply
* [PATCH] net: change init_inodecache() return void
From: yuan linyu @ 2017-01-07 9:18 UTC (permalink / raw)
To: netdev; +Cc: David S . Miller, yuan linyu
From: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
sock_init() call it but not check it's return value,
so change it to void return and add an internal BUG_ON() check.
Signed-off-by: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
---
net/socket.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index c65bb92..3ef02e9 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -287,7 +287,7 @@ static void init_once(void *foo)
inode_init_once(&ei->vfs_inode);
}
-static int init_inodecache(void)
+static void init_inodecache(void)
{
sock_inode_cachep = kmem_cache_create("sock_inode_cache",
sizeof(struct socket_alloc),
@@ -296,9 +296,7 @@ static int init_inodecache(void)
SLAB_RECLAIM_ACCOUNT |
SLAB_MEM_SPREAD | SLAB_ACCOUNT),
init_once);
- if (sock_inode_cachep == NULL)
- return -ENOMEM;
- return 0;
+ BUG_ON(sock_inode_cachep == NULL);
}
static const struct super_operations sockfs_ops = {
--
2.7.4
^ permalink raw reply related
* Re: [PATCH v2 01/12] net: ethernet: aquantia: Make and configuration files.
From: kbuild test robot @ 2017-01-07 9:22 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel Belous
In-Reply-To: <904a500ca838983102268d3c15d732cb138a5dd1.1483689029.git.vomlehn@texas.net>
[-- Attachment #1: Type: text/plain, Size: 2724 bytes --]
Hi David,
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc
Note: the linux-review/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651 HEAD 3bdfdbb2c526cec3941e8e4136feb26e06a8df90 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_main.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_nic.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_pci_func.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_vec.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_ring.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_hw_utils.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/aq_ethtool.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/hw_atl/hw_atl_a0.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/hw_atl/hw_atl_b0.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/hw_atl/hw_atl_utils.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
>> make[5]: *** No rule to make target 'drivers/net/ethernet/aquantia/hw_atl/hw_atl_llh.o', needed by 'drivers/net/ethernet/aquantia/atlantic.o'.
make[5]: Target '__build' not remade because of errors.
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51865 bytes --]
^ permalink raw reply
* Re: [PATCH] treewide: fix semicolon.cocci warnings
From: Michal Hocko @ 2017-01-07 9:23 UTC (permalink / raw)
To: kbuild test robot
Cc: kbuild-all, linux-mm, Pablo Neira Ayuso, Patrick McHardy,
Jozsef Kadlecsik, netfilter-devel, coreteam, netdev, linux-kernel
In-Reply-To: <20170107032642.GA130314@lkp-hsx03.lkp.intel.com>
On Sat 07-01-17 11:26:42, Wu Fengguang wrote:
> net/netfilter/x_tables.c:716:59-60: Unneeded semicolon
>
>
> Remove unneeded semicolon.
>
> Generated by: scripts/coccinelle/misc/semicolon.cocci
>
> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Thanks, I will fold this into the original patch.
> ---
>
> x_tables.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/net/netfilter/x_tables.c
> +++ b/net/netfilter/x_tables.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(xt_check_entry_offsets);
> unsigned int *xt_alloc_entry_offsets(unsigned int size)
> {
> if (size < (SIZE_MAX / sizeof(unsigned int)))
> - return kvmalloc(size * sizeof(unsigned int), GFP_KERNEL);;
> + return kvmalloc(size * sizeof(unsigned int), GFP_KERNEL);
>
> return NULL;
>
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: [net-next PATCH] net: reduce cycles spend on ICMP replies that gets rate limited
From: Jesper Dangaard Brouer @ 2017-01-07 9:28 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, brouer
In-Reply-To: <1483740486.9712.41.camel@edumazet-glaptop3.roam.corp.google.com>
On Fri, 06 Jan 2017 14:08:06 -0800
Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Fri, 2017-01-06 at 11:40 -0800, Eric Dumazet wrote:
> > On Fri, 2017-01-06 at 18:39 +0100, Jesper Dangaard Brouer wrote:
> >
> >
> > > @@ -648,13 +668,17 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
> > > }
> > > }
> > >
> > > - icmp_param = kmalloc(sizeof(*icmp_param), GFP_ATOMIC);
> > > - if (!icmp_param)
> > > - return;
> > > -
> > > sk = icmp_xmit_lock(net);
> > > if (!sk)
> > > - goto out_free;
> > > + goto out;
> > > +
> > > + /* Check global sysctl_icmp_msgs_per_sec ratelimit */
> > > + if (!icmpv4_global_allow(net, type, code))
> > > + goto out_unlock;
> > > +
> > > + icmp_param = kmalloc(sizeof(*icmp_param), GFP_ATOMIC);
> > > + if (!icmp_param)
> > > + goto out_unlock;
> >
>
> You could call icmp_xmit_lock() _after_ checking global limit perhaps.
>
> That would remove one atomic op.
The reason I don't do this is, because icmp_xmit_lock() disables BH and
icmp_global_allow() have a comment that it need to run with BH-disabled.
Thus, I'm depending on the BH-disable from icmp_xmit_lock().
I would have to move out the BH-disable part of icmp_xmit_lock, to do
this. Would that be acceptable?
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
^ permalink raw reply
* Re: [PATCHv2 net-next 15/16] net: mvpp2: add support for an additional clock needed for PPv2.2
From: Russell King - ARM Linux @ 2017-01-07 9:29 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Ian Campbell,
Pawel Moll, Mark Rutland, Kumar Gala, Andrew Lunn,
Yehuda Yitschak, Jason Cooper, Hanna Hawa, Nadav Haklai,
Gregory Clement, Stefan Chulski, Marcin Wojtas,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-16-git-send-email-thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
On Wed, Dec 28, 2016 at 05:46:31PM +0100, Thomas Petazzoni wrote:
> The PPv2.2 variant of the network controller needs an additional
> clock, the "MG clock" in order for the IP block to operate
> properly. This commit adds support for this additional clock to the
> driver, reworking as needed the error handling path.
There's more clocks that are required.
Firstly, what I'm finding is that the MDIO block in the CP110 does not
work at all (locks the system up if accessed) if these clocks are not
enabled:
cpm_syscon0 1 9, cpm_syscon0 1 6, cpm_syscon0 1 5
The XMDIO block requires the same clocks to be functional. Since the
MDIO and XMDIO blocks are actually part of the ethernet controller,
it's not that surprising.
We can't rely on the ethernet controller having been probed, because
the 8k has two sets of MDIO buses - one set per CP110. It's entirely
possible that people will put all their PHYs for both CP110 instances
on one set of MDIO buses (eg, the master). Indeed, this is exactly
what SolidRun have done, and hence how I found the problem.
So, it looks to me like DT doesn't actually describe the hardware here -
especially when looking at the reg properties, they overlap with each
other.
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
> ---
> drivers/net/ethernet/marvell/mvpp2.c | 25 +++++++++++++++++++++----
> 1 file changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
> index 20e9429..194de00 100644
> --- a/drivers/net/ethernet/marvell/mvpp2.c
> +++ b/drivers/net/ethernet/marvell/mvpp2.c
> @@ -702,6 +702,7 @@ struct mvpp2 {
> /* Common clocks */
> struct clk *pp_clk;
> struct clk *gop_clk;
> + struct clk *mg_clk;
>
> /* List of pointers to port structures */
> struct mvpp2_port **port_list;
> @@ -6899,6 +6900,18 @@ static int mvpp2_probe(struct platform_device *pdev)
> if (err < 0)
> goto err_pp_clk;
>
> + if (priv->hw_version == MVPP22) {
> + priv->mg_clk = devm_clk_get(&pdev->dev, "mg_clk");
> + if (IS_ERR(priv->mg_clk)) {
> + err = PTR_ERR(priv->mg_clk);
> + goto err_gop_clk;
> + }
> +
> + err = clk_prepare_enable(priv->mg_clk);
> + if (err < 0)
> + goto err_gop_clk;
> + }
> +
> /* Get system's tclk rate */
> priv->tclk = clk_get_rate(priv->pp_clk);
>
> @@ -6906,14 +6919,14 @@ static int mvpp2_probe(struct platform_device *pdev)
> err = mvpp2_init(pdev, priv);
> if (err < 0) {
> dev_err(&pdev->dev, "failed to initialize controller\n");
> - goto err_gop_clk;
> + goto err_mg_clk;
> }
>
> port_count = of_get_available_child_count(dn);
> if (port_count == 0) {
> dev_err(&pdev->dev, "no ports enabled\n");
> err = -ENODEV;
> - goto err_gop_clk;
> + goto err_mg_clk;
> }
>
> priv->port_list = devm_kcalloc(&pdev->dev, port_count,
> @@ -6921,19 +6934,22 @@ static int mvpp2_probe(struct platform_device *pdev)
> GFP_KERNEL);
> if (!priv->port_list) {
> err = -ENOMEM;
> - goto err_gop_clk;
> + goto err_mg_clk;
> }
>
> /* Initialize ports */
> for_each_available_child_of_node(dn, port_node) {
> err = mvpp2_port_probe(pdev, port_node, priv);
> if (err < 0)
> - goto err_gop_clk;
> + goto err_mg_clk;
> }
>
> platform_set_drvdata(pdev, priv);
> return 0;
>
> +err_mg_clk:
> + if (priv->hw_version == MVPP22)
> + clk_disable_unprepare(priv->mg_clk);
> err_gop_clk:
> clk_disable_unprepare(priv->gop_clk);
> err_pp_clk:
> @@ -6969,6 +6985,7 @@ static int mvpp2_remove(struct platform_device *pdev)
> aggr_txq->descs_phys);
> }
>
> + clk_disable_unprepare(priv->mg_clk);
> clk_disable_unprepare(priv->pp_clk);
> clk_disable_unprepare(priv->gop_clk);
>
> --
> 2.7.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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: [PATCHv2 net-next 01/16] dt-bindings: net: update Marvell PPv2 binding for PPv2.2 support
From: Russell King - ARM Linux @ 2017-01-07 9:32 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, David S. Miller,
devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Ian Campbell,
Pawel Moll, Mark Rutland, Kumar Gala, Andrew Lunn,
Yehuda Yitschak, Jason Cooper, Hanna Hawa, Nadav Haklai,
Gregory Clement, Stefan Chulski, Marcin Wojtas,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-2-git-send-email-thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
On Wed, Dec 28, 2016 at 05:46:17PM +0100, Thomas Petazzoni wrote:
> @@ -31,7 +43,7 @@ Optional properties (port):
> then fixed link is assumed, and the 'fixed-link' property is
> mandatory.
Not directly related to this patch, but this context is wrong. The
PP2 driver _requires_ a PHY. It doesn't support fixed-link in its
current form. I think the DT binding describes an expectation of
a future driver.
The side effect is that if trying to use a fixed-link on any port,
the ethernet driver fails to probe.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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: [PATCHv2 net-next 11/16] net: mvpp2: handle misc PPv2.1/PPv2.2 differences
From: Russell King - ARM Linux @ 2017-01-07 9:38 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: Mark Rutland, devicetree, Yehuda Yitschak, Jason Cooper,
Pawel Moll, Ian Campbell, netdev, Hanna Hawa, Nadav Haklai,
Rob Herring, Andrew Lunn, Kumar Gala, Gregory Clement,
Stefan Chulski, Marcin Wojtas, David S. Miller, linux-arm-kernel,
Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-12-git-send-email-thomas.petazzoni@free-electrons.com>
On Wed, Dec 28, 2016 at 05:46:27PM +0100, Thomas Petazzoni wrote:
> @@ -6511,7 +6515,9 @@ static int mvpp2_port_probe(struct platform_device *pdev,
> dev_err(&pdev->dev, "failed to init port %d\n", id);
> goto err_free_stats;
> }
> - mvpp2_port_power_up(port);
> +
> + if (priv->hw_version == MVPP21)
> + mvpp21_port_power_up(port);
This has the side effect that nothing clears the port reset bit in the
GMAC, which means there's no hope of the interface working - with the
reset bit set, the port is well and truely held in "link down" state.
In any case, the GMAC part is much the same as mvneta, and I think
that code should be shared rather than writing new versions of it.
There are some subtle differences between neta, pp2.1 and pp2.2, but
it's entirely doable (I have an implementation here as I wasn't going
to duplicate this code for my phylink conversion.)
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
^ permalink raw reply
* [PATCHv2 net-next 0/5] sctp: add support for generating stream reconf chunks
From: Xin Long @ 2017-01-07 9:42 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
This patchset is to add some functions to generate stream reconf chunks,
described in RFC6525 Section 3 and Section 4.
v1->v2:
- put these into a smaller group.
- rename some temporary variables in the codes.
- rename the titles of the commits and improve some changelogs.
Xin Long (5):
sctp: add a common helper function to generate stream reconf chunk
sctp: add support for generating stream reconf ssn reset request chunk
sctp: add support for generating stream reconf ssn/tsn reset request
chunk
sctp: add support for generating stream reconf response chunk
sctp: add support for generating stream reconf add streams request
chunk
include/linux/sctp.h | 68 ++++++++++++
include/net/sctp/sm.h | 17 ++-
include/net/sctp/structs.h | 3 +
net/sctp/associola.c | 1 +
net/sctp/sm_make_chunk.c | 270 +++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 358 insertions(+), 1 deletion(-)
--
2.1.0
^ permalink raw reply
* [PATCHv2 net-next 1/5] sctp: add a common helper function to generate stream reconf chunk
From: Xin Long @ 2017-01-07 9:42 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <cover.1483781759.git.lucien.xin@gmail.com>
This patch is to define a common api used to alloc memory and initialize
reconf chunk header that described in rfc6525 section 3.1.
All reconf chunks will be generated by calling this helper function.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
include/linux/sctp.h | 6 ++++++
net/sctp/sm_make_chunk.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index fcb4c36..cdc3b05 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -108,6 +108,7 @@ typedef enum {
/* Use hex, as defined in ADDIP sec. 3.1 */
SCTP_CID_ASCONF = 0xC1,
SCTP_CID_ASCONF_ACK = 0x80,
+ SCTP_CID_RECONF = 0x82,
} sctp_cid_t; /* enum */
@@ -710,4 +711,9 @@ struct sctp_infox {
struct sctp_association *asoc;
};
+struct sctp_reconf_chunk {
+ sctp_chunkhdr_t chunk_hdr;
+ __u8 params[0];
+} __packed;
+
#endif /* __LINUX_SCTP_H__ */
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index a15d824..fd58097 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -3526,3 +3526,36 @@ struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
return retval;
}
+
+/* RE-CONFIG 3.1 (RE-CONFIG chunk)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Type = 130 | Chunk Flags | Chunk Length |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * \ \
+ * / Re-configuration Parameter /
+ * \ \
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * \ \
+ * / Re-configuration Parameter (optional) /
+ * \ \
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+static struct sctp_chunk *sctp_make_reconf(
+ const struct sctp_association *asoc,
+ int length)
+{
+ struct sctp_reconf_chunk *reconf;
+ struct sctp_chunk *retval;
+
+ retval = sctp_make_control(asoc, SCTP_CID_RECONF, 0, length,
+ GFP_ATOMIC);
+ if (!retval)
+ return NULL;
+
+ reconf = (struct sctp_reconf_chunk *)retval->chunk_hdr;
+ retval->param_hdr.v = reconf->params;
+
+ return retval;
+}
--
2.1.0
^ permalink raw reply related
* [PATCHv2 net-next 2/5] sctp: add support for generating stream reconf ssn reset request chunk
From: Xin Long @ 2017-01-07 9:42 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <cover.1483781759.git.lucien.xin@gmail.com>
This patch is to add asoc strreset_outseq and strreset_inseq for
saving the reconf request sequence, initialize them when create
assoc and process init, and also to define Incoming and Outgoing
SSN Reset Request Parameter described in rfc6525 section 4.1 and
4.2, As they can be in one same chunk as section rfc6525 3.1-3
describes, it makes them in one function.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
include/linux/sctp.h | 26 ++++++++++++++
include/net/sctp/sm.h | 5 ++-
include/net/sctp/structs.h | 3 ++
net/sctp/associola.c | 1 +
net/sctp/sm_make_chunk.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 122 insertions(+), 1 deletion(-)
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index cdc3b05..d5da19c 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -200,6 +200,13 @@ typedef enum {
SCTP_PARAM_SUCCESS_REPORT = cpu_to_be16(0xc005),
SCTP_PARAM_ADAPTATION_LAYER_IND = cpu_to_be16(0xc006),
+ /* RE-CONFIG. Section 4 */
+ SCTP_PARAM_RESET_OUT_REQUEST = cpu_to_be16(0x000d),
+ SCTP_PARAM_RESET_IN_REQUEST = cpu_to_be16(0x000e),
+ SCTP_PARAM_RESET_TSN_REQUEST = cpu_to_be16(0x000f),
+ SCTP_PARAM_RESET_RESPONSE = cpu_to_be16(0x0010),
+ SCTP_PARAM_RESET_ADD_OUT_STREAMS = cpu_to_be16(0x0011),
+ SCTP_PARAM_RESET_ADD_IN_STREAMS = cpu_to_be16(0x0012),
} sctp_param_t; /* enum */
@@ -716,4 +723,23 @@ struct sctp_reconf_chunk {
__u8 params[0];
} __packed;
+struct sctp_strreset_req {
+ sctp_paramhdr_t param_hdr;
+ __u32 request_seq;
+} __packed;
+
+struct sctp_strreset_outreq {
+ sctp_paramhdr_t param_hdr;
+ __u32 request_seq;
+ __u32 response_seq;
+ __u32 send_reset_at_tsn;
+ __u16 list_of_streams[0];
+} __packed;
+
+struct sctp_strreset_inreq {
+ sctp_paramhdr_t param_hdr;
+ __u32 request_seq;
+ __u16 list_of_streams[0];
+} __packed;
+
#endif /* __LINUX_SCTP_H__ */
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index ca6c971..3462cb0 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -259,7 +259,10 @@ struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
__u32 new_cum_tsn, size_t nstreams,
struct sctp_fwdtsn_skip *skiplist);
struct sctp_chunk *sctp_make_auth(const struct sctp_association *asoc);
-
+struct sctp_chunk *sctp_make_strreset_req(
+ const struct sctp_association *asoc,
+ __u16 stream_num, __u16 *stream_list,
+ bool out, bool in);
void sctp_chunk_assign_tsn(struct sctp_chunk *);
void sctp_chunk_assign_ssn(struct sctp_chunk *);
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 4741ec2..3dc983e 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -1865,6 +1865,9 @@ struct sctp_association {
temp:1, /* Is it a temporary association? */
prsctp_enable:1;
+ __u32 strreset_outseq; /* Update after receiving response */
+ __u32 strreset_inseq; /* Update after receiving request */
+
struct sctp_priv_assoc_stats stats;
int sent_cnt_removable;
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 36294f7..42ece6f 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -207,6 +207,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
* association to the same value as the initial TSN.
*/
asoc->addip_serial = asoc->c.initial_tsn;
+ asoc->strreset_outseq = asoc->c.initial_tsn;
INIT_LIST_HEAD(&asoc->addip_chunk_list);
INIT_LIST_HEAD(&asoc->asconf_ack_list);
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index fd58097..172385c 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -1844,6 +1844,7 @@ struct sctp_association *sctp_unpack_cookie(
retval->next_tsn = retval->c.initial_tsn;
retval->ctsn_ack_point = retval->next_tsn - 1;
retval->addip_serial = retval->c.initial_tsn;
+ retval->strreset_outseq = retval->c.initial_tsn;
retval->adv_peer_ack_point = retval->ctsn_ack_point;
retval->peer.prsctp_capable = retval->c.prsctp_capable;
retval->peer.adaptation_ind = retval->c.adaptation_ind;
@@ -2387,6 +2388,8 @@ int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk,
asoc->peer.i.initial_tsn =
ntohl(peer_init->init_hdr.initial_tsn);
+ asoc->strreset_inseq = asoc->peer.i.initial_tsn;
+
/* Apply the upper bounds for output streams based on peer's
* number of inbound streams.
*/
@@ -3559,3 +3562,88 @@ static struct sctp_chunk *sctp_make_reconf(
return retval;
}
+
+/* RE-CONFIG 4.1 (STREAM OUT RESET)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 13 | Parameter Length = 16 + 2 * N |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Request Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Response Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Sender's Last Assigned TSN |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Stream Number 1 (optional) | Stream Number 2 (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * / ...... /
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Stream Number N-1 (optional) | Stream Number N (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * RE-CONFIG 4.2 (STREAM IN RESET)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 14 | Parameter Length = 8 + 2 * N |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Request Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Stream Number 1 (optional) | Stream Number 2 (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * / ...... /
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Stream Number N-1 (optional) | Stream Number N (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+struct sctp_chunk *sctp_make_strreset_req(
+ const struct sctp_association *asoc,
+ __u16 stream_num, __u16 *stream_list,
+ bool out, bool in)
+{
+ struct sctp_strreset_outreq outreq;
+ __u16 stream_len = stream_num * 2;
+ struct sctp_strreset_inreq inreq;
+ struct sctp_chunk *retval;
+ __u16 outlen, inlen, i;
+
+ outlen = (sizeof(outreq) + stream_len) * out;
+ inlen = (sizeof(inreq) + stream_len) * in;
+
+ retval = sctp_make_reconf(asoc, outlen + inlen);
+ if (!retval)
+ return NULL;
+
+ for (i = 0; i < stream_num; i++)
+ stream_list[i] = htons(stream_list[i]);
+
+ if (outlen) {
+ outreq.param_hdr.type = SCTP_PARAM_RESET_OUT_REQUEST;
+ outreq.param_hdr.length = htons(outlen);
+ outreq.request_seq = htonl(asoc->strreset_outseq);
+ outreq.response_seq = htonl(asoc->strreset_inseq - 1);
+ outreq.send_reset_at_tsn = htonl(asoc->next_tsn - 1);
+
+ sctp_addto_chunk(retval, sizeof(outreq), &outreq);
+
+ if (stream_len)
+ sctp_addto_chunk(retval, stream_len, stream_list);
+ }
+
+ if (inlen) {
+ inreq.param_hdr.type = SCTP_PARAM_RESET_IN_REQUEST;
+ inreq.param_hdr.length = htons(inlen);
+ inreq.request_seq = htonl(asoc->strreset_outseq + out);
+
+ sctp_addto_chunk(retval, sizeof(inreq), &inreq);
+
+ if (stream_len)
+ sctp_addto_chunk(retval, stream_len, stream_list);
+ }
+
+ for (i = 0; i < stream_num; i++)
+ stream_list[i] = ntohs(stream_list[i]);
+
+ return retval;
+}
--
2.1.0
^ permalink raw reply related
* [PATCHv2 net-next 3/5] sctp: add support for generating stream reconf ssn/tsn reset request chunk
From: Xin Long @ 2017-01-07 9:43 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <cover.1483781759.git.lucien.xin@gmail.com>
This patch is to define SSN/TSN Reset Request Parameter described
in rfc6525 section 4.3.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
include/linux/sctp.h | 5 +++++
include/net/sctp/sm.h | 2 ++
net/sctp/sm_make_chunk.c | 29 +++++++++++++++++++++++++++++
3 files changed, 36 insertions(+)
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index d5da19c..cc4c74d 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -742,4 +742,9 @@ struct sctp_strreset_inreq {
__u16 list_of_streams[0];
} __packed;
+struct sctp_strreset_tsnreq {
+ sctp_paramhdr_t param_hdr;
+ __u32 request_seq;
+} __packed;
+
#endif /* __LINUX_SCTP_H__ */
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index 3462cb0..c658700 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -263,6 +263,8 @@ struct sctp_chunk *sctp_make_strreset_req(
const struct sctp_association *asoc,
__u16 stream_num, __u16 *stream_list,
bool out, bool in);
+struct sctp_chunk *sctp_make_strreset_tsnreq(
+ const struct sctp_association *asoc);
void sctp_chunk_assign_tsn(struct sctp_chunk *);
void sctp_chunk_assign_ssn(struct sctp_chunk *);
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 172385c..f1d8f07 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -3647,3 +3647,32 @@ struct sctp_chunk *sctp_make_strreset_req(
return retval;
}
+
+/* RE-CONFIG 4.3 (SSN/TSN RESET ALL)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 15 | Parameter Length = 8 |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Request Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+struct sctp_chunk *sctp_make_strreset_tsnreq(
+ const struct sctp_association *asoc)
+{
+ struct sctp_strreset_tsnreq tsnreq;
+ __u16 length = sizeof(tsnreq);
+ struct sctp_chunk *retval;
+
+ retval = sctp_make_reconf(asoc, length);
+ if (!retval)
+ return NULL;
+
+ tsnreq.param_hdr.type = SCTP_PARAM_RESET_TSN_REQUEST;
+ tsnreq.param_hdr.length = htons(length);
+ tsnreq.request_seq = htonl(asoc->strreset_outseq);
+
+ sctp_addto_chunk(retval, sizeof(tsnreq), &tsnreq);
+
+ return retval;
+}
--
2.1.0
^ permalink raw reply related
* [PATCHv2 net-next 4/5] sctp: add support for generating stream reconf response chunk
From: Xin Long @ 2017-01-07 9:43 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <cover.1483781759.git.lucien.xin@gmail.com>
This patch is to define Re-configuration Response Parameter described
in rfc6525 section 4.4. As optional fields are only for SSN/TSN Reset
Request Parameter, it uses another function to make that.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
include/linux/sctp.h | 24 ++++++++++++++++
include/net/sctp/sm.h | 7 +++++
net/sctp/sm_make_chunk.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 105 insertions(+)
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index cc4c74d..c4fcc7d 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -747,4 +747,28 @@ struct sctp_strreset_tsnreq {
__u32 request_seq;
} __packed;
+enum {
+ SCTP_STRRESET_NOTHING_TO_DO = 0x00,
+ SCTP_STRRESET_PERFORMED = 0x01,
+ SCTP_STRRESET_DENIED = 0x02,
+ SCTP_STRRESET_ERR_WRONG_SSN = 0x03,
+ SCTP_STRRESET_ERR_IN_PROGRESS = 0x04,
+ SCTP_STRRESET_ERR_BAD_SEQNO = 0x05,
+ SCTP_STRRESET_IN_PROGRESS = 0x06,
+};
+
+struct sctp_strreset_resp {
+ sctp_paramhdr_t param_hdr;
+ __u32 response_seq;
+ __u32 result;
+} __packed;
+
+struct sctp_strreset_resptsn {
+ sctp_paramhdr_t param_hdr;
+ __u32 response_seq;
+ __u32 result;
+ __u32 senders_next_tsn;
+ __u32 receivers_next_tsn;
+} __packed;
+
#endif /* __LINUX_SCTP_H__ */
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index c658700..013d69f 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -265,6 +265,13 @@ struct sctp_chunk *sctp_make_strreset_req(
bool out, bool in);
struct sctp_chunk *sctp_make_strreset_tsnreq(
const struct sctp_association *asoc);
+struct sctp_chunk *sctp_make_strreset_resp(
+ const struct sctp_association *asoc,
+ __u32 result, __u32 sn);
+struct sctp_chunk *sctp_make_strreset_tsnresp(
+ struct sctp_association *asoc,
+ __u32 result, __u32 sn,
+ __u32 sender_tsn, __u32 receiver_tsn);
void sctp_chunk_assign_tsn(struct sctp_chunk *);
void sctp_chunk_assign_ssn(struct sctp_chunk *);
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index f1d8f07..34edb30 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -3676,3 +3676,77 @@ struct sctp_chunk *sctp_make_strreset_tsnreq(
return retval;
}
+
+/* RE-CONFIG 4.4 (RESP)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 16 | Parameter Length |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Response Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Result |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+struct sctp_chunk *sctp_make_strreset_resp(
+ const struct sctp_association *asoc,
+ __u32 result, __u32 sn)
+{
+ struct sctp_strreset_resp resp;
+ __u16 length = sizeof(resp);
+ struct sctp_chunk *retval;
+
+ retval = sctp_make_reconf(asoc, length);
+ if (!retval)
+ return NULL;
+
+ resp.param_hdr.type = SCTP_PARAM_RESET_RESPONSE;
+ resp.param_hdr.length = htons(length);
+ resp.response_seq = htonl(sn);
+ resp.result = htonl(result);
+
+ sctp_addto_chunk(retval, sizeof(resp), &resp);
+
+ return retval;
+}
+
+/* RE-CONFIG 4.4 OPTIONAL (TSNRESP)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 16 | Parameter Length |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Response Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Result |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Sender's Next TSN (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Receiver's Next TSN (optional) |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+struct sctp_chunk *sctp_make_strreset_tsnresp(
+ struct sctp_association *asoc,
+ __u32 result, __u32 sn,
+ __u32 sender_tsn, __u32 receiver_tsn)
+{
+ struct sctp_strreset_resptsn tsnresp;
+ __u16 length = sizeof(tsnresp);
+ struct sctp_chunk *retval;
+
+ retval = sctp_make_reconf(asoc, length);
+ if (!retval)
+ return NULL;
+
+ tsnresp.param_hdr.type = SCTP_PARAM_RESET_RESPONSE;
+ tsnresp.param_hdr.length = htons(length);
+
+ tsnresp.response_seq = htonl(sn);
+ tsnresp.result = htonl(result);
+ tsnresp.senders_next_tsn = htonl(sender_tsn);
+ tsnresp.receivers_next_tsn = htonl(receiver_tsn);
+
+ sctp_addto_chunk(retval, sizeof(tsnresp), &tsnresp);
+
+ return retval;
+}
--
2.1.0
^ permalink raw reply related
* [PATCHv2 net-next 5/5] sctp: add support for generating stream reconf add streams request chunk
From: Xin Long @ 2017-01-07 9:43 UTC (permalink / raw)
To: network dev, linux-sctp
Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <cover.1483781759.git.lucien.xin@gmail.com>
This patch is to define Add Incoming/Outgoing Streams Request
Parameter described in rfc6525 section 4.5 and 4.6. They can
be in one same chunk trunk as rfc6525 section 3.1-7 describes,
so make them in one function.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
include/linux/sctp.h | 7 +++++++
include/net/sctp/sm.h | 3 +++
net/sctp/sm_make_chunk.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 56 insertions(+)
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index c4fcc7d..3a9f234 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -771,4 +771,11 @@ struct sctp_strreset_resptsn {
__u32 receivers_next_tsn;
} __packed;
+struct sctp_strreset_addstrm {
+ sctp_paramhdr_t param_hdr;
+ __u32 request_seq;
+ __u16 number_of_streams;
+ __u16 reserved;
+} __packed;
+
#endif /* __LINUX_SCTP_H__ */
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index 013d69f..35986d0 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -272,6 +272,9 @@ struct sctp_chunk *sctp_make_strreset_tsnresp(
struct sctp_association *asoc,
__u32 result, __u32 sn,
__u32 sender_tsn, __u32 receiver_tsn);
+struct sctp_chunk *sctp_make_strreset_addstrm(
+ const struct sctp_association *asoc,
+ __u16 out, __u16 in);
void sctp_chunk_assign_tsn(struct sctp_chunk *);
void sctp_chunk_assign_ssn(struct sctp_chunk *);
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 34edb30..e6a5530 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -3750,3 +3750,49 @@ struct sctp_chunk *sctp_make_strreset_tsnresp(
return retval;
}
+
+/* RE-CONFIG 4.5/4.6 (ADD STREAM)
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Parameter Type = 17 | Parameter Length = 12 |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Re-configuration Request Sequence Number |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | Number of new streams | Reserved |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+struct sctp_chunk *sctp_make_strreset_addstrm(
+ const struct sctp_association *asoc,
+ __u16 out, __u16 in)
+{
+ struct sctp_strreset_addstrm addstrm;
+ __u16 length = sizeof(addstrm);
+ struct sctp_chunk *retval;
+
+ retval = sctp_make_reconf(asoc, (!!out + !!in) * length);
+ if (!retval)
+ return NULL;
+
+ if (out) {
+ addstrm.param_hdr.type = SCTP_PARAM_RESET_ADD_OUT_STREAMS;
+ addstrm.param_hdr.length = htons(length);
+ addstrm.number_of_streams = htons(out);
+ addstrm.request_seq = htonl(asoc->strreset_outseq);
+ addstrm.reserved = 0;
+
+ sctp_addto_chunk(retval, length, &addstrm);
+ }
+
+ if (in) {
+ addstrm.param_hdr.type = SCTP_PARAM_RESET_ADD_IN_STREAMS;
+ addstrm.param_hdr.length = htons(length);
+ addstrm.number_of_streams = htons(in);
+ addstrm.request_seq = htonl(asoc->strreset_outseq + !!out);
+ addstrm.reserved = 0;
+
+ sctp_addto_chunk(retval, length, &addstrm);
+ }
+
+ return retval;
+}
--
2.1.0
^ permalink raw reply related
* [PATCH] fix itnull.cocci warnings
From: Julia Lawall @ 2017-01-07 9:46 UTC (permalink / raw)
To: Harsh Jain
Cc: hariprasad, netdev, herbert, linux-crypto, Atul Gupta, kbuild-all
The first argument to list_for_each_entry cannot be NULL.
Generated by: scripts/coccinelle/iterators/itnull.cocci
CC: Harsh Jain <harsh@chelsio.com>
Signed-off-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---
This code comes from the following git tree:
url:
https://github.com/0day-ci/linux/commits/Harsh-Jain/crypto-chcr-Bug-fixes/20170107-093356
base:
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
master
In-Reply-To:
<8e0086b56d8fb61637d179c32a09a1bca03c4186.1483599449.git.harsh@chelsio.com>
chcr_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/crypto/chelsio/chcr_core.c
+++ b/drivers/crypto/chelsio/chcr_core.c
@@ -61,7 +61,7 @@ int assign_chcr_device(struct chcr_dev *
*/
mutex_lock(&dev_mutex); /* TODO ? */
list_for_each_entry(u_ctx, &uld_ctx_list, entry)
- if (u_ctx && u_ctx->dev) {
+ if (u_ctx->dev) {
*dev = u_ctx->dev;
ret = 0;
break;
^ permalink raw reply
* Re: [PATCH v2 12/12] net: ethernet: aquantia: Receive side scaling
From: kbuild test robot @ 2017-01-07 9:48 UTC (permalink / raw)
To: Alexander Loktionov
Cc: kbuild-all, netdev, David VomLehn, Simon Edelhaus,
Alexander Loktionov, Dmitrii Tarakanov, Pavel Belous
In-Reply-To: <22b9276ab1020a75c13aa2714922434886446d69.1483689029.git.vomlehn@texas.net>
Hi David,
[auto build test WARNING on net-next/master]
[also build test WARNING on v4.10-rc2 next-20170106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Alexander-Loktionov/net-ethernet-aquantia-Add-AQtion-2-5-5-GB-NIC-driver/20170107-100651
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/linux/compiler.h:253:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
--
include/linux/compiler.h:253:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
--
include/linux/compiler.h:253:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
--
include/linux/compiler.h:253:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
>> drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h:44:28: sparse: marked inline, but without a definition
vim +44 drivers/net/ethernet/aquantia/hw_atl/../aq_hw_utils.h
96511018 David VomLehn 2017-01-06 28 unsigned int AQ_HW_WAIT_FOR_i; \
96511018 David VomLehn 2017-01-06 29 for (AQ_HW_WAIT_FOR_i = _N_; (!(_B_)) && (AQ_HW_WAIT_FOR_i);\
96511018 David VomLehn 2017-01-06 30 --AQ_HW_WAIT_FOR_i) {\
96511018 David VomLehn 2017-01-06 31 udelay(_US_); \
96511018 David VomLehn 2017-01-06 32 } \
96511018 David VomLehn 2017-01-06 33 if (!AQ_HW_WAIT_FOR_i) {\
96511018 David VomLehn 2017-01-06 34 err = ETIME; \
96511018 David VomLehn 2017-01-06 35 } \
96511018 David VomLehn 2017-01-06 36 } while (0)
96511018 David VomLehn 2017-01-06 37
96511018 David VomLehn 2017-01-06 38 struct aq_hw_s;
96511018 David VomLehn 2017-01-06 39
96511018 David VomLehn 2017-01-06 40 void aq_hw_write_reg_bit(struct aq_hw_s *aq_hw, u32 addr, u32 msk,
96511018 David VomLehn 2017-01-06 41 u32 shift, u32 val);
96511018 David VomLehn 2017-01-06 42 u32 aq_hw_read_reg_bit(struct aq_hw_s *aq_hw, u32 addr, u32 msk, u32 shift);
96511018 David VomLehn 2017-01-06 43 u32 aq_hw_read_reg(struct aq_hw_s *hw, u32 reg);
96511018 David VomLehn 2017-01-06 @44 inline void aq_hw_write_reg(struct aq_hw_s *hw, u32 reg, u32 value);
96511018 David VomLehn 2017-01-06 45 int aq_hw_err_from_flags(struct aq_hw_s *hw);
96511018 David VomLehn 2017-01-06 46
96511018 David VomLehn 2017-01-06 47 #endif /* AQ_HW_UTILS_H */
:::::: The code at line 44 was first introduced by commit
:::::: 9651101834438045cb888ea0bea44cc575b69d03 net: ethernet: aquantia: Hardware interface and utility functions
:::::: TO: David VomLehn <vomlehn@texas.net>
:::::: CC: 0day robot <fengguang.wu@intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply
* Re: [net-next PATCH] net: reduce cycles spend on ICMP replies that gets rate limited
From: Jesper Dangaard Brouer @ 2017-01-07 10:31 UTC (permalink / raw)
To: David Miller; +Cc: eric.dumazet, netdev, brouer, xiyou.wangcong
In-Reply-To: <20170106.221042.1641025960219244932.davem@davemloft.net>
On Fri, 06 Jan 2017 22:10:42 -0500 (EST)
David Miller <davem@davemloft.net> wrote:
> BTW Eric, you asked about kmalloc() allocation, you were CC:'d in the
> patch which did this :-)
>
> commit 9a99d4a50cb8ce516adf0f2436138d4c8e6e4535
> Author: Cong Wang <amwang@redhat.com>
> Date: Sun Jun 2 15:00:52 2013 +0000
>
> icmp: avoid allocating large struct on stack
>
> struct icmp_bxm is a large struct, reduce stack usage
> by allocating it on heap.
>
> Cc: Eric Dumazet <eric.dumazet@gmail.com>
> Cc: Joe Perches <joe@perches.com>
> Cc: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
Did a quick revert, and tested again. It is not the major bottleneck,
but we do save something. The major bottleneck is still the call to
__ip_route_output_key_hash (invoked by icmp_route_lookup).
Single flow improvement from 1719182 pps to 1783368 pps.
- 64186 pps
- (1/1783368-1/1719182)*10^9 = -20.93 nanosec
* 4GHz approx = 20.93*4 = 83.72 cycles
The optimal SLUB fast-path on this machine is 54 cycles(tsc) 13.557 ns,
thus the saving is actually higher than expected. But low compared to
avoiding the icmp_route_lookup.
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
^ permalink raw reply
* Re: [PATCH net-next] bridge: multicast to unicast
From: M. Braun @ 2017-01-07 10:32 UTC (permalink / raw)
To: Johannes Berg, Felix Fietkau, Linus Lüssing, netdev
Cc: bridge, linux-wireless, David S . Miller, linux-kernel
In-Reply-To: <1483710841.12677.1.camel@sipsolutions.net>
Am 06.01.2017 um 14:54 schrieb Johannes Berg:
>
>> The bridge layer can use IGMP snooping to ensure that the multicast
>> stream is only transmitted to clients that are actually a member of
>> the group. Can the mac80211 feature do the same?
>
> No, it'll convert the packet for all clients that are behind that
> netdev. But that's an argument for dropping the mac80211 feature, which
> hasn't been merged upstream yet, no?
But there is multicast/broadcast traffic like e.g. ARP and some IP
multicast groups that are not covered by IGMP snooping. The mac80211
patch converts this to unicast as well, which the bridge cannot do.
That way, these features both complement and overlap each other.
Regards,
Michael
^ permalink raw reply
* Re: [PATCHv1 2/7] TAP: Renaming tap related APIs, data structures, macros
From: kbuild test robot @ 2017-01-07 10:44 UTC (permalink / raw)
To: Sainath Grandhi
Cc: kbuild-all, netdev, davem, mahesh, linux-kernel, Sainath Grandhi
In-Reply-To: <1483742009-19184-3-git-send-email-sainath.grandhi@intel.com>
[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]
Hi Sainath,
[auto build test ERROR on net/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[cannot apply to net-next/master]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Sainath-Grandhi/Refactor-macvtap-to-re-use-tap-functionality-by-other-virtual-intefaces/20170107-165707
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
>> ERROR: ".tap_get_socket" [drivers/vhost/vhost_net.ko] undefined!
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 22529 bytes --]
^ permalink raw reply
* Re: [PATCHv1 6/7] TAP: tap as an independent module
From: kbuild test robot @ 2017-01-07 10:46 UTC (permalink / raw)
To: Sainath Grandhi
Cc: kbuild-all, netdev, davem, mahesh, linux-kernel, Sainath Grandhi
In-Reply-To: <1483742009-19184-7-git-send-email-sainath.grandhi@intel.com>
[-- Attachment #1: Type: text/plain, Size: 1468 bytes --]
Hi Sainath,
[auto build test ERROR on net/master]
[also build test ERROR on v4.10-rc2 next-20170106]
[cannot apply to net-next/master]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Sainath-Grandhi/Refactor-macvtap-to-re-use-tap-functionality-by-other-virtual-intefaces/20170107-165707
config: s390-default_defconfig (attached as .config)
compiler: s390x-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=s390
All errors (new ones prefixed by >>):
ERROR: "tap_get_socket" [drivers/vhost/vhost_net.ko] undefined!
>> ERROR: "tap_create_cdev" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_queue_resize" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_get_minor" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_destroy_cdev" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_handle_frame" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_free_minor" [drivers/net/macvtap.ko] undefined!
>> ERROR: "tap_del_queues" [drivers/net/macvtap.ko] undefined!
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 16728 bytes --]
^ 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