* Re: [PATCH] team: set IFF_SLAVE on team ports
From: Chas Williams @ 2018-10-06 13:28 UTC (permalink / raw)
To: Jiri Pirko; +Cc: Stephen Hemminger, Jan Blunck, LKML, netdev
In-Reply-To: <20181005064637.GA3061@nanopsycho.orion>
On 10/05/18 02:46, Jiri Pirko wrote:
> Wed, Oct 03, 2018 at 07:30:06PM CEST, 3chas3@gmail.com wrote:
>>
>>
>> On 10/03/18 06:44, Jiri Pirko wrote:
>>> Tue, Oct 02, 2018 at 11:20:25PM CEST, 3chas3@gmail.com wrote:
>>>>
>>>>
>>>> On 10/02/18 07:12, Jiri Pirko wrote:
>>>>> Mon, Oct 01, 2018 at 04:06:16PM CEST, 3chas3@gmail.com wrote:
>>>>>>
>>>>>>
>>>>>> On 09/30/18 05:34, Jiri Pirko wrote:
>>>>>>> Sun, Sep 30, 2018 at 11:38:05AM CEST, stephen@networkplumber.org wrote:
>>>>>>>> On Sun, 30 Sep 2018 09:14:14 +0200
>>>>>>>> Jiri Pirko <jiri@resnulli.us> wrote:
>>>>>>>>
>>>>>>>>> Thu, Sep 27, 2018 at 04:04:26PM CEST, 3chas3@gmail.com wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 07/10/15 02:41, Jiri Pirko wrote:
>>>>>>>>>>> Thu, Jul 09, 2015 at 05:36:55PM CEST, jblunck@infradead.org wrote:
>>>>>>>>>>>> On Thu, Jul 9, 2015 at 12:07 PM, Jiri Pirko <jiri@resnulli.us> wrote:
>>>>>>>>>>>>> Thu, Jul 09, 2015 at 11:58:34AM CEST, jblunck@infradead.org wrote:
>>>>>>>>>>>>>> The code in net/ipv6/addrconf.c:addrconf_notify() tests for IFF_SLAVE to
>>>>>>>>>>>>>> decide if it should start the address configuration. Since team ports
>>>>>>>>>>>>>> shouldn't get link-local addresses assigned lets set IFF_SLAVE when linking
>>>>>>>>>>>>>> a port to the team master.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I don't want to use IFF_SLAVE in team. Other master-slave devices are
>>>>>>>>>>>>> not using that as well, for example bridge, ovs, etc.
>>>>>>>>>>>>
>>>>>>>>>>>> Maybe they need to get fixed too. I've used that flag because it is
>>>>>>>>>>>> documented as
>>>>>>>>>>>> a "slave of a load balancer" which describes what a team port is.
>>>>>>>>>>>>
>>>>>>>>>>>>> I think that this should be fixed in addrconf_notify. It should lookup
>>>>>>>>>>>>> if there is a master on top and bail out in that case.
>>>>>>>>>>>>
>>>>>>>>>>>> There are other virtual interfaces that have a master assigned and want to
>>>>>>>>>>>> participate in IPv6 address configuration.
>>>>>>>>>>>
>>>>>>>>>>> Can you give me an example?
>>>>>>>>>>
>>>>>>>>>> I would like to revisit this patch (yes, I know it has been a while). I
>>>>>>>>>> believe the VRF implementation uses master to group the interfaces under
>>>>>>>>>> a single interface.
>>>>>>>>>>
>>>>>>>>>> I don't see a reason not to use IFF_SLAVE since team and bonding are fairly
>>>>>>>>>> similar.
>>>>>>>>>
>>>>>>>>> Again, why do you need team port to have IFF_SLAVE flag? What do you
>>>>>>>>> want to achieve
>>>>>>>>
>>>>>>>> Without setting this flag IPv6 will try and make a link specific address.
>>>>>
>>>>> You are talking about addrconf_notify() right? Easy to fix to check
>>>>> something more convenient. Like netif_is_lag_port() if you want to avoid
>>>>> it for bond/team. netif_is_ovs_port(), netif_is_bridge_port() etc. Lot's
>>>>> of helpers to cover this.
>>>>
>>>> OK, IPv6 should probably be using this.
>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>
>>>>>>> Why is it not an issue with bridge, ovs, and other master-slave devices?
>>>>>>>
>>>>>>
>>>>>> It very well might be an issue for bridge and ovs. Other master-slave
>>>>>> devices include the existing VRF implementation in the kernel and those slave
>>>>>> interfaces will certainly want to use IPv6.
>>>>>>
>>>>>> However, IFF_SLAVE has a specific meaning:
>>>>>>
>>>>>> ./include/uapi/linux/if.h: * @IFF_SLAVE: slave of a load balancer. Volatile.
>>>>>
>>>>> I know that some userspace apps are using this flag to determine a
>>>>> "bonding slave". I don't think that they care much about eql...
>>>>>
>>>>>
>>>>>>
>>>>>> The bonding driver is not the only user:
>>>>>>
>>>>>> ./drivers/net/eql.c:#define eql_is_slave(dev) ((dev->flags & IFF_SLAVE) ==
>>>>>> IFF_SLAVE)
>>>>>> ./drivers/net/eql.c: slave->dev->flags &= ~IFF_SLAVE;
>>>>>> ./drivers/net/eql.c: slave->dev->flags |= IFF_SLAVE;
>>>>>>
>>>>>> The team driver would like to use this same flag since it is a load balancer
>>>>>> as well. The side effect of not assigning IPv6 is a bonus. The fact that
>>>>>
>>>>> No, please leave IFF_SLAVE as it is. Both kernel and userspace have
>>>>> their clear indications right now about the master/slave relationships.
>>>>
>>>> The team driver does create a master/slave relationship. The team slaves are
>>>> literally slaves of the master device. It's not clear to me
>>>> why you we can't mark the slaves of the team master as actually being
>>>> slave interfaces?
>>>
>>> So? IFF_SLAVE flag serves a different purpose. That's it. Team does not
>>> need it, bridge does not need it, macvlan does not need it, etc.
>>
>> I agree. But team *is* a load balancer. Why can't team mark its slave
>> interfaces as IFF_SLAVE? They are literally slaves of a load balancer which
>> is the exact meaning of the IFF_SLAVE flag.
>
> I described that multiple times, don't want to repeat myself. Please
> read the thread again.
I have read the flag and you never described what the flag is for. The
only vague mention is "to indicate a bonding slave". A team slave is
exactly the same thing as a bonding slave. If there is some application
using IFF_SLAVE to find those slaves, it should worry about team slaves
as well. Given that the eql driver is using this flag for the same
purpose doesn't give bonding exclusive rights to use this flag with its
interfaces.
>
>>
>>>
>>>
>>>>
>>>>>
>>>>>
>>>>>> bridges and ovs are also likely broken is a different issue. Should there be
>>>>>> a another flag that says "layer 2 only"? Very possibly, but that is
>>>>>> something all these interfaces should be using to include bonding, team, eql,
>>>>>> obs, bridge etc. That's not a reasonable objection to labeling the team
>>>>>> slave as slaves since they are literally slaves of a load balancer.
>>>>>>
>>>>>>
>>>>>>
^ permalink raw reply
* [PATCH net 1/2] net/smc: use __aigned_u64 for 64-bit smc_diag fields
From: Eugene Syromiatnikov @ 2018-10-06 20:32 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, linux-kernel, Ursula Braun, Karsten Graul,
Hans Wippel
Commit v4.19-rc1~140^2~507^2~1 ("net/smc: add SMC-D diag support")
introduced new UAPI-exposed structure, struct smcd_diag_dmbinfo.
However, it's not usable by compat binaries, as it has different
layout there. Probably, the most straightforward fix that will avoid
the similar issues in the future is to use __aligned_u64 for 64-bit
fields.
Fixes: 4b1b7d3b30a6 ("net/smc: add SMC-D diag support")
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
---
include/uapi/linux/smc_diag.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/linux/smc_diag.h b/include/uapi/linux/smc_diag.h
index ac9e8c9..6180c6d 100644
--- a/include/uapi/linux/smc_diag.h
+++ b/include/uapi/linux/smc_diag.h
@@ -18,14 +18,14 @@ struct smc_diag_req {
* on the internal clcsock, and more SMC-related socket data
*/
struct smc_diag_msg {
- __u8 diag_family;
- __u8 diag_state;
- __u8 diag_mode;
- __u8 diag_shutdown;
+ __u8 diag_family;
+ __u8 diag_state;
+ __u8 diag_mode;
+ __u8 diag_shutdown;
struct inet_diag_sockid id;
- __u32 diag_uid;
- __u64 diag_inode;
+ __u32 diag_uid;
+ __aligned_u64 diag_inode;
};
/* Mode of a connection */
@@ -99,11 +99,11 @@ struct smc_diag_fallback {
};
struct smcd_diag_dmbinfo { /* SMC-D Socket internals */
- __u32 linkid; /* Link identifier */
- __u64 peer_gid; /* Peer GID */
- __u64 my_gid; /* My GID */
- __u64 token; /* Token of DMB */
- __u64 peer_token; /* Token of remote DMBE */
+ __u32 linkid; /* Link identifier */
+ __aligned_u64 peer_gid; /* Peer GID */
+ __aligned_u64 my_gid; /* My GID */
+ __aligned_u64 token; /* Token of DMB */
+ __aligned_u64 peer_token; /* Token of remote DMBE */
};
#endif /* _UAPI_SMC_DIAG_H_ */
--
2.1.4
^ permalink raw reply related
* [PATCH net 2/2] net/smc: retain old name for diag_mode field
From: Eugene Syromiatnikov @ 2018-10-06 20:32 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, linux-kernel, Ursula Braun, Karsten Graul,
Hans Wippel
Commit v4.19-rc1~140^2~285^2~4 changed the name of diag_fallback field
of struct smc_diag_msg structure to diag_mode. However, this structure
is a part of UAPI, and this change breaks user space applications that
use it ([1], for example). Since the new name is more suitable, convert
the field to a union that provides access to the data via both the new
and the old name.
[1] https://gitlab.com/strace/strace/blob/v4.24/netlink_smc_diag.c#L165
Fixes: c601171d7a60 ("net/smc: provide smc mode in smc_diag.c")
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
---
include/uapi/linux/smc_diag.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/smc_diag.h b/include/uapi/linux/smc_diag.h
index 6180c6d..8cb3a6f 100644
--- a/include/uapi/linux/smc_diag.h
+++ b/include/uapi/linux/smc_diag.h
@@ -20,7 +20,10 @@ struct smc_diag_req {
struct smc_diag_msg {
__u8 diag_family;
__u8 diag_state;
- __u8 diag_mode;
+ union {
+ __u8 diag_mode;
+ __u8 diag_fallback; /* the old name of the field */
+ };
__u8 diag_shutdown;
struct inet_diag_sockid id;
--
2.1.4
^ permalink raw reply related
* Re: [PATCH] rtlwifi: rtl8821ae: add in a missing break in switch statement
From: Larry Finger @ 2018-10-06 22:00 UTC (permalink / raw)
To: Joe Perches, Kalle Valo, Colin King
Cc: Ping-Ke Shih, David S . Miller, Tsang-Shian Lin, linux-wireless,
netdev, kernel-janitors, linux-kernel
In-Reply-To: <4e376919169bad265dc02040ae02548d2ac6c503.camel@perches.com>
On 10/6/18 3:17 PM, Joe Perches wrote:
> On Sat, 2018-10-06 at 15:05 -0500, Larry Finger wrote:
>> On 10/6/18 2:30 PM, Kalle Valo wrote:
>>> Colin King <colin.king@canonical.com> writes:
>>>
>>>> From: Colin Ian King <colin.king@canonical.com>
>>>>
>>>> The switch case RATR_INX_WIRELESS_MC has a missing break, this seems
>>>> to be unintentional as the setting of variable ret gets overwritten
>>>> when the case falls through to the following RATR_INX_WIRELESS_AC_5N
>>>> case. Fix this by adding in the missing break.
>>>>
>>>> Detected by CoverityScan, CID#1167237 ("Missing break in switch")
>>>>
>>>> Fixes: 3c05bedb5fef ("Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver")
>>>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>>>> ---
>>>> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 1 +
>>>
>>> Is the fixes line correct? This patch is not for staging.
>>
>> No, the correct fixes commit is 21e4b0726dc67 (" rtlwifi: rtl8821ae: Move driver
>> from staging to regular tree").
>>
>> This driver was initially placed in staging as it was needed for a special
>> project, which is the commit that Colin used. As the patch subject states, the
>> driver was later moved to the regular wireless tree.
>>
>> That break is required, thus ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
>
> Why not remove this entirely and use the generic routine in
> drivers/net/wireless/realtek/rtlwifi/base.c?
>
> Is there a real difference?
I did not see any difference other than the removal of a bunch of magic numbers
and better formatting.
Larry
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8821ae: add in a missing break in switch statement
From: Joe Perches @ 2018-10-06 22:03 UTC (permalink / raw)
To: Larry Finger, Kalle Valo, Colin King
Cc: Ping-Ke Shih, David S . Miller, Tsang-Shian Lin, linux-wireless,
netdev, kernel-janitors, linux-kernel
In-Reply-To: <a4286648-dda5-eb46-97bf-f0314ec2d113@lwfinger.net>
On Sat, 2018-10-06 at 17:00 -0500, Larry Finger wrote:
> On 10/6/18 3:17 PM, Joe Perches wrote:
> > On Sat, 2018-10-06 at 15:05 -0500, Larry Finger wrote:
> > > On 10/6/18 2:30 PM, Kalle Valo wrote:
> > > > Colin King <colin.king@canonical.com> writes:
> > > >
> > > > > From: Colin Ian King <colin.king@canonical.com>
> > > > >
> > > > > The switch case RATR_INX_WIRELESS_MC has a missing break, this seems
> > > > > to be unintentional as the setting of variable ret gets overwritten
> > > > > when the case falls through to the following RATR_INX_WIRELESS_AC_5N
> > > > > case. Fix this by adding in the missing break.
> > > > >
> > > > > Detected by CoverityScan, CID#1167237 ("Missing break in switch")
> > > > >
> > > > > Fixes: 3c05bedb5fef ("Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver")
> > > > > Signed-off-by: Colin Ian King <colin.king@canonical.com>
> > > > > ---
> > > > > drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 1 +
> > > >
> > > > Is the fixes line correct? This patch is not for staging.
> > >
> > > No, the correct fixes commit is 21e4b0726dc67 (" rtlwifi: rtl8821ae: Move driver
> > > from staging to regular tree").
> > >
> > > This driver was initially placed in staging as it was needed for a special
> > > project, which is the commit that Colin used. As the patch subject states, the
> > > driver was later moved to the regular wireless tree.
> > >
> > > That break is required, thus ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
> >
> > Why not remove this entirely and use the generic routine in
> > drivers/net/wireless/realtek/rtlwifi/base.c?
> >
> > Is there a real difference?
>
> I did not see any difference other than the removal of a bunch of magic numbers
> and better formatting.
Me neither.
^ permalink raw reply
* Re: KASAN: use-after-free Read in vhost_transport_cancel_pkt
From: syzbot @ 2018-10-06 15:47 UTC (permalink / raw)
To: jasowang, kvm, linux-kernel, mst, netdev, stefanha,
syzkaller-bugs, virtualization
In-Reply-To: <00000000000068750f0576c178ab@google.com>
syzbot has found a reproducer for the following crash on:
HEAD commit: 091a1eaa0e30 Merge branch 'akpm'
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15627ae6400000
kernel config: https://syzkaller.appspot.com/x/.config?x=c0af03fe452b65fb
dashboard link: https://syzkaller.appspot.com/bug?extid=e3e074963495f92a89ed
compiler: gcc (GCC) 8.0.1 20180413 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=120d5491400000
IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+e3e074963495f92a89ed@syzkaller.appspotmail.com
8021q: adding VLAN 0 to HW filter on device team0
8021q: adding VLAN 0 to HW filter on device team0
8021q: adding VLAN 0 to HW filter on device team0
8021q: adding VLAN 0 to HW filter on device team0
==================================================================
BUG: KASAN: use-after-free in debug_spin_lock_before
kernel/locking/spinlock_debug.c:83 [inline]
BUG: KASAN: use-after-free in do_raw_spin_lock+0x1c0/0x200
kernel/locking/spinlock_debug.c:112
Read of size 4 at addr ffff8801c5e6977c by task syz-executor0/7470
CPU: 1 PID: 7470 Comm: syz-executor0 Not tainted 4.19.0-rc6+ #47
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1c4/0x2b4 lib/dump_stack.c:113
print_address_description.cold.8+0x9/0x1ff mm/kasan/report.c:256
kasan_report_error mm/kasan/report.c:354 [inline]
kasan_report.cold.9+0x242/0x309 mm/kasan/report.c:412
__asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:432
debug_spin_lock_before kernel/locking/spinlock_debug.c:83 [inline]
do_raw_spin_lock+0x1c0/0x200 kernel/locking/spinlock_debug.c:112
__raw_spin_lock_bh include/linux/spinlock_api_smp.h:136 [inline]
_raw_spin_lock_bh+0x39/0x40 kernel/locking/spinlock.c:168
spin_lock_bh include/linux/spinlock.h:334 [inline]
vhost_transport_cancel_pkt+0x15e/0x910 drivers/vhost/vsock.c:244
vsock_transport_cancel_pkt net/vmw_vsock/af_vsock.c:1114 [inline]
vsock_stream_connect+0x903/0xe40 net/vmw_vsock/af_vsock.c:1241
__sys_connect+0x37d/0x4c0 net/socket.c:1664
__do_sys_connect net/socket.c:1675 [inline]
__se_sys_connect net/socket.c:1672 [inline]
__x64_sys_connect+0x73/0xb0 net/socket.c:1672
do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x457579
Code: 1d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7
48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
ff 0f 83 eb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007fbd405dac78 EFLAGS: 00000246 ORIG_RAX: 000000000000002a
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000457579
RDX: 0000000000000080 RSI: 0000000020000400 RDI: 0000000000000007
RBP: 000000000072bfa0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fbd405db6d4
R13: 00000000004bda00 R14: 00000000004cc478 R15: 00000000ffffffff
Allocated by task 7456:
save_stack+0x43/0xd0 mm/kasan/kasan.c:448
set_track mm/kasan/kasan.c:460 [inline]
kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:553
__do_kmalloc_node mm/slab.c:3682 [inline]
__kmalloc_node+0x47/0x70 mm/slab.c:3689
kmalloc_node include/linux/slab.h:555 [inline]
kvmalloc_node+0xb9/0xf0 mm/util.c:423
kvmalloc include/linux/mm.h:577 [inline]
vhost_vsock_dev_open+0xa2/0x5a0 drivers/vhost/vsock.c:511
misc_open+0x3ca/0x560 drivers/char/misc.c:141
chrdev_open+0x25a/0x710 fs/char_dev.c:417
do_dentry_open+0x499/0x1250 fs/open.c:771
vfs_open+0xa0/0xd0 fs/open.c:880
do_last fs/namei.c:3418 [inline]
path_openat+0x12bf/0x5160 fs/namei.c:3534
^ permalink raw reply
* [PATCH] netfilter: xt_quota: Don't use aligned attribute in sizeof
From: Nathan Chancellor @ 2018-10-06 23:33 UTC (permalink / raw)
To: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal
Cc: netfilter-devel, coreteam, netdev, linux-kernel,
Nathan Chancellor
Clang warns:
net/netfilter/xt_quota.c:47:44: warning: 'aligned' attribute ignored
when parsing type [-Wignored-attributes]
BUILD_BUG_ON(sizeof(atomic64_t) != sizeof(__aligned_u64));
^~~~~~~~~~~~~
Use 'sizeof(__u64)' instead, as the alignment doesn't affect the size
of the type.
Fixes: e9837e55b020 ("netfilter: xt_quota: fix the behavior of xt_quota module")
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
net/netfilter/xt_quota.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/xt_quota.c b/net/netfilter/xt_quota.c
index 6afa7f468a73..fceae245eb03 100644
--- a/net/netfilter/xt_quota.c
+++ b/net/netfilter/xt_quota.c
@@ -44,7 +44,7 @@ static int quota_mt_check(const struct xt_mtchk_param *par)
{
struct xt_quota_info *q = par->matchinfo;
- BUILD_BUG_ON(sizeof(atomic64_t) != sizeof(__aligned_u64));
+ BUILD_BUG_ON(sizeof(atomic64_t) != sizeof(__u64));
if (q->flags & ~XT_QUOTA_MASK)
return -EINVAL;
--
2.19.0
^ permalink raw reply related
* Re: [PATCH net-next v7 28/28] net: WireGuard secure network tunnel
From: Andrew Lunn @ 2018-10-06 23:54 UTC (permalink / raw)
To: Jason A. Donenfeld; +Cc: linux-kernel, netdev, davem, gregkh
In-Reply-To: <20181006025709.4019-29-Jason@zx2c4.com>
Hi Jason
The BUG() statements all seemed to be removed. Thanks.
We still have 1 errors, 193 warnings, 7529 lines checked from
checkpatch. There are still some Macros flow control statements in
them, despite me pointed them out multiple times.
Im not reviewing this version any further. Until you get the very
basics right, i doubt this patch is going to make much progress
towards inclusion.
Andrew
^ permalink raw reply
* Re: [PATCH net-next 11/19] net: usb: aqc111: Add support for changing MTU
From: Andrew Lunn @ 2018-10-06 16:56 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <4217a1b53f61c5da8f6ba69326c7b759174817e7.1538734658.git.igor.russkikh@aquantia.com>
> +static int aqc111_change_mtu(struct net_device *net, int new_mtu)
> +{
> + struct usbnet *dev = netdev_priv(net);
> + u16 reg16 = 0;
> + u8 buf[5];
> +
> + if (new_mtu <= 0 || new_mtu > 16334) {
> + netdev_info(net, "Invalid MTU %d requested, hw max 16334",
> + new_mtu);
> + return -EINVAL;
> + }
Please set net->min_mtu, and net->max_mtu, and the core should do this
checking for you. See dev_set_mtu_ext().
Andrew
^ permalink raw reply
* Re: [PATCH net-next 14/19] net: usb: aqc111: Implement set_rx_mode callback
From: Andrew Lunn @ 2018-10-06 17:03 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <d148df93858d4f8918d4fe5876fcdd308e6dfbef.1538734658.git.igor.russkikh@aquantia.com>
> +static void aqc111_set_rx_mode(struct net_device *net)
> +{
> + struct usbnet *dev = netdev_priv(net);
> + struct aqc111_data *aqc111_data = (struct aqc111_data *)dev->data[0];
> + u8 *m_filter = ((u8 *)dev->data) + 12;
Please could you explain is.
Thanks
Andrew
^ permalink raw reply
* Re: [PATCH net-next 16/19] net: usb: aqc111: Add RX VLAN filtering support
From: Andrew Lunn @ 2018-10-06 17:05 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <100f2bdc2e23a298afdf240180d224cf39d692ad.1538734658.git.igor.russkikh@aquantia.com>
> @@ -994,6 +1083,7 @@ static int aqc111_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
> new_skb->truesize = new_skb->len + sizeof(struct sk_buff);
> if (aqc111_data->rx_checksum)
> aqc111_rx_checksum(new_skb, &pkt_desc);
> +
> if (pkt_desc->vlan_ind)
> __vlan_hwaccel_put_tag(new_skb,
> htons(ETH_P_8021Q),
Please squash this hunk into the correct patch.
Thanks
Andrew
^ permalink raw reply
* Re: [PATCH net-next 17/19] net: usb: aqc111: Initialize ethtool_ops structure
From: Andrew Lunn @ 2018-10-06 17:08 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <26309478ca61ae4163acb455d62021cf6801c29a.1538734658.git.igor.russkikh@aquantia.com>
On Fri, Oct 05, 2018 at 10:25:22AM +0000, Igor Russkikh wrote:
> From: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
>
> Implement get_drvinfo, set/get_msglevel, get_link callbacks
>
> Signed-off-by: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
> Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
> ---
> drivers/net/usb/aqc111.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/drivers/net/usb/aqc111.c b/drivers/net/usb/aqc111.c
> index 9908b0a04da6..ade2b60b4811 100644
> --- a/drivers/net/usb/aqc111.c
> +++ b/drivers/net/usb/aqc111.c
> @@ -9,6 +9,7 @@
>
> #include <linux/module.h>
> #include <linux/netdevice.h>
> +#include <linux/ethtool.h>
> #include <linux/mii.h>
> #include <linux/usb.h>
> #include <linux/crc32.h>
> @@ -18,6 +19,9 @@
>
> #include "aqc111.h"
>
> +#define DRIVER_VERSION "1.0.0.0"
Hi Igor
This is been discussed a number of times before, and i expect it to be
discussed again. Driver versions of useless. Please drop it.
> +#define DRIVER_NAME "Aquantia AQtion USB to 5GbE"
It might be nice to include the module name in here, making it easy to
link the module to the driver.
> +
> static int __aqc111_read_cmd(struct usbnet *dev, u8 cmd, u16 value,
> u16 index, u16 size, void *data, int nopm)
> {
> @@ -170,6 +174,24 @@ static int aq_mdio_write_cmd(struct usbnet *dev, u16 value, u16 index,
> return aqc111_write_cmd(dev, AQ_PHY_CMD, value, index, size, data);
> }
>
Andrew
^ permalink raw reply
* Re: [PATCH net-next 06/19] net: usb: aqc111: Introduce link management
From: Andrew Lunn @ 2018-10-06 17:35 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <cec5cd88988e0985e3fdd1343906ef649b01f646.1538734658.git.igor.russkikh@aquantia.com>
> @@ -202,6 +319,9 @@ static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf)
> dev->net->netdev_ops = &aqc111_netdev_ops;
>
> aqc111_read_fw_version(dev, aqc111_data);
> + aqc111_data->autoneg = AUTONEG_ENABLE;
> + aqc111_data->advertised_speed = (usb_speed == USB_SPEED_SUPER) ?
> + SPEED_5000 : SPEED_1000;
Hi Igor
I'd be interested in knowing the reasoning behind this.
USB 3 has a raw bandwidth of 5Gbps. But it is a shared bus. So you
have no guaranteed you are actually going to get the needed bandwidth
to support line rate.
USB 2.0 only gives you 480Mbps. So it won't even give you the full
1G. So using the same reasoning for USB3, maybe you should limit it to
100Mbps?
I personally would not apply restrictions on the PHY depending on what
USB is being used.
This becomes more important when using SFPs. If i have an SFP peer
which is expecting 2500Base-X, but because the device is plugged into
USB 2 port it is forced to use 1000Base-X, it is not going to get
link.
Andrew
^ permalink raw reply
* Re: [PATCH net-next 18/19] net: usb: aqc111: Implement get/set_link_ksettings callbacks
From: Andrew Lunn @ 2018-10-06 17:38 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <694b148fa9e79d42fe8a815821ae5b0bc12c4aea.1538734658.git.igor.russkikh@aquantia.com>
> +static int aqc111_set_link_ksettings(struct net_device *net,
> + const struct ethtool_link_ksettings *elk)
> +{
> + struct usbnet *dev = netdev_priv(net);
> + enum usb_device_speed usb_speed = dev->udev->speed;
> + struct aqc111_data *aqc111_data = (struct aqc111_data *)dev->data[0];
> + u32 speed = elk->base.speed;
> + u8 autoneg = elk->base.autoneg;
> +
> + if (autoneg == AUTONEG_ENABLE) {
> + if (aqc111_data->autoneg != AUTONEG_ENABLE) {
> + aqc111_data->autoneg = AUTONEG_ENABLE;
> + aqc111_data->advertised_speed =
> + (usb_speed == USB_SPEED_SUPER) ?
> + SPEED_5000 : SPEED_1000;
> + aqc111_set_phy_speed(dev, aqc111_data->autoneg,
> + aqc111_data->advertised_speed);
> + }
> + } else {
> + if (speed != SPEED_100 &&
> + speed != SPEED_1000 &&
> + speed != SPEED_2500 &&
> + speed != SPEED_5000 &&
> + speed != SPEED_UNKNOWN)
> + return -EINVAL;
> +
> + if (usb_speed != USB_SPEED_SUPER && speed > SPEED_1000)
> + return -EINVAL;
> +
Hi Igor
Maybe you are missing a check for duplex here?
> + aqc111_data->autoneg = AUTONEG_DISABLE;
> + if (speed != SPEED_UNKNOWN)
> + aqc111_data->advertised_speed = speed;
> +
> + aqc111_set_phy_speed(dev, aqc111_data->autoneg,
> + aqc111_data->advertised_speed);
> + }
> +
> + return 0;
> +}
> +
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8821ae: add in a missing break in switch statement
From: Larry Finger @ 2018-10-07 0:48 UTC (permalink / raw)
To: Joe Perches, Kalle Valo, Colin King
Cc: Ping-Ke Shih, David S . Miller, Tsang-Shian Lin, linux-wireless,
netdev, kernel-janitors, linux-kernel
In-Reply-To: <b0971d2219b7121d06fc2439922a2b759203dd2b.camel@perches.com>
On 10/6/18 5:03 PM, Joe Perches wrote:
> On Sat, 2018-10-06 at 17:00 -0500, Larry Finger wrote:
>> On 10/6/18 3:17 PM, Joe Perches wrote:
>>> On Sat, 2018-10-06 at 15:05 -0500, Larry Finger wrote:
>>>> On 10/6/18 2:30 PM, Kalle Valo wrote:
>>>>> Colin King <colin.king@canonical.com> writes:
>>>>>
>>>>>> From: Colin Ian King <colin.king@canonical.com>
>>>>>>
>>>>>> The switch case RATR_INX_WIRELESS_MC has a missing break, this seems
>>>>>> to be unintentional as the setting of variable ret gets overwritten
>>>>>> when the case falls through to the following RATR_INX_WIRELESS_AC_5N
>>>>>> case. Fix this by adding in the missing break.
>>>>>>
>>>>>> Detected by CoverityScan, CID#1167237 ("Missing break in switch")
>>>>>>
>>>>>> Fixes: 3c05bedb5fef ("Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver")
>>>>>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>>>>>> ---
>>>>>> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 1 +
>>>>>
>>>>> Is the fixes line correct? This patch is not for staging.
>>>>
>>>> No, the correct fixes commit is 21e4b0726dc67 (" rtlwifi: rtl8821ae: Move driver
>>>> from staging to regular tree").
>>>>
>>>> This driver was initially placed in staging as it was needed for a special
>>>> project, which is the commit that Colin used. As the patch subject states, the
>>>> driver was later moved to the regular wireless tree.
>>>>
>>>> That break is required, thus ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
>>>
>>> Why not remove this entirely and use the generic routine in
>>> drivers/net/wireless/realtek/rtlwifi/base.c?
>>>
>>> Is there a real difference?
>>
>> I did not see any difference other than the removal of a bunch of magic numbers
>> and better formatting.
>
> Me neither.
Colin,
Do you want to push the new patch removing the duplicate routine from rtl8821ae?
Larry
^ permalink raw reply
* Re: [PATCH net-next 19/19] net: usb: aqc111: Add support for wake on LAN by MAGIC packet
From: Andrew Lunn @ 2018-10-06 17:49 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org, Dmitry Bezrukov
In-Reply-To: <1a7d4af1b3a6397b76338d543f86bb4c327f5060.1538734658.git.igor.russkikh@aquantia.com>
> + if (aqc111_data->dpa) {
> + aqc111_set_phy_speed(dev, AUTONEG_DISABLE, SPEED_100);
I don't think that works. You should leave AUTONEG on, but only
advertise SPEED_100 and trigger auto-neg. If you force it to 100,
there is no guarantee the peer will figure out what the new link speed
is. I've often seen failed auto-net result in 10/Half. So you will
loose the link, making WoL pointless.
> +static int aqc111_resume(struct usb_interface *intf)
> +{
> + struct usbnet *dev = usb_get_intfdata(intf);
> + struct aqc111_data *aqc111_data = (struct aqc111_data *)dev->data[0];
> + u8 reg8;
> + u16 reg16;
> +
> + netif_carrier_off(dev->net);
> +
> + /* Power up ethernet PHY */
> + aqc111_data->phy_ops.phy_power = 1;
> + aqc111_data->phy_ops.low_power = 0;
> + aqc111_data->phy_ops.wol = 0;
> + if (aqc111_data->dpa) {
> + aqc111_read_cmd_nopm(dev, AQ_PHY_POWER, 0, 0, 1, ®8);
> + if (reg8 == 0x00) {
> + reg8 = 0x02;
> + aqc111_write_cmd_nopm(dev, AQ_PHY_POWER, 0, 0,
> + 1, ®8);
> + msleep(200);
> + }
> +
> + aq_mdio_read_cmd(dev, AQ_GLB_STD_CTRL_REG, AQ_PHY_GLOBAL_ADDR,
> + 2, ®16);
> + if (reg16 & AQ_PHY_LOW_POWER_MODE) {
> + reg16 &= ~AQ_PHY_LOW_POWER_MODE;
> + aq_mdio_write_cmd(dev, AQ_GLB_STD_CTRL_REG,
> + AQ_PHY_GLOBAL_ADDR, 2, ®16);
> + }
> + }
> +
> + reg8 = 0xFF;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_BM_INT_MASK,
> + 1, 1, ®8);
> + /* Configure RX control register => start operation */
> + reg16 = aqc111_data->rxctl;
> + reg16 &= ~SFR_RX_CTL_START;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, 2, ®16);
> +
> + reg16 |= SFR_RX_CTL_START;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, 2, ®16);
> +
> + aqc111_set_phy_speed(dev, aqc111_data->autoneg,
> + aqc111_data->advertised_speed);
> +
Should that be conditional on aqc111_data->dpa?
> +struct aqc111_wol_cfg {
> + u8 hw_addr[6];
> + u8 flags;
> + u8 rsvd[283];
> +};
Do you really need these 283 bytes??
> +
> +#define WOL_CFG_SIZE sizeof(struct aqc111_wol_cfg)
> +
> struct aqc111_data {
> u16 rxctl;
> u8 rx_checksum;
> @@ -228,6 +238,7 @@ struct aqc111_data {
> } fw_ver;
> u8 dpa; /*direct PHY access*/
> struct aqc111_phy_options phy_ops;
> + struct aqc111_wol_cfg wol_cfg;
Those 283 bytes make this whole structure bigger...
Andrew
^ permalink raw reply
* Re: [PATCH net-next 00/19] Add support for Aquantia AQtion USB to 5/2.5GbE devices
From: Andrew Lunn @ 2018-10-06 17:51 UTC (permalink / raw)
To: Igor Russkikh
Cc: David S . Miller, linux-usb@vger.kernel.org,
netdev@vger.kernel.org
In-Reply-To: <cover.1538734658.git.igor.russkikh@aquantia.com>
On Fri, Oct 05, 2018 at 10:24:37AM +0000, Igor Russkikh wrote:
> This patchset introduces support for new multigig ethernet to USB dongle,
> developed jointly by Aquantia (Phy) and ASIX (USB MAC).
>
> The driver has similar structure with other ASIX MAC drivers (AX88179), but
> with a number of important differences:
> - Driver supports both direct Phy and custom firmware interface for Phy
> programming. This is due to different firmware modules available with this
> product.
> - Driver handles new 2.5G/5G link speed configuration and reporting.
> - Device support all speeds from 100M up to 5G.
> - Device supports MTU up to 16K.
>
> Device supports various standard networking features, like
> checksum offloads, vlan tagging/filtering, TSO.
>
> The code of this driver is based on original ASIX sources and was extended
> by Aquantia for 5G multigig support.
>
Hi Igor, Dmitry
Nice patch set, well broken up, easy to review.
Andrew
^ permalink raw reply
* Re: [PATCH net-next] net: dsa: mc88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
From: Andrew Lunn @ 2018-10-06 18:37 UTC (permalink / raw)
To: Marek Behun; +Cc: netdev, Florian Fainelli, David S . Miller
In-Reply-To: <20181006023810.20be216e@nic.cz>
On Sat, Oct 06, 2018 at 02:38:10AM +0200, Marek Behun wrote:
> > Hi Marek
> >
> > I'm confused.
> >
> > The alt bit is used for configuring 2500. You say 2500 is only
> > supported on port 5. But !port is only true for port 0?
> >
> > Andrew
>
> On Topaz alt_bit is used only for port 0 for differentiating 100 mbps
> vs 200 mbps. The choices for SpdValue are 0 for 10 mbps, 1 for 100
> mbps or 200 mbps (if alt_bit), 2 for 1000 mbps and 3 for 2500 mbps.
> 2500 is allowed only on port 5. alt_bit is not used on Topaz for port
> 5 (serdes), therefore I used !port.
Hi Marek
The commit message could be clearer. It might be going too far, but
you could split this into three.
1) Basic framework code, with works correctly for ports 1-4.
2) The special 200Mbps for port 0
3) The special 2500Mbps for port 5.
But i would also accept a clearer commit message.
Thanks
Andrew
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8821ae: add in a missing break in switch statement
From: Larry Finger @ 2018-10-06 20:05 UTC (permalink / raw)
To: Kalle Valo, Colin King
Cc: Ping-Ke Shih, David S . Miller, Tsang-Shian Lin, linux-wireless,
netdev, kernel-janitors, linux-kernel
In-Reply-To: <87r2h2euuy.fsf@kamboji.qca.qualcomm.com>
On 10/6/18 2:30 PM, Kalle Valo wrote:
> Colin King <colin.king@canonical.com> writes:
>
>> From: Colin Ian King <colin.king@canonical.com>
>>
>> The switch case RATR_INX_WIRELESS_MC has a missing break, this seems
>> to be unintentional as the setting of variable ret gets overwritten
>> when the case falls through to the following RATR_INX_WIRELESS_AC_5N
>> case. Fix this by adding in the missing break.
>>
>> Detected by CoverityScan, CID#1167237 ("Missing break in switch")
>>
>> Fixes: 3c05bedb5fef ("Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver")
>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>> ---
>> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 1 +
>
> Is the fixes line correct? This patch is not for staging.
No, the correct fixes commit is 21e4b0726dc67 (" rtlwifi: rtl8821ae: Move driver
from staging to regular tree").
This driver was initially placed in staging as it was needed for a special
project, which is the commit that Colin used. As the patch subject states, the
driver was later moved to the regular wireless tree.
That break is required, thus ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
thanks,
Larry
^ permalink raw reply
* Re: [PATCH v7 04/15] octeontx2-af: Add mailbox support infra
From: David Miller @ 2018-10-06 21:42 UTC (permalink / raw)
To: sunil.kovvuri; +Cc: netdev, arnd, linux-soc, amakarov, sgoutham, lbartosik
In-Reply-To: <1538805993-10815-5-git-send-email-sunil.kovvuri@gmail.com>
From: sunil.kovvuri@gmail.com
Date: Sat, 6 Oct 2018 11:36:22 +0530
> + tx_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->tx_start);
> + rx_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start);
Since mdev->mbase is a void pointer, you do not need these casts, nor
the parenthesis, at all.
Please remove them.
^ permalink raw reply
* Re: [PATCH net-next] net: dsa: mc88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
From: Marek Behun @ 2018-10-06 22:00 UTC (permalink / raw)
To: Andrew Lunn; +Cc: netdev, Florian Fainelli, David S . Miller
In-Reply-To: <20181006183700.GO4730@lunn.ch>
Hi Andrew, I think that dividing this patch into three would be too
much. How about this commit message?
net: dsa: mv88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
This is a fix for the port_set_speed method for the Topaz family.
Currently the same method is used as for the Peridot family, but
this is wrong for the SERDES port.
On Topaz, the SERDES port is port 5, not 9 and 10 as in Peridot.
Moreover setting alt_bit on Topaz only makes sense for port 0 (for
(differentiating 100mbps vs 200mbps). The SERDES port does not
support more than 2500mbps, so alt_bit does not make any difference.
On Sat, 6 Oct 2018 20:37:00 +0200
Andrew Lunn <andrew@lunn.ch> wrote:
> On Sat, Oct 06, 2018 at 02:38:10AM +0200, Marek Behun wrote:
> > > Hi Marek
> > >
> > > I'm confused.
> > >
> > > The alt bit is used for configuring 2500. You say 2500 is only
> > > supported on port 5. But !port is only true for port 0?
> > >
> > > Andrew
> >
> > On Topaz alt_bit is used only for port 0 for differentiating 100
> > mbps vs 200 mbps. The choices for SpdValue are 0 for 10 mbps, 1 for
> > 100 mbps or 200 mbps (if alt_bit), 2 for 1000 mbps and 3 for 2500
> > mbps. 2500 is allowed only on port 5. alt_bit is not used on Topaz
> > for port 5 (serdes), therefore I used !port.
>
> Hi Marek
>
> The commit message could be clearer. It might be going too far, but
> you could split this into three.
>
> 1) Basic framework code, with works correctly for ports 1-4.
> 2) The special 200Mbps for port 0
> 3) The special 2500Mbps for port 5.
>
> But i would also accept a clearer commit message.
>
> Thanks
> Andrew
^ permalink raw reply
* pull-request: wireless-drivers-next 2018-10-07
From: Kalle Valo @ 2018-10-07 7:37 UTC (permalink / raw)
To: David Miller; +Cc: linux-wireless, netdev, linux-kernel
Hi Dave,
another pull request to net-next for 4.20. I'm sending this a bit
earlier than I prefer as I'm not sure if the merge window starts today
or not. Not all of these patches have been in linux-next, and also the
kbuild bot has been offline this week due to a service break, so there
might be some build problems which I have missed. Though a local
allmodconfig build with GCC 7.3.0 did work without problems.
Kalle
The following changes since commit 4e6d47206c32d1bbb4931f1d851dae3870e0df81:
tls: Add support for inplace records encryption (2018-10-02 23:03:47 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2018-10-07
for you to fetch changes up to 5580d810560da33804053ae3bca13110c9a8d5e8:
Merge tag 'mt76-for-kvalo-2018-10-05' of https://github.com/nbd168/wireless (2018-10-06 14:22:47 +0300)
----------------------------------------------------------------
wireless-drivers-next patches for 4.20
Second set of patches for 4.20. Heavy refactoring on mt76 continues
and the usual drivers in active development (iwlwifi, qtnfmac, ath10k)
getting new features. And as always, fixes and cleanup all over.
Major changes:
mt76
* more major refactoring to make it easier add new hardware support
* more work on mt76x0e support
* support for getting firmware version via ethtool
* add mt7650 PCI ID
iwlwifi
* HE radiotap cleanup and improvements
* reorder channel optimization for scans
* bump the FW API version
qtnfmac
* fixes for 'iw' output: rates for enabled SGI, 'dump station'
* expose more scan features to host: scan flush and dwell time
* inform cfg80211 when OBSS is not supported by firmware
wlcore
* add support for optional wakeirq
ath10k
* retrieve MAC address from system firmware if provided
* support extended board data download for dual-band QCA9984
* extended per sta tx statistics support via debugfs
* average ack rssi support for data frames
* speed up QCA6174 and QCA9377 firmware download using diag Copy
Engine
* HTT High Latency mode support needed by SDIO and USB support
* get STA power save state via debugfs
ath9k
* add reset functionality for airtime station debugfs file
----------------------------------------------------------------
Anilkumar Kolli (4):
ath10k: get the legacy rate index to update the txrate table
ath10k: add debugfs entry to enable extended tx stats
ath10k: add extended per sta tx statistics support
ath10k: add debugfs support to dump per sta tx stats
Ayala Beker (1):
iwlwifi: mvm: allow channel reorder optimization during scan
Balaji Pothunoori (1):
ath10k: average ack rssi support for data frames
Ben Greear (1):
ath10k: fix vdev-start timeout on error
Brian Norris (3):
ath10k: retrieve MAC address from system firmware if provided
ath10k: utilize random MAC address if none is provided
ath10k: add missing sanity check on diag download
Carl Huang (3):
ath10k: optimize pci diag mem read & write operations
ath10k: support to access target space below 1M for qca6174 and qca9377
ath10k: download firmware via diag Copy Engine for QCA6174 and QCA9377.
Chung-Hsien Hsu (2):
brcmfmac: reduce timeout for action frame scan
brcmfmac: fix full timeout waiting for action frame on-channel tx
Colin Ian King (1):
mt76: fix header guard macro define names
Davide Caratti (1):
mt76: report firmware version using ethtool
Emmanuel Grumbach (1):
iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface
Erik Stromdahl (14):
ath10k: add struct ath10k_bus_params
ath10k: add device type enum to ath10k_bus_params
ath10k: add bus type check in ath10k_init_hw_params
ath10k: use hw_params.num_peers for num_tids in TLV init
ath10k: add per target config of max_num_peers
ath10k: DMA related fixes for high latency devices
ath10k: add HTT TX HL ops
ath10k: add HTT RX HL ops
ath10k: htt: RX ring config HL support
ath10k: htt: High latency TX support
ath10k: htt: High latency RX support
ath10k: wmi: disable softirq's while calling ieee80211_rx
ath10k: add default value for num_peers in WMI TLV init
ath10k: remove num_peers in hw_params for most targets
Felix Fietkau (7):
mt76: add stbc entries to mt76_rate_power
mt76: include linux/module.h in files using MODULE_*
mt76x2: disable WLAN core before probe
mt76: fix handling ps-poll frames
mt76: check aggregation sequence number for frames sent via drv_tx
mt76: mt76x2: fix multi-interface beacon configuration
ath9k: add back support for using active monitor interfaces for tx99
Govind Singh (4):
ath10k: introduce CE_ATTR_POLL attribute for polling pipe
ath10k: enable pktlog for WCN3990 target
ath10k: move napi_enable to hif_start for consistent pairing
ath10k: disable napi before resource cleanup to avoid "use after free"
Gustavo A. R. Silva (2):
wil6210: fix unsigned cid comparison with >= 0
ssb: chipcommon: fix fall-through annotation
Haim Dreyfuss (1):
iwlwifi: mvm Support new MCC update response
Hauke Mehrtens (1):
mt76: use skb_pad() instead of __skb_pad()
Igor Mitsyanko (4):
qtnfmac: generate local disconnect event in disconnect callback
qtnfmac: request userspace to do OBSS scanning if FW can not
qtnfmac: do not initialize per-MAC data multiple times
qtnfmac: do not cancel scan in disconnect callback
Johannes Berg (16):
iwlwifi: mvm: remove unnecessary overload variable
iwlwifi: mvm: minor cleanups to HE radiotap code
iwlwifi: mvm: put HE SIG-B symbols/users data correctly
iwlwifi: mvm: pull some he_phy_data decoding into a separate function
iwlwifi: mvm: clean up HE radiotap RU allocation parsing
iwlwifi: mvm: move HE-MU LTF_NUM parsing to he_phy_data parsing
iwlwifi: mvm: add TXOP to HE radiotap data
iwlwifi: mvm: add LDPC-XSYM to HE radiotap data
iwlwifi: mvm: add more information to HE radiotap
iwlwifi: mvm: set max TX/RX A-MPDU subframes to HE limit
iwlwifi: pcie gen2: check iwl_pcie_gen2_set_tb() return value
iwlwifi: add fall through comment
iwlwifi: pcie: check iwl_pcie_txq_build_tfd() return value
iwlwifi: bump firmware API version for 9000 and 22000 series devices
iwlwifi: mvm: decode HE information for MU (without ext info)
iwlwifi: mvm: show more HE radiotap data for TB PPDUs
K.T.VIJAYAKUMAAR (1):
ath10k: avoid possible memory access violation
Kalle Valo (4):
Merge ath-next from git://git.kernel.org/.../kvalo/ath.git
Merge tag 'mt76-for-kvalo-2018-10-01' of https://github.com/nbd168/wireless
Merge tag 'iwlwifi-next-for-kalle-2018-10-06' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
Merge tag 'mt76-for-kvalo-2018-10-05' of https://github.com/nbd168/wireless
Lance Roy (1):
zd1211rw: Replace spin_is_locked() with lockdep
Lorenzo Bianconi (84):
mt76x2: fix tx power configuration for VHT mcs 9
mt76x0: pci: add mt7650 PCI ID
mt76x0: pci: add fw uploading routine
mt76: move seq_put_array in mt76-core module
mt76: move common eeprom definitions in mt76x02-lib module
mt76: move eeprom utility routines in mt76x02_eeprom.h
mt76: move mt76x2_eeprom_get in mt76x02_eeprom.h
mt76: move mt76x02_mac_setaddr in mt76x02-lib module
mt76: move mt76x2_get_efuse_data in mt76x02-lib module
mt76: move mt76x2_ext_pa_enabled routine in mt76x02_eeprom.c
mt76x0: remove mt76x0_set_country_reg routine
mt76: add mt76x02_get_rx_gain and mt76x02_get_lna_gain utility routines
mt76x0: unify lna_gain parsing
mt76x0: unify rssi_offset parsing
mt76x0: unify temperature offset parsing
mt76x0: unify freq offset parsing
mt76: move mt76x02_eeprom_parse_hw_cap in mt76x02-lib module
mt76x0: unify parse hw capabilities
mt76: move mt76x2_tssi_enabled in mt76x02_eeprom.h
mt76: usb: remove WARN_ON in mt76u_get_rx_entry_len
mt76: move mt76_rate_power in mt76_dev
mt76: add mt76x02_phy_set_txpower utility routine
mt76: move rate_txpower handler in mt76 debugfs
mt76: move mt76x02_rate_power_val in mt76x02-lib module
mt76x0: remove mt76x0_phy_set_tx_power and mt76x0_extra_power_over_mac
mt76x0: remove eeprom dependency from mt76x0_set_tx_power_per_rate
mt76x0: remove eeprom dependency from mt76x0_get_power_info
mt76x0: use shared debugfs implementation
mt76x0: phy: introduce mt76x0_phy_set_txpower routine
mt76: usb: make rx page_frag_cache access atomic
mt76x0: use mt76_poll in mt76x0_set_wlan_state
mt76: move wait_for_wpdma in mt76x02_dma.h
mt76: add mt76x02_dma_enable/mt76x02_dma_disable utility routines
mt76: move mt76x02_set_irq_mask in mt76x02_mmio.c
mt76: move queue initialization in mt76x02_mmio.c
mt76: move mt76x02_beacon_offset in mt76x02_util.c
mt76: mmio: add implementation of wr_rp and rd_rp
mt76: move mt76x2_wait_for_bbp in mt76x02-lib module
mt76x0: update initvals to latest version of vendor driver
mt76x0: pci: move mcu code in pci_mcu.c
mt76x0: usb: move mcu code in usb_mcu.c
mt76x0: use mt76x02 utility routines in mt76x0 init code
mt76x0: init: remove duplicated initialization
mt76x0: init: remove MT_PBF_SYS_CTRL configuration in mt76x0_reset_csr_bbp
mt76x0: init rx filter in mt76x0_init_hardware
mt76: add mt76x02_mac_start routine
mt76x0: usb: move initialization code in usb.c
mt76x0: pci: add hw initialization at bootstrap
mt76x0: phy: set antenna parameter according to wireless band
mt76: move set_{tx,rx}_path routines in mt76x02-lib module
mt76x0: add ieee80211_ops ops pointer to mt76x0_alloc_device signature
mt76x0: pci: add mt76x0e_{start/stop} callbacks
mt76x0: eeprom: load eeprom data from mtd by default
mt76x0: usb: move mt76x0u_tx_prepare_skb in usb.c
mt76x0: pci: add mt76x0e_cleanup routine
mt76x2: move mt76x2 source files to mt76x2 folder
mt76: usb: fix hw initialization sequence
mt76x0: usb: stop cal/mac workqueues at hw stop
mt76: move mt76x02_tx_get_max_txpwr_adj in mt76x02_util.c
mt76: add get_tx_txpwr_adj function pointer to mt76_driver_ops
mt76: move mt76x02_mac_write_txwi in mt76x02-lib module
mt76: usb: use mt76x02u_tx_prepare_skb to fill txwi
mt76x0: init: remove unnecessary configurations
mt76: move mt76x02_phy_get_min_avg_rssi in mt76x02_phy.c
mt76: move mt76x02_rx_get_sta and mt76x02_rx_get_sta_wcid in mt76x02_util.h
mt76x0: mac: use sta ewma estimation for rssi tracking
mt76x0: remove unused variable in mt76x0_dev
mt76x0: remove hw_atomic_mutex mutex in mt76x0_dev
mt76x2: move mt76x2_dev in mt76x02_util.h
mt76x0: merge mt76x0_dev in mt76x02_dev
mt76: move mt76x02_mac_process_rx in mt76x02-lib module
mt76: unify rxwi parsing between mt76x2 and mt76x0 drivers
mt76: move mt76x02_tx in mt76x02-lib module
mt76: move txrx shared routines in mt76x02_txrx.c
mt76: rename mt76x02_util.h in mt76x02.h
mt76x2: remove leftover function declatarions
mt76: move tpc routines in mt76x02-lib module
mt76: move mt76x02_tx_prepare_skb in mt76x02_txrx.c
mt76: usb: move mt76x02u_tx_complete_skb in mt76x02_usb_core.c
mt76: move mt76x02_mac_poll_tx_status in mt76x02-lib moudle
mt76: move mt76x02_tx_complete in mt76x02-lib module
mt76: use mt76x02_dev instead of mt76_dev in mt76x02_mmio.c
mt76: move tx_tasklet management in mt76x02-lib moudle
mt76: move irq handler in mt76x02-lib moudle
Louie Lu (1):
ath9k: add reset for airtime station debugfs
Luca Coelho (1):
iwlwifi: mvm: check for n_profiles validity in EWRD ACPI
Maharaja Kennadyrajan (2):
ath10k: add debugfs support to get power save state change of STA
ath10k: advertize beacon_int_min_gcd as 100 while bring up multi vaps
Naftali Goldstein (1):
iwlwifi: nvm: get num of hw addresses from firmware
Niklas Cassel (1):
ath10k: allow ATH10K_SNOC with COMPILE_TEST
Ping-Ke Shih (1):
rtlwifi: Removed unused define and code efuse_re_pg* from wifi.h
Rakesh Pillai (1):
ath10k: fix tx status flag setting for management frames
Rob Herring (1):
ath6kl: convert to using %pOFn instead of device_node.name
Sara Sharon (8):
iwlwifi: dbg: move debug data to a struct
iwlwifi: dbg: refactor dump code to improve readability
iwlwifi: dbg: split iwl_fw_error_dump to two functions
iwlwifi: dbg: dump memory in a helper function
iwlwifi: dbg: group trigger condition to helper function
iwlwifi: dbg: make iwl_fw_dbg_no_trig_window trigger agnostic
iwlwifi: dbg: decrement occurrences for all triggers
iwlwifi: dbg: make trigger functions type agnostic
Sathishkumar Muruganandam (2):
ath10k: refactoring needed for extended board data download
ath10k: support extended board data download for dual-band QCA9984
Sergey Matyukevich (9):
qtnfmac: do not track STA states in driver
qtnfmac: cleanup and unify command error handling
qtnfmac: pass sgi rate info flag to wireless core
qtnfmac: inform wireless core about supported extended capabilities
qtnfmac: drop error reports for out-of-bounds key indexes
qtnfmac: add support for scan flush
qtnfmac: add support for scan dwell time configuration
qtnfmac: drop redundant data copy in control path
qtnfmac: implement dump_station support for STA mode
Shahar S Matityahu (3):
iwlwifi: add dump collection in case alive flow fails
iwlwifi: runtime: add send host command op to firmware runtime op struct
iwlwifi: add debugfs to send host command
Shaul Triebitz (1):
iwlwifi: pcie: avoid empty free RB queue
Simon Wunderlich (5):
ath9k: add counters for good and errorneous FFT/spectral frames
ath9k: return when short FFT frame was handled
ath9k: fix and simplify FFT max index retrieval
ath9k: FFT magnitude check: don't consider lower 3 data bits
ath9k: fix reporting calculated new FFT upper max
Sriram R (1):
ath10k: add support for configuring management packet rate
Stanislaw Gruszka (3):
mt76: fix return value of mt76x02_wait_for_mac
mt76x0: add quirk to disable 2.4GHz band for Archer T1U
mt76: fix frag length allocation for usb
Tony Lindgren (2):
wlcore: Fix BUG with clear completion on timeout
wlcore: Add support for optional wakeirq
Wen Gong (1):
ath10k: add waiting htt tx complete before wow enable
Yisheng Xie (1):
iwlwifi: mvm: use match_string() helper
YueHaibing (4):
ath10k: remove duplicated includes
ath9k: debug: remove set but not used variable 'fops_dump_nfcal'
wil6210: remove set but not used variable 'start'
b43: remove set but not used variable 'wl'
drivers/net/wireless/ath/ath10k/Kconfig | 3 +-
drivers/net/wireless/ath/ath10k/ahb.c | 9 +-
drivers/net/wireless/ath/ath10k/bmi.c | 23 +
drivers/net/wireless/ath/ath10k/bmi.h | 36 +
drivers/net/wireless/ath/ath10k/ce.c | 18 +-
drivers/net/wireless/ath/ath10k/ce.h | 11 +-
drivers/net/wireless/ath/ath10k/core.c | 737 +++++++++++++--------
drivers/net/wireless/ath/ath10k/core.h | 64 +-
drivers/net/wireless/ath/ath10k/debug.c | 144 +++-
drivers/net/wireless/ath/ath10k/debug.h | 9 +
drivers/net/wireless/ath/ath10k/debugfs_sta.c | 130 ++++
drivers/net/wireless/ath/ath10k/htc.c | 82 ++-
drivers/net/wireless/ath/ath10k/htt.h | 52 +-
drivers/net/wireless/ath/ath10k/htt_rx.c | 296 ++++++++-
drivers/net/wireless/ath/ath10k/htt_tx.c | 155 ++++-
drivers/net/wireless/ath/ath10k/hw.c | 191 ++++++
drivers/net/wireless/ath/ath10k/hw.h | 32 +
drivers/net/wireless/ath/ath10k/mac.c | 114 +++-
drivers/net/wireless/ath/ath10k/mac.h | 1 +
drivers/net/wireless/ath/ath10k/pci.c | 76 ++-
drivers/net/wireless/ath/ath10k/pci.h | 3 +-
drivers/net/wireless/ath/ath10k/rx_desc.h | 15 +
drivers/net/wireless/ath/ath10k/sdio.c | 8 +-
drivers/net/wireless/ath/ath10k/snoc.c | 22 +-
drivers/net/wireless/ath/ath10k/targaddrs.h | 4 +
drivers/net/wireless/ath/ath10k/txrx.c | 3 +-
drivers/net/wireless/ath/ath10k/usb.c | 7 +-
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 11 +-
drivers/net/wireless/ath/ath10k/wmi.c | 78 ++-
drivers/net/wireless/ath/ath10k/wmi.h | 43 +-
drivers/net/wireless/ath/ath10k/wow.c | 2 +
drivers/net/wireless/ath/ath6kl/init.c | 4 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/common-debug.c | 2 +
drivers/net/wireless/ath/ath9k/common-debug.h | 4 +
drivers/net/wireless/ath/ath9k/common-spectral.c | 83 +--
drivers/net/wireless/ath/ath9k/common-spectral.h | 17 +
drivers/net/wireless/ath/ath9k/debug.c | 13 -
drivers/net/wireless/ath/ath9k/debug_sta.c | 18 +-
drivers/net/wireless/ath/ath9k/main.c | 10 +-
drivers/net/wireless/ath/ath9k/tx99.c | 7 +
drivers/net/wireless/ath/ath9k/xmit.c | 2 +-
drivers/net/wireless/ath/wil6210/pm.c | 3 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 2 +-
drivers/net/wireless/ath/wil6210/wmi.c | 2 +-
drivers/net/wireless/broadcom/b43/main.c | 2 -
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 26 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.h | 2 +
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 2 +-
drivers/net/wireless/intel/iwlwifi/cfg/9000.c | 2 +-
.../net/wireless/intel/iwlwifi/fw/api/nvm-reg.h | 81 +--
drivers/net/wireless/intel/iwlwifi/fw/api/rx.h | 8 +-
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h | 5 +-
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 411 ++++++------
drivers/net/wireless/intel/iwlwifi/fw/dbg.h | 45 +-
drivers/net/wireless/intel/iwlwifi/fw/debugfs.c | 64 ++
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 2 +
drivers/net/wireless/intel/iwlwifi/fw/file.h | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 41 +-
drivers/net/wireless/intel/iwlwifi/fw/runtime.h | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 77 ++-
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 10 +-
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 13 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 42 +-
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 25 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 39 +-
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 29 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 373 ++++++-----
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 3 +
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 11 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 15 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 16 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 32 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +-
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c | 2 +
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +
drivers/net/wireless/mediatek/mt76/Kconfig | 43 +-
drivers/net/wireless/mediatek/mt76/Makefile | 27 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 31 +
drivers/net/wireless/mediatek/mt76/mac80211.c | 6 +
drivers/net/wireless/mediatek/mt76/mmio.c | 27 +
drivers/net/wireless/mediatek/mt76/mt76.h | 37 +-
drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig | 20 +
drivers/net/wireless/mediatek/mt76/mt76x0/Makefile | 6 +-
.../net/wireless/mediatek/mt76/mt76x0/debugfs.c | 85 +--
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 568 +++++++---------
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.h | 132 +---
drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 237 ++-----
.../net/wireless/mediatek/mt76/mt76x0/initvals.h | 406 +++++-------
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c | 82 +--
drivers/net/wireless/mediatek/mt76/mt76x0/mac.h | 20 -
drivers/net/wireless/mediatek/mt76/mt76x0/main.c | 117 ++--
drivers/net/wireless/mediatek/mt76/mt76x0/mcu.h | 9 +-
drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h | 157 +----
drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 127 +++-
.../net/wireless/mediatek/mt76/mt76x0/pci_mcu.c | 146 ++++
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 274 +++-----
drivers/net/wireless/mediatek/mt76/mt76x0/trace.h | 1 -
drivers/net/wireless/mediatek/mt76/mt76x0/tx.c | 115 ----
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c | 308 ++++-----
.../net/wireless/mediatek/mt76/mt76x0/usb_mcu.c | 176 +++++
drivers/net/wireless/mediatek/mt76/mt76x02.h | 208 ++++++
.../mediatek/mt76/{mt76x2_dfs.h => mt76x02_dfs.h} | 40 +-
drivers/net/wireless/mediatek/mt76/mt76x02_dma.h | 17 +
.../net/wireless/mediatek/mt76/mt76x02_eeprom.c | 156 +++++
.../mt76/{mt76x2_eeprom.h => mt76x02_eeprom.h} | 147 ++--
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 257 ++++++-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.h | 35 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c | 13 +
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h | 13 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 260 ++++++++
drivers/net/wireless/mediatek/mt76/mt76x02_phy.c | 183 +++++
drivers/net/wireless/mediatek/mt76/mt76x02_phy.h | 30 +
.../mt76/{mt76x2_trace.c => mt76x02_trace.c} | 2 +-
.../mt76/{mt76x2_trace.h => mt76x02_trace.h} | 31 +-
drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 203 ++++++
drivers/net/wireless/mediatek/mt76/mt76x02_usb.h | 9 +-
.../net/wireless/mediatek/mt76/mt76x02_usb_core.c | 59 +-
.../net/wireless/mediatek/mt76/mt76x02_usb_mcu.c | 1 +
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 80 +--
drivers/net/wireless/mediatek/mt76/mt76x02_util.h | 54 --
drivers/net/wireless/mediatek/mt76/mt76x2.h | 250 -------
drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig | 20 +
drivers/net/wireless/mediatek/mt76/mt76x2/Makefile | 16 +
.../mt76/{mt76x2_debugfs.c => mt76x2/debugfs.c} | 35 +-
drivers/net/wireless/mediatek/mt76/mt76x2/dfs.h | 26 +
.../mt76/{mt76x2_eeprom.c => mt76x2/eeprom.c} | 356 ++++------
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h | 73 ++
.../mt76/{mt76x2_init_common.c => mt76x2/init.c} | 36 +-
drivers/net/wireless/mediatek/mt76/mt76x2/mac.c | 54 ++
.../mt76/{mt76x2_common.c => mt76x2/mac.h} | 37 +-
.../mt76/{mt76x2_mcu_common.c => mt76x2/mcu.c} | 20 +-
.../mediatek/mt76/{mt76x2_mcu.h => mt76x2/mcu.h} | 13 +-
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h | 107 +++
.../wireless/mediatek/mt76/{ => mt76x2}/mt76x2u.h | 44 +-
.../mediatek/mt76/{mt76x2_pci.c => mt76x2/pci.c} | 8 +-
.../mt76/{mt76x2_dfs.c => mt76x2/pci_dfs.c} | 145 ++--
.../mt76/{mt76x2_init.c => mt76x2/pci_init.c} | 141 +---
.../mt76/{mt76x2_mac.c => mt76x2/pci_mac.c} | 108 +--
.../mt76/{mt76x2_main.c => mt76x2/pci_main.c} | 39 +-
.../mt76/{mt76x2_mcu.c => mt76x2/pci_mcu.c} | 14 +-
.../mt76/{mt76x2_phy.c => mt76x2/pci_phy.c} | 43 +-
.../mediatek/mt76/{mt76x2_tx.c => mt76x2/pci_tx.c} | 43 +-
.../mt76/{mt76x2_phy_common.c => mt76x2/phy.c} | 145 +---
.../mediatek/mt76/{mt76x2_usb.c => mt76x2/usb.c} | 10 +-
.../mt76/{mt76x2u_init.c => mt76x2/usb_init.c} | 63 +-
.../mt76/{mt76x2u_mac.c => mt76x2/usb_mac.c} | 40 +-
.../mt76/{mt76x2u_main.c => mt76x2/usb_main.c} | 25 +-
.../mt76/{mt76x2u_mcu.c => mt76x2/usb_mcu.c} | 21 +-
.../mt76/{mt76x2u_phy.c => mt76x2/usb_phy.c} | 54 +-
drivers/net/wireless/mediatek/mt76/mt76x2_core.c | 88 ---
drivers/net/wireless/mediatek/mt76/mt76x2_dma.c | 124 ----
drivers/net/wireless/mediatek/mt76/mt76x2_mac.h | 64 --
.../net/wireless/mediatek/mt76/mt76x2_mac_common.c | 239 -------
.../net/wireless/mediatek/mt76/mt76x2_tx_common.c | 118 ----
drivers/net/wireless/mediatek/mt76/mt76x2u_core.c | 53 --
drivers/net/wireless/mediatek/mt76/tx.c | 36 +-
drivers/net/wireless/mediatek/mt76/usb.c | 17 +-
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 193 +++---
drivers/net/wireless/quantenna/qtnfmac/commands.c | 535 ++++-----------
drivers/net/wireless/quantenna/qtnfmac/core.c | 39 +-
drivers/net/wireless/quantenna/qtnfmac/core.h | 8 +-
drivers/net/wireless/quantenna/qtnfmac/event.c | 18 +-
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 5 +-
drivers/net/wireless/quantenna/qtnfmac/qlink.h | 5 +
.../net/wireless/quantenna/qtnfmac/qlink_util.h | 8 +
drivers/net/wireless/quantenna/qtnfmac/shm_ipc.c | 13 +-
drivers/net/wireless/quantenna/qtnfmac/shm_ipc.h | 4 +-
drivers/net/wireless/realtek/rtlwifi/wifi.h | 4 -
drivers/net/wireless/ti/wlcore/main.c | 48 +-
drivers/net/wireless/ti/wlcore/sdio.c | 17 +-
drivers/net/wireless/ti/wlcore/wlcore.h | 2 +
drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 2 +-
drivers/ssb/driver_chipcommon.c | 2 +-
177 files changed, 6916 insertions(+), 5633 deletions(-)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x0/mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x0/pci_mcu.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x0/tx.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02.h
rename drivers/net/wireless/mediatek/mt76/{mt76x2_dfs.h => mt76x02_dfs.h} (76%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
rename drivers/net/wireless/mediatek/mt76/{mt76x2_eeprom.h => mt76x02_eeprom.h} (56%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
rename drivers/net/wireless/mediatek/mt76/{mt76x2_trace.c => mt76x02_trace.c} (97%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_trace.h => mt76x02_trace.h} (86%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_util.h
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/Makefile
rename drivers/net/wireless/mediatek/mt76/{mt76x2_debugfs.c => mt76x2/debugfs.c} (78%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/dfs.h
rename drivers/net/wireless/mediatek/mt76/{mt76x2_eeprom.c => mt76x2/eeprom.c} (52%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h
rename drivers/net/wireless/mediatek/mt76/{mt76x2_init_common.c => mt76x2/init.c} (89%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/mac.c
rename drivers/net/wireless/mediatek/mt76/{mt76x2_common.c => mt76x2/mac.h} (56%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_mcu_common.c => mt76x2/mcu.c} (84%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_mcu.h => mt76x2/mcu.h} (87%)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
rename drivers/net/wireless/mediatek/mt76/{ => mt76x2}/mt76x2u.h (51%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_pci.c => mt76x2/pci.c} (92%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_dfs.c => mt76x2/pci_dfs.c} (84%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_init.c => mt76x2/pci_init.c} (78%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_mac.c => mt76x2/pci_mac.c} (63%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_main.c => mt76x2/pci_main.c} (89%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_mcu.c => mt76x2/pci_mcu.c} (94%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_phy.c => mt76x2/pci_phy.c} (91%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_tx.c => mt76x2/pci_tx.c} (75%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_phy_common.c => mt76x2/phy.c} (66%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2_usb.c => mt76x2/usb.c} (95%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2u_init.c => mt76x2/usb_init.c} (83%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2u_mac.c => mt76x2/usb_mac.c} (83%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2u_main.c => mt76x2/usb_main.c} (90%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2u_mcu.c => mt76x2/usb_mcu.c} (92%)
rename drivers/net/wireless/mediatek/mt76/{mt76x2u_phy.c => mt76x2/usb_phy.c} (86%)
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2_core.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2_dma.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2_mac.h
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2_tx_common.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt76x2u_core.c
^ permalink raw reply
* [PATCH v2] libertas: return errno from lbs_add_card()
From: Lubomir Rintel @ 2018-10-07 0:33 UTC (permalink / raw)
To: Kalle Valo
Cc: David S. Miller, libertas-dev, linux-wireless, netdev,
linux-kernel, Lubomir Rintel
This makes the error handling somewhat cleaner -- lbs_add_card() does no
logner throw away the errno and lets its callers propagate it.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
Changes since v1:
- Address SPI & USB build failures
drivers/net/wireless/marvell/libertas/if_cs.c | 4 ++--
drivers/net/wireless/marvell/libertas/if_sdio.c | 4 ++--
drivers/net/wireless/marvell/libertas/if_spi.c | 4 ++--
drivers/net/wireless/marvell/libertas/if_usb.c | 5 ++++-
drivers/net/wireless/marvell/libertas/main.c | 17 ++++++++++-------
5 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/marvell/libertas/if_cs.c b/drivers/net/wireless/marvell/libertas/if_cs.c
index 7d88223f890b..cebf03c6a622 100644
--- a/drivers/net/wireless/marvell/libertas/if_cs.c
+++ b/drivers/net/wireless/marvell/libertas/if_cs.c
@@ -900,8 +900,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
/* Make this card known to the libertas driver */
priv = lbs_add_card(card, &p_dev->dev);
- if (!priv) {
- ret = -ENOMEM;
+ if (IS_ERR(priv)) {
+ ret = PTR_ERR(priv);
goto out2;
}
diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c
index 43743c26c071..2fd54a0aeb5a 100644
--- a/drivers/net/wireless/marvell/libertas/if_sdio.c
+++ b/drivers/net/wireless/marvell/libertas/if_sdio.c
@@ -1206,8 +1206,8 @@ static int if_sdio_probe(struct sdio_func *func,
priv = lbs_add_card(card, &func->dev);
- if (!priv) {
- ret = -ENOMEM;
+ if (IS_ERR(priv)) {
+ ret = PTR_ERR(priv);
goto free;
}
diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
index e9aec6cb1105..504d6e096476 100644
--- a/drivers/net/wireless/marvell/libertas/if_spi.c
+++ b/drivers/net/wireless/marvell/libertas/if_spi.c
@@ -1146,8 +1146,8 @@ static int if_spi_probe(struct spi_device *spi)
* This will call alloc_etherdev.
*/
priv = lbs_add_card(card, &spi->dev);
- if (!priv) {
- err = -ENOMEM;
+ if (IS_ERR(priv)) {
+ err = PTR_ERR(priv);
goto free_card;
}
card->priv = priv;
diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c
index c67a8e7be310..5fee555a3d60 100644
--- a/drivers/net/wireless/marvell/libertas/if_usb.c
+++ b/drivers/net/wireless/marvell/libertas/if_usb.c
@@ -254,8 +254,11 @@ static int if_usb_probe(struct usb_interface *intf,
goto dealloc;
}
- if (!(priv = lbs_add_card(cardp, &intf->dev)))
+ priv = lbs_add_card(cardp, &intf->dev);
+ if (IS_ERR(priv)) {
+ r = PTR_ERR(priv);
goto err_add_card;
+ }
cardp->priv = priv;
diff --git a/drivers/net/wireless/marvell/libertas/main.c b/drivers/net/wireless/marvell/libertas/main.c
index f22e1c220cba..f7db60bc7c7f 100644
--- a/drivers/net/wireless/marvell/libertas/main.c
+++ b/drivers/net/wireless/marvell/libertas/main.c
@@ -907,25 +907,29 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
struct net_device *dev;
struct wireless_dev *wdev;
struct lbs_private *priv = NULL;
+ int err;
/* Allocate an Ethernet device and register it */
wdev = lbs_cfg_alloc(dmdev);
if (IS_ERR(wdev)) {
+ err = PTR_ERR(wdev);
pr_err("cfg80211 init failed\n");
- goto done;
+ goto err_cfg;
}
wdev->iftype = NL80211_IFTYPE_STATION;
priv = wdev_priv(wdev);
priv->wdev = wdev;
- if (lbs_init_adapter(priv)) {
+ err = lbs_init_adapter(priv);
+ if (err) {
pr_err("failed to initialize adapter structure\n");
goto err_wdev;
}
dev = alloc_netdev(0, "wlan%d", NET_NAME_UNKNOWN, ether_setup);
if (!dev) {
+ err = -ENOMEM;
dev_err(dmdev, "no memory for network device instance\n");
goto err_adapter;
}
@@ -949,6 +953,7 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
init_waitqueue_head(&priv->waitq);
priv->main_thread = kthread_run(lbs_thread, dev, "lbs_main");
if (IS_ERR(priv->main_thread)) {
+ err = PTR_ERR(priv->main_thread);
lbs_deb_thread("Error creating main thread.\n");
goto err_ndev;
}
@@ -961,7 +966,7 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
priv->wol_gap = 20;
priv->ehs_remove_supported = true;
- goto done;
+ return priv;
err_ndev:
free_netdev(dev);
@@ -972,10 +977,8 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
err_wdev:
lbs_cfg_free(priv);
- priv = NULL;
-
-done:
- return priv;
+ err_cfg:
+ return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(lbs_add_card);
--
2.19.0
^ permalink raw reply related
* Re: [net-next,v2,2/4] net/smc: ipv6 support for smc_diag.c
From: Eugene Syromiatnikov @ 2018-10-07 1:11 UTC (permalink / raw)
To: Ursula Braun
Cc: davem, netdev, linux-s390, schwidefsky, heiko.carstens, raspl
In-Reply-To: <20180502145647.36147-3-ubraun@linux.ibm.com>
On Wed, May 02, 2018 at 04:56:45PM +0200, Ursula Braun wrote:
> From: Karsten Graul <kgraul@linux.ibm.com>
>
> Update smc_diag.c to support ipv6 addresses on the diagnosis interface.
>
> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
> Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
> ---
> net/smc/smc_diag.c | 39 ++++++++++++++++++++++++++++++---------
> 1 file changed, 30 insertions(+), 9 deletions(-)
>
> diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c
> index 427b91c1c964..05dd7e6d314d 100644
> --- a/net/smc/smc_diag.c
> +++ b/net/smc/smc_diag.c
> @@ -38,17 +38,27 @@ static void smc_diag_msg_common_fill(struct smc_diag_msg *r, struct sock *sk)
> {
> struct smc_sock *smc = smc_sk(sk);
>
> - r->diag_family = sk->sk_family;
> if (!smc->clcsock)
> return;
> r->id.idiag_sport = htons(smc->clcsock->sk->sk_num);
> r->id.idiag_dport = smc->clcsock->sk->sk_dport;
> r->id.idiag_if = smc->clcsock->sk->sk_bound_dev_if;
> sock_diag_save_cookie(sk, r->id.idiag_cookie);
> - memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
> - memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
> - r->id.idiag_src[0] = smc->clcsock->sk->sk_rcv_saddr;
> - r->id.idiag_dst[0] = smc->clcsock->sk->sk_daddr;
> + if (sk->sk_protocol == SMCPROTO_SMC) {
> + r->diag_family = PF_INET;
> + memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
> + memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
> + r->id.idiag_src[0] = smc->clcsock->sk->sk_rcv_saddr;
> + r->id.idiag_dst[0] = smc->clcsock->sk->sk_daddr;
> +#if IS_ENABLED(CONFIG_IPV6)
> + } else if (sk->sk_protocol == SMCPROTO_SMC6) {
> + r->diag_family = PF_INET6;
> + memcpy(&r->id.idiag_src, &smc->clcsock->sk->sk_v6_rcv_saddr,
> + sizeof(smc->clcsock->sk->sk_v6_rcv_saddr));
> + memcpy(&r->id.idiag_dst, &smc->clcsock->sk->sk_v6_daddr,
> + sizeof(smc->clcsock->sk->sk_v6_daddr));
> +#endif
> + }
This change makes it impossible to distinguish an inet_sock_diag
response message from SMC sock_diag response (previously it reported
AF_SMC in diag_family which allows deciding whether that a part of
struct smc_diag_msg or struct inet_diag_msg).
^ permalink raw reply
* Re: [PATCH net 1/2] net/smc: use __aigned_u64 for 64-bit smc_diag fields
From: Sergei Shtylyov @ 2018-10-07 8:32 UTC (permalink / raw)
To: Eugene Syromiatnikov, netdev
Cc: David S. Miller, linux-kernel, Ursula Braun, Karsten Graul,
Hans Wippel
In-Reply-To: <20181006203222.GA11338@asgard.redhat.com>
Hello!
On 10/6/2018 11:32 PM, Eugene Syromiatnikov wrote:
> Commit v4.19-rc1~140^2~507^2~1 ("net/smc: add SMC-D diag support")
You have the SHA1 below in the "Fixes:" tag, need the same 12 digits here.
> introduced new UAPI-exposed structure, struct smcd_diag_dmbinfo.
> However, it's not usable by compat binaries, as it has different
> layout there. Probably, the most straightforward fix that will avoid
> the similar issues in the future is to use __aligned_u64 for 64-bit
> fields.
>
> Fixes: 4b1b7d3b30a6 ("net/smc: add SMC-D diag support")
> Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
[...]
MBR, Sergei
^ 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