Ying triggered a call trace when doing an asconf testing:
BUG: scheduling while atomic: swapper/12/0/0x1100
Call Trace:
[] dump_stack+0x19/0x1b
[] __schedule_bug+0x64/0x72
[] __schedule+0x9ba/0xa00
[] __cond_resched+0x26/0x30
[] _cond_resched+0x3a/0x50
[] kmem_cache_all
This series fix some bugs in stmmac driver.
3 patches are for common stmmac or dwmac4:
1. update rx tail pointer to fix rx dma hang issue.
2. change condition for mdc clock to fix csr_clk can't be zero issue.
Phil
Many thanks - you've nailed it!
Reverting the workaround from Heiner, and also
fc8f36de77111bf925d19f347c2113, resulted in 5.0.6 syncing at 10Mbps
after resuming from S3 instead of the 1000Mbps it syncs at boot.
Hopefully this is helpful in understanding why the workaround is no
longer requ
On 29/04/2019 6:05 am, Neil MacLeod wrote:
Hi Heiner
5.0.6 is the first kernel that does NOT require the workaround.
In 5.0.6 the only obvious r8169 change (to my untrained eyes) is:
https://github.com/torvalds/linux/commit/4951fc65d9153deded3d066ab371a61977c96e8a
but reverting this change in
On Sun, Apr 28, 2019 at 11:22 AM Richard Cochran
wrote:
>
> On Sun, Apr 28, 2019 at 03:45:21PM +1000, Stephen Mallon wrote:
> > Ensure that the unique timestamp identifier is incremented for skb hardware
> > timestamps, not just software timestamps.
>
> Thanks for fixing this. It has been at the
From: Randy Dunlap
Fix ReST underline warning:
./Documentation/networking/netdev-FAQ.rst:135: WARNING: Title underline too
short.
Q: I made changes to only a few patches in a patch series should I resend only
those changed?
-
From: Heiner Kallweit
Date: Wed, 24 Apr 2019 21:49:30 +0200
> Considering that in polling mode each link drop will be latched,
> settings can't have changed if link was up and is up.
>
> Signed-off-by: Heiner Kallweit
Applied, let's see what happens. :-)
From: Andrew Lunn
Date: Sun, 28 Apr 2019 19:37:09 +0200
> Historically, DSA tag drivers have been compiled into the kernel as
> part of the DSA core. With the growing number of tag drivers, it makes
> sense to allow this driver code to be compiled as a module, and loaded
> on demand.
>
> Tested-
On 4/28/19 1:32 PM, Johannes Berg wrote:
> On Fri, 2019-04-26 at 20:28 -0600, David Ahern wrote:
>>
>> I agree with this set and will help moving forward. As I recall it
>> requires follow up patches for each policy to set strict_start_type
>> opting in to the strict checking. With that in place ne
> On 27 Apr 2019, at 04:05, Alexei Starovoitov
> wrote:
>
> On Fri, Apr 26, 2019 at 02:06:33PM +0100, Jiong Wang wrote:
>>
>>> Note that bpf_patch_insn_single() is calling bpf_adj_branches() twice too.
>>> And dead_code + convert_ctx + fixup_bpf_calls are calling
>>> bpf_patch_insn_single(
Hi Heiner
5.0.6 is the first kernel that does NOT require the workaround.
In 5.0.6 the only obvious r8169 change (to my untrained eyes) is:
https://github.com/torvalds/linux/commit/4951fc65d9153deded3d066ab371a61977c96e8a
but reverting this change in addition to the workaround makes no
differen
On 4/28/19 1:22 PM, Eric Dumazet wrote:
> We had many syzbot reports that seem to be caused by use-after-free
> of struct fib6_info.
>
> ip6_dst_destroy(), fib6_drop_pcpu_from() and rt6_remove_exception()
> are writers vs rt->from, and use non consistent synchronization among
> themselves.
>
> Sw
On Sun, Apr 28, 2019 at 08:10:43PM +0200, Heiner Kallweit wrote:
> On 28.04.2019 19:04, Andrew Lunn wrote:
> > On Sun, Apr 28, 2019 at 03:03:37PM +0200, Heiner Kallweit wrote:
> >> So far we set the advertising bitmap before setting the pause flags
> >> in the supported bitmap. This may cause pause
On 4/28/19 11:53 AM, Alexei Starovoitov wrote:
> Adding tests as we go along would immensely help too.
> Unfortunately afaik there is no test infra to use for it.
pcpu routes are the predominant ones used for traffic. We have a number
of existing tests in selftests - fib_tests.sh - that exercise
On 4/28/19 9:06 AM, Eric Dumazet wrote:
>
> I would prefer we fix the existing bugs before moving the code around,
> otherwise stable teams work is going to be tough.
>
fair enough. I'll drop the ipv6 patches and re-send just the v4 ones.
On Sat, 2019-04-27 at 13:25 +0200, Pablo Neira Ayuso wrote:
>
> > Take IFLA_AF_SPEC for example. To validate that, we end up calling into
> > validate_link_af() which is defined in IPv4 and IPv6, rather than having
> > the inet_af_policy/inet6_af_policy available and doing it in the caller
> > (al
Hi Pablo,
> > + [NL80211_PMSR_PEER_ATTR_CHAN] = NLA_POLICY_NESTED(nl80211_policy),
>
> I guess you only allow one more nested instance of this attribute?
>
> I mean, how many times is NL80211 allow to recurse on this?
It doesn't actually recurse on this at all. We really should've
specified
On Fri, 2019-04-26 at 20:28 -0600, David Ahern wrote:
>
> I agree with this set and will help moving forward. As I recall it
> requires follow up patches for each policy to set strict_start_type
> opting in to the strict checking. With that in place new userspace on
> old kernels will get a failur
We had many syzbot reports that seem to be caused by use-after-free
of struct fib6_info.
ip6_dst_destroy(), fib6_drop_pcpu_from() and rt6_remove_exception()
are writers vs rt->from, and use non consistent synchronization among
themselves.
Switching to xchg() will solve the issues with no possible
On some switches, the action of whether to parse VLAN frame headers and use
that information for ingress admission is configurable, but not per
port. Such is the case for the Broadcom BCM53xx and the NXP SJA1105
families, for example. In that case, DSA can prevent the bridge core
from trying to app
Since DSA has recently learned to treat better with drivers that set
vlan_filtering_is_global, doing this is no longer required.
Signed-off-by: Vladimir Oltean
---
drivers/net/dsa/b53/b53_common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dsa/b53/b53_com
In preparation of submitting the NXP SJA1105 driver, the Broadcom b53
and Mediatek mt7530 drivers have been found to apply some VLAN
workarounds that are needed in the new driver as well.
Therefore this patchset is mostly simply promoting the DSA driver
workarounds for VLAN to the generic code.
T
The DSA core is now able to do this check prior to calling the
.port_vlan_filtering callback, so tell it that VLAN filtering is global
for this particular hardware.
Signed-off-by: Vladimir Oltean
Suggested-by: Florian Fainelli
Reviewed-by: Florian Fainelli
---
drivers/net/dsa/b53/b53_common.c
This allows drivers to query the VLAN setting imposed by the bridge
driver directly from DSA, instead of keeping their own state based on
the .port_vlan_filtering callback.
Signed-off-by: Vladimir Oltean
Reviewed-by: Florian Fainelli
---
include/net/dsa.h | 1 +
net/dsa/port.c| 12
Signed-off-by: Vladimir Oltean
Reviewed-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
net/dsa/switch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index e1fae969aa73..fde4e9195709 100644
--- a/net/dsa/switch.c
+++ b/net/dsa/switch.
Even if VLAN filtering is global, DSA will call this callback once per
each port. Drivers should not have to compare the global state with the
requested change. So let DSA do it.
Signed-off-by: Vladimir Oltean
---
net/dsa/port.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/dsa/port
This was recently introduced, so keeping state inside the driver is no
longer necessary.
Signed-off-by: Vladimir Oltean
Suggested-by: Andrew Lunn
Reviewed-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
drivers/net/dsa/mt7530.c | 16 +---
drivers/net/dsa/mt7530.h | 1 -
2 files
While possible (and safe) to use the newly introduced
dsa_port_is_vlan_filtering helper, fabricating a dsa_port pointer is a
bit awkward, so simply retrieve this from the dsa_switch structure.
Signed-off-by: Vladimir Oltean
---
drivers/net/dsa/b53/b53_common.c | 5 ++---
drivers/net/dsa/b53/b53_
When ports are standalone (after they left the bridge), they should have
no VLAN filtering semantics (they should pass all traffic to the CPU).
Currently this is not true for switchdev drivers, because the bridge
"forgets" to unset that.
Normally one would think that doing this at the bridge layer
The driver, recognizing that the .port_vlan_filtering callback was never
coming after the port left its parent bridge, decided to take that duty
in its own hands. DSA now takes care of this condition, so fix that.
Signed-off-by: Vladimir Oltean
Reviewed-by: Andrew Lunn
Reviewed-by: Florian Faine
The current behavior is not as obvious as one would assume (which is
that, if the driver set vlan_filtering_is_global = 1, then checking any
dp->vlan_filtering would yield the same result). Only the ports which
are actively enslaved into a bridge would have vlan_filtering set.
This makes it tricky
This hides the need to perform a two-phase transaction and construct a
switchdev_obj_port_vlan struct.
Call graph (including a function that will be introduced in a follow-up
patch) looks like this now (same for the *_vlan_del function):
dsa_slave_vlan_rx_add_vid dsa_port_setup_8021q_tagging
Since different types of hardware may or may not support this setting
per-port, DSA keeps it either in dsa_switch or in dsa_port.
While drivers may know the characteristics of their hardware and
retrieve it from the correct place without the need of helpers, it is
cumbersone to find out an unambig
Interesting, thanks for your efforts! I submitted the patch removing
the workaround because it seems now (at least since 5.1-rc1) we're fine.
Heiner
On 28.04.2019 20:40, Neil MacLeod wrote:
> Hi Heiner
>
> I'd already kicked off a 5.0.2 build without the workaround and I've
> tested that now, an
Hi Heiner
I'd already kicked off a 5.0.2 build without the workaround and I've
tested that now, and it resumes at 10Mbps, so it may still be worth
identifying the exact 5.0.y version when it was fixed just in case
that provides some understanding of how it was fixed... I'll test the
remaining kern
On 28.04.2019 19:04, Andrew Lunn wrote:
> On Sun, Apr 28, 2019 at 03:03:37PM +0200, Heiner Kallweit wrote:
>> So far we set the advertising bitmap before setting the pause flags
>> in the supported bitmap. This may cause pause not being advertised.
>
> Hi Heiner
>
> Pause requires that the PHY ca
A DSA tag driver module will need to register the tag protocols it
implements with the DSA core. Add macros containing this boiler plate.
The registration/unregistration code is currently just a stub. A Later
patch will add the real implementation.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian
On Sun, Apr 28, 2019 at 8:10 AM Eric Dumazet wrote:
>
>
>
> On 4/27/19 7:27 PM, David Ahern wrote:
> > From: David Ahern
> >
> > This series moves IPv4 pcpu cached routes from fib_nh to fib_nh_common
> > to make the caches avaialable for IPv6 nexthops (fib6_nh) with IPv4
> > routes. This allows a
In order that we can match the tagging protocol a switch driver
request to the tagger, we need to know what protocol the tagger
supports. Add this information to the ops structure.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
v2
More tag protocol to end of structure to keep hot memb
Make the CONFIG symbols tristate and add help text.
The broadcom and Microchip KSZ tag drivers support two different
tagging protocols in one driver. Add a configuration option for the
drivers, and then options to select the protocol.
Create a submenu for the tagging drivers.
Signed-off-by: Andr
dsa_resolve_tag_protocol() is used to find the tagging driver needed
by a switch driver. When the tagging drivers become modules, it will
be necassary to take a reference on the module to prevent it being
unloaded. So rename this function to _get() to indicate it has some
locking properties.
Signe
When the tag drivers become modules, we will need to dynamically load
them based on what the switch drivers need. Add aliases to map between
the TAG protocol and the driver.
In order to do this, we need the tag protocol number as something
which the C pre-processor can stringinfy. Only the compile
It is possible that the driver is compiled with both
CONFIG_NET_DSA_TAG_BRCM and CONFIG_NET_DSA_TAG_BRCM_PREPEND disabled.
This results in warnings about unused symbols. Add some conditional
compilation to avoid this.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
v2
Reorder patch to
Implement the _get and _put functions to make use of the list of tag
drivers. Also, trigger the loading of the module, based on the alias
information. The _get function takes a reference on the tag driver, so
it cannot be unloaded, and the _put function releases the reference.
Signed-off-by: Andre
All the tag drivers are some variant of GPL. Add a MODULE_LICENSE()
indicating this, so the drivers can later be compiled as modules.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
net/dsa/tag_brcm.c| 1 +
net/dsa/tag_dsa.c | 1 +
net/dsa/tag_edsa.c| 1 +
net/dsa/tag_g
According to Neil who reported the issue leading to this
workaround, the workaround is no longer needed since
version 5.0. So let's remove it.
This was the bug report leading to the workaround:
https://bugzilla.kernel.org/show_bug.cgi?id=201081
Signed-off-by: Heiner Kallweit
Tested-by: Neil MacL
When a DSA switch driver is unloaded, the lock on the tag driver
should be released so the module can be unloaded. Add the needed calls,
but leave the actual release code as a stub.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
v2
--
Fix fall-through comment
---
net/dsa/dsa.c |
The none tagger is special in that it does not live in a tag_*.c file,
but is within the core. Register/unregister when DSA is
loaded/unloaded.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
net/dsa/dsa.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/net/dsa/dsa.c b/n
Let the tag drivers register themselves with the DSA core, keeping
them in a linked list.
Signed-off-by: Andrew Lunn
v2
--
List pointer has been moved
void functions, since there cannot be errors
---
net/dsa/dsa.c | 28
1 file changed, 28 insertions(+)
diff --git a
Add an SPDX header, and remove the license boilerplate text.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
net/dsa/tag_brcm.c| 6 +-
net/dsa/tag_dsa.c | 6 +-
net/dsa/tag_edsa.c| 6 +-
net/dsa/tag_ksz.c | 6 +-
net/dsa/tag_lan9303.c | 11 +-
Historically, DSA tag drivers have been compiled into the kernel as
part of the DSA core. With the growing number of tag drivers, it makes
sense to allow this driver code to be compiled as a module, and loaded
on demand.
Tested-by: Vivien Didelot
v2
--
Move name to end of structure, keeping the
Hi Neil,
thanks for reporting back. Interesting, then the root cause of the
issue seems to have been in a different corner. On my hardware
I'm not able to reproduce the issue. It's not that relevant with which
exact version the issue vanished. Based on your results I'll just
remove the workaround
Rather than keep a list to map a tagger ops to a name, place the name
into the ops structure. This removes the hard coded list, a step
towards making the taggers more dynamic.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
v2:
Move name to end of structure, keeping the hot entries at
Now that tag drivers dynamically register, we don't need the static
table. Remove it. This also means the tag driver structures can be
made static.
Signed-off-by: Andrew Lunn
Reviewed-by: Florian Fainelli
---
include/net/dsa.h | 1 -
net/dsa/dsa.c | 35 -
Hi Heiner
Do you know if this is already fixed in 5.1-rc6 (Linus Torvalds tree),
as in order to test your request I thought I would reproduce the issue
with plain 5.1-rc6 with the workaround removed, however without the
workaround 5.1-rc6 is resuming correctly at 1000Mbps.
I went back to 4.19-rc4
On Sun, Apr 28, 2019 at 03:03:37PM +0200, Heiner Kallweit wrote:
> So far we set the advertising bitmap before setting the pause flags
> in the supported bitmap. This may cause pause not being advertised.
Hi Heiner
Pause requires that the PHY can advertise the pause bits, and that the
MAC support
On Sun, Apr 28, 2019 at 03:45:21PM +1000, Stephen Mallon wrote:
> Ensure that the unique timestamp identifier is incremented for skb hardware
> timestamps, not just software timestamps.
Thanks for fixing this. It has been at the back of my mind for a long
time, but since I don't use this feature.
On 4/28/19 7:57 AM, Eric Dumazet wrote:
>
>
> On 4/27/19 8:22 PM, David Ahern wrote:
>> On 4/27/19 5:56 PM, Eric Dumazet wrote:
>>> David
>>>
>>> I am staring at ip6_dst_destroy() and the last part makes really no sense
>>> to me.
>>>
>>> How rcu_read_lock()/rcu_read_unnlock() can help in a w
On 4/27/19 7:27 PM, David Ahern wrote:
> From: David Ahern
>
> This series moves IPv4 pcpu cached routes from fib_nh to fib_nh_common
> to make the caches avaialable for IPv6 nexthops (fib6_nh) with IPv4
> routes. This allows a fib6_nh struct to be used with both IPv4 and
> and IPv6 routes.
>
On 4/27/19 8:22 PM, David Ahern wrote:
> On 4/27/19 5:56 PM, Eric Dumazet wrote:
>> David
>>
>> I am staring at ip6_dst_destroy() and the last part makes really no sense to
>> me.
>>
>> How rcu_read_lock()/rcu_read_unnlock() can help in a writer side ???
>>
>> Changlog of a68886a691804d3f6d479e
Hi Neil,
you once reported the original issue resulting in this workaround.
This workaround shouldn't be needed any longer, but I have no affected HW
to test on. Do you have the option to apply the patch below to latest
net-next and test link speed after resume from suspend?
git://git.kernel.org/p
So far we set the advertising bitmap before setting the pause flags
in the supported bitmap. This may cause pause not being advertised.
At least r8169 driver works around this by copying supported ->
advertising on its own. The linkmode bitmaps have been introduced only
recently, therefore the patc
From: Daniel Borkmann
Date: Sun, 28 Apr 2019 12:59:09 +0200
> The following pull-request contains BPF updates for your *net-next* tree.
...
> Please consider pulling these changes from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Pulled, thanks Daniel.
On Sun, Apr 28, 2019 at 02:38:48PM +0300, Leon Romanovsky wrote:
> On Wed, Apr 24, 2019 at 01:39:26PM -0300, Jason Gunthorpe wrote:
> > On Wed, Apr 24, 2019 at 07:27:36PM +0300, Leon Romanovsky wrote:
> > > On Wed, Apr 24, 2019 at 12:53:13PM -0300, Jason Gunthorpe wrote:
> > > > On Wed, Apr 24, 201
On Wed, Apr 24, 2019 at 01:39:26PM -0300, Jason Gunthorpe wrote:
> On Wed, Apr 24, 2019 at 07:27:36PM +0300, Leon Romanovsky wrote:
> > On Wed, Apr 24, 2019 at 12:53:13PM -0300, Jason Gunthorpe wrote:
> > > On Wed, Apr 24, 2019 at 06:49:37PM +0300, Leon Romanovsky wrote:
> > > > On Wed, Apr 24, 201
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
The main changes are:
1) Introduce BPF socket local storage map so that BPF programs can store
private data they associate with a socket (instead of e.g. separate hash
table), from Martin.
2) Add support f
On Sun, Apr 28, 2019 at 4:05 AM David Miller wrote:
>
> And I keep getting things like:
>
> Applying: isdn: gigaset: remove i4l support
> error: removal patch leaves file contents
> error: drivers/isdn/gigaset/i4l.c: patch does not apply
> Patch failed at 0001 isdn: gigaset: remove i4l support
> h
In basically all eri function calls the type argument is ERIAR_EXGMAC.
Therefore make it the default.
Signed-off-by: Heiner Kallweit
---
drivers/net/ethernet/realtek/r8169.c | 222 +--
1 file changed, 108 insertions(+), 114 deletions(-)
diff --git a/drivers/net/ethernet/
Add helpers rtl_eri_set_bits and rtl_eri_clear_bits to improve
readability of the code.
Signed-off-by: Heiner Kallweit
---
drivers/net/ethernet/realtek/r8169.c | 76 +++-
1 file changed, 40 insertions(+), 36 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169.c
Fortunately in one place there's a comment explaining what toggling
this bit does. So let's create a helper for it.
Signed-off-by: Heiner Kallweit
---
drivers/net/ethernet/realtek/r8169.c | 25 -
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/drivers/net/
This series aims at improving and simplifying the eri functions.
No functional change intended.
Heiner Kallweit (3):
r8169: make ERIAR_EXGMAC the default in eri functions
r8169: add helpers rtl_eri_set/clear_bits
r8169: add rtl_reset_packet_filter
drivers/net/ethernet/realtek/r8169.c | 247
71 matches
Mail list logo