* Re: KASAN: use-after-free Read in nbp_vlan_rcu_free
From: nikolay @ 2018-11-12 8:32 UTC (permalink / raw)
To: syzbot, bridge, davem, linux-kernel, netdev, roopa,
syzkaller-bugs
In-Reply-To: <00000000000047feb5057a714975@google.com>
On 12 November 2018 06:51:02 CET, syzbot <syzbot+04681da557a0e49a52e5@syzkaller.appspotmail.com> wrote:
>Hello,
>
>syzbot found the following crash on:
>
>HEAD commit: e12e00e388de Merge tag 'kbuild-fixes-v4.20' of
>git://git.k..
>git tree: upstream
>console output:
>https://syzkaller.appspot.com/x/log.txt?x=14cdb6f5400000
>kernel config:
>https://syzkaller.appspot.com/x/.config?x=8f215f21f041a0d7
>dashboard link:
>https://syzkaller.appspot.com/bug?extid=04681da557a0e49a52e5
>compiler: gcc (GCC) 8.0.1 20180413 (experimental)
>
>Unfortunately, I don't have any reproducer for this crash yet.
>
>IMPORTANT: if you fix the bug, please add the following tag to the
>commit:
>Reported-by: syzbot+04681da557a0e49a52e5@syzkaller.appspotmail.com
Thanks, I'm about to fly out for LPC. Will take a look in a day.
^ permalink raw reply
* Re: [PATCH net-next v3] PCI: add USR vendor id and use it in r8169 and w6692 driver
From: David Miller @ 2018-11-11 22:00 UTC (permalink / raw)
To: hkallweit1; +Cc: bhelgaas, isdn, netdev, linux-pci
In-Reply-To: <a1c56e9d-b427-af43-840e-c527c79feadc@gmail.com>
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 11 Nov 2018 20:31:21 +0100
> The PCI vendor id of U.S. Robotics isn't defined in pci_ids.h so far,
> only ISDN driver w6692 has a private definition. Move the definition
> to pci_ids.h and use it in the r8169 driver too.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
> v2:
> - The original patch caused a build failure in w6692 driver because
> it broke the private PCI device id definition.
> v3:
> - Don't move device id's to pci_ids.h because they are used in
> one module only respectively.
Yep, that's better.
Applied, thanks!
^ permalink raw reply
* Re: [PATCH net-next] net_sched: sch_fq: add dctcp-like marking
From: David Miller @ 2018-11-11 21:59 UTC (permalink / raw)
To: edumazet; +Cc: netdev, eric.dumazet
In-Reply-To: <20181111171131.24115-1-edumazet@google.com>
From: Eric Dumazet <edumazet@google.com>
Date: Sun, 11 Nov 2018 09:11:31 -0800
> Similar to 80ba92fa1a92 ("codel: add ce_threshold attribute")
>
> After EDT adoption, it became easier to implement DCTCP-like CE marking.
>
> In many cases, queues are not building in the network fabric but on
> the hosts themselves.
>
> If packets leaving fq missed their Earliest Departure Time by XXX usec,
> we mark them with ECN CE. This gives a feedback (after one RTT) to
> the sender to slow down and find better operating mode.
>
> Example :
>
> tc qd replace dev eth0 root fq ce_threshold 2.5ms
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied, thanks Eric.
^ permalink raw reply
* Re: [PATCH net-next] tcp: tsq: no longer use limit_output_bytes for paced flows
From: David Miller @ 2018-11-11 21:57 UTC (permalink / raw)
To: edumazet; +Cc: netdev, eric.dumazet
In-Reply-To: <20181111153428.198810-1-edumazet@google.com>
From: Eric Dumazet <edumazet@google.com>
Date: Sun, 11 Nov 2018 07:34:28 -0800
> FQ pacing guarantees that paced packets queued by one flow do not
> add head-of-line blocking for other flows.
>
> After TCP GSO conversion, increasing limit_output_bytes to 1 MB is safe,
> since this maps to 16 skbs at most in qdisc or device queues.
> (or slightly more if some drivers lower {gso_max_segs|size})
>
> We still can queue at most 1 ms worth of traffic (this can be scaled
> by wifi drivers if they need to)
>
> Tested:
...
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied.
^ permalink raw reply
* Re: [PATCH net-next 0/3] tcp: tso defer improvements
From: David Miller @ 2018-11-11 21:55 UTC (permalink / raw)
To: edumazet; +Cc: netdev, soheil, eric.dumazet
In-Reply-To: <20181111144131.156754-1-edumazet@google.com>
From: Eric Dumazet <edumazet@google.com>
Date: Sun, 11 Nov 2018 06:41:28 -0800
> This series makes tcp_tso_should_defer() a bit smarter :
>
> 1) MSG_EOR gives a hint to TCP to not defer some skbs
>
> 2) Second patch takes into account that head tstamp
> can be in the future.
>
> 3) Third patch uses existing high resolution state variables
> to have a more precise heuristic.
This stuff is fantastic, series applied.
^ permalink raw reply
* [PATCH net-next] net: phy: switch to lockdep_assert_held in phylib
From: Heiner Kallweit @ 2018-11-11 21:33 UTC (permalink / raw)
To: Andrew Lunn, Florian Fainelli, David Miller; +Cc: netdev@vger.kernel.org
These checks are relevant during development / testing only,
therefore switch to lockdep_assert_held and friends.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/phy/mdio_bus.c | 4 ++--
drivers/net/phy/phy.c | 2 +-
drivers/net/phy/phy_device.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 2e59a8419..5cb06f021 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -541,7 +541,7 @@ int __mdiobus_read(struct mii_bus *bus, int addr, u32 regnum)
{
int retval;
- WARN_ON_ONCE(!mutex_is_locked(&bus->mdio_lock));
+ lockdep_assert_held_once(&bus->mdio_lock);
retval = bus->read(bus, addr, regnum);
@@ -566,7 +566,7 @@ int __mdiobus_write(struct mii_bus *bus, int addr, u32 regnum, u16 val)
{
int err;
- WARN_ON_ONCE(!mutex_is_locked(&bus->mdio_lock));
+ lockdep_assert_held_once(&bus->mdio_lock);
err = bus->write(bus, addr, regnum, val);
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 083977d2f..b0b3c9ac4 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -514,7 +514,7 @@ static int phy_check_link_status(struct phy_device *phydev)
{
int err;
- WARN_ON(!mutex_is_locked(&phydev->lock));
+ lockdep_assert_held(&phydev->lock);
err = phy_read_status(phydev);
if (err)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 0f56d408b..1c20a0df3 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1340,7 +1340,7 @@ int __phy_resume(struct phy_device *phydev)
struct phy_driver *phydrv = to_phy_driver(phydev->mdio.dev.driver);
int ret = 0;
- WARN_ON(!mutex_is_locked(&phydev->lock));
+ lockdep_assert_held(&phydev->lock);
if (phydev->drv && phydrv->resume)
ret = phydrv->resume(phydev);
--
2.19.1
^ permalink raw reply related
* Why Me In This Terrible Condition.
From: Mrs Franisca carlsen @ 2018-11-11 20:51 UTC (permalink / raw)
Greetings My Dear,
I sent this mail praying it will found you in a good condition of
health, since I myself are in a very critical health condition in
which I sleep every night without knowing if I may be alive to see
the next day. I am Mrs. Francisca Carlsen from Denmark wife of late
Mr John Carlsen, a widow suffering from long time illness. I have some
funds I inherited from my late husband, the sum of (eleven million
dollars) my Doctor told me recently that I have serious sickness which
is cancer problem. What disturbs me most is my stroke sickness. Having
known my condition, I decided to donate this fund to a good person
that will utilize it the way i am going to instruct herein. I need a
very honest and God fearing person who can claim this money and use it
for Charity works, for orphanages, widows and also build schools for
less privileges that will be named after my late husband if possible
and to promote the word of God and the effort that the house of God is
maintained.
I do not want a situation where this money will be used in an ungodly
manner. That's why I'm taking this decision. I'm not afraid of death,
so I know where I'm going. I accept this decision because I do not
have any child who will inherit this money after I die. Please I want
your sincerely and urgent answer to know if you will be able to
execute this project, and I will give you more information on how the
fund will be transferred to your bank account. I am waiting for your
reply.
May God Bless you,
Mrs. Francisca Carlsen
^ permalink raw reply
* [PATCH net-next] net: phy: icplus: add config_intr callback
From: Heiner Kallweit @ 2018-11-11 20:49 UTC (permalink / raw)
To: Andrew Lunn, Florian Fainelli, David Miller; +Cc: netdev@vger.kernel.org
Move IRQ configuration for IP101A/G from config_init to config_intr
callback. Reasons:
1. This allows phylib to disable interrupts if needed.
2. Icplus was the only driver supporting interrupts w/o defining a
config_intr callback. Now we can add a phylib plausibility check
disabling interrupt mode if one of the two irq-related callbacks
isn't defined.
I don't own hardware with this PHY, and the change is based on the
datasheet for IP101A LF (which is supposed to be register-compatible
with IP101A/G). Change is compile-tested only.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/phy/icplus.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/drivers/net/phy/icplus.c b/drivers/net/phy/icplus.c
index 21ce68964..ad87bd328 100644
--- a/drivers/net/phy/icplus.c
+++ b/drivers/net/phy/icplus.c
@@ -42,8 +42,8 @@ MODULE_LICENSE("GPL");
#define IP1001_APS_ON 11 /* IP1001 APS Mode bit */
#define IP101A_G_APS_ON 2 /* IP101A/G APS Mode bit */
#define IP101A_G_IRQ_CONF_STATUS 0x11 /* Conf Info IRQ & Status Reg */
-#define IP101A_G_IRQ_PIN_USED (1<<15) /* INTR pin used */
-#define IP101A_G_IRQ_DEFAULT IP101A_G_IRQ_PIN_USED
+#define IP101A_G_IRQ_PIN_USED BIT(15) /* INTR pin used */
+#define IP101A_G_NO_IRQ BIT(11) /* IRQ's inactive */
static int ip175c_config_init(struct phy_device *phydev)
{
@@ -170,11 +170,6 @@ static int ip101a_g_config_init(struct phy_device *phydev)
if (c < 0)
return c;
- /* INTR pin used: speed/link/duplex will cause an interrupt */
- c = phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, IP101A_G_IRQ_DEFAULT);
- if (c < 0)
- return c;
-
/* Enable Auto Power Saving mode */
c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
c |= IP101A_G_APS_ON;
@@ -201,6 +196,19 @@ static int ip175c_config_aneg(struct phy_device *phydev)
return 0;
}
+static int ip101a_g_config_intr(struct phy_device *phydev)
+{
+ u16 val;
+
+ if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
+ /* INTR pin used: Speed/link/duplex will cause an interrupt */
+ val = IP101A_G_IRQ_PIN_USED;
+ else
+ val = IP101A_G_NO_IRQ;
+
+ return phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, val);
+}
+
static int ip101a_g_ack_interrupt(struct phy_device *phydev)
{
int err = phy_read(phydev, IP101A_G_IRQ_CONF_STATUS);
@@ -234,6 +242,7 @@ static struct phy_driver icplus_driver[] = {
.name = "ICPlus IP101A/G",
.phy_id_mask = 0x0ffffff0,
.features = PHY_BASIC_FEATURES,
+ .config_intr = ip101a_g_config_intr,
.ack_interrupt = ip101a_g_ack_interrupt,
.config_init = &ip101a_g_config_init,
.suspend = genphy_suspend,
--
2.19.1
^ permalink raw reply related
* Re: WARN_ON() in netconsole with PREEMPT_RT
From: Oleksandr Natalenko @ 2018-11-11 20:16 UTC (permalink / raw)
To: David S. Miller
Cc: Steven Rostedt, Sebastian Andrzej Siewior, Thomas Gleixner,
Eric Dumazet, Dave Jones, netdev, linux-rt-users, linux-kernel
In-Reply-To: <f9111ab09dbc264c8ff8b3b79e9f4c06@natalenko.name>
On 11.11.2018 20:13, Oleksandr Natalenko wrote:
> Hi.
>
> I was just curious about PREEMPT_RT and decided to give it a (small)
> shot on my laptop. As a safety measure, I've enabled netconsole to
> catch all the weird stuff that can pop up, and immediately it indeed
> did… in the netconsole code itself (irony):
>
> ===
> [ 64.018949] WARNING: CPU: 0 PID: 1204 at net/core/netpoll.c:372
> netpoll_send_udp+0x3e8/0x3ef
> …
> [ 64.019057] CPU: 0 PID: 1204 Comm: bash Not tainted 4.19.0-ig1 #1
> [ 64.019058] Hardware name: Dell Inc. Vostro 3360/0F5DWF,
> BIOS A18 09/25/2013
> [ 64.019063] RIP: 0010:netpoll_send_udp+0x3e8/0x3ef
> [
> 64.019066] Code: dd ff ff 41 ba 86 dd ff ff 49 2b 96 d0 00 00 00 66 41
> 89 96 c6 00 00 00 66 44 89 48 0c 66 45 89 96 c0 00 00 00 e9
> 93 fe ff ff <0f> 0b e9 40 fc ff ff 0f 1f 44 00 00 53 0f b7 57 42 48 89
> fb 48 8b
> [ 64.019068] RSP: 0018:ffffaa6743f87c98 EFLAGS: 00010202
> [ 64.019070] RAX: 0000000000000292 RBX: 0000000000000014 RCX:
> 0000000000000028
> [ 64.019072] RDX: 0000000000000014 RSI: ffffffffb1e6a300 RDI:
> ffff95973d905668
> [ 64.019073] RBP: ffffaa6743f87cd8 R08: ffffffffc11f6ba0 R09:
> 0000000000000000
> [ 64.019075] R10: 0000000000000008 R11: 0000000000000000 R12:
> 00000000000003e8
> [ 64.019076] R13: ffff95973d905668 R14: 0000000000000014 R15:
> ffff95973d905668
> [ 64.019079] FS: 00007f2f8b809b80(0000) GS:ffff95976f000000(0000)
> knlGS:0000000000000000
> [ 64.019081] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 64.019083] CR2: 000055b8e126fbc8 CR3: 0000000415440006 CR4:
> 00000000001606f0
> [ 64.019084] Call Trace:
> [ 64.019098] write_msg+0xd1/0xe0 [netconsole]
> [ 64.019107] console_unlock.part.6+0x55b/0x5a0
> [ 64.019115] ? _raw_spin_unlock_irqrestore+0x20/0x60
> [ 64.019120] vprintk_emit+0x16a/0x1a0
> [ 64.019125] printk_emit+0x44/0x5b
> [ 64.019130] ? _raw_spin_trylock+0x13/0x80
> [ 64.019134] devkmsg_write.cold.16+0x21/0x4e
> [ 64.019140] __vfs_write+0x136/0x1a0
> [ 64.019145] vfs_write+0xa9/0x1a0
> [ 64.019149] ksys_write+0x52/0xc0
> [ 64.019156] do_syscall_64+0x5b/0x170
> [ 64.019160] entry_SYSCALL_64_after_hwframe+0x44/0xa9
> …
> ===
>
> This is a v4.19.1-rt3-based kernel.
>
> The WARN_ON() is:
>
> 362 void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
> 363 {
> …
> 372 WARN_ON_ONCE(!irqs_disabled());
> …
>
> If that matters, I have "threadirqs" passed to the kernel.
>
> Netconsole seems to work even after this warning. Is this OK/expected?
>
> Thanks.
Oh, I see that write_msg() calls netpoll_send_udp() under
spin_lock_irqsave(), but in PREEMPT_RT this, AFAIK, does not disable
interrupts.
So, the real question here is whether the interrupts should be indeed
disabled. And if so, -rt should replace spin_lock_irqsave() call there
with what? local_irq_save()? and get rid of the warning?
--
Oleksandr Natalenko (post-factum)
^ permalink raw reply
* [PATCH tip/core/rcu 2/7] sfc: Replace spin_is_locked() with lockdep
From: Paul E. McKenney @ 2018-11-11 20:04 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Lance Roy, Solarflare linux maintainers, Edward Cree,
Bert Kenward, David S. Miller, netdev, Paul E . McKenney
In-Reply-To: <20181111200421.GA10551@linux.ibm.com>
From: Lance Roy <ldr709@gmail.com>
lockdep_assert_held() is better suited to checking locking requirements,
since it only checks if the current thread holds the lock regardless of
whether someone else does. This is also a step towards possibly removing
spin_is_locked().
Signed-off-by: Lance Roy <ldr709@gmail.com>
Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
Cc: Edward Cree <ecree@solarflare.com>
Cc: Bert Kenward <bkenward@solarflare.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
---
drivers/net/ethernet/sfc/efx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 98fe7e762e17..3643015a55cf 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -3167,7 +3167,7 @@ struct hlist_head *efx_rps_hash_bucket(struct efx_nic *efx,
{
u32 hash = efx_filter_spec_hash(spec);
- WARN_ON(!spin_is_locked(&efx->rps_hash_lock));
+ lockdep_assert_held(&efx->rps_hash_lock);
if (!efx->rps_hash_table)
return NULL;
return &efx->rps_hash_table[hash % EFX_ARFS_HASH_TABLE_SIZE];
--
2.17.1
^ permalink raw reply related
* [PATCH tip/core/rcu 3/7] smsc: Replace spin_is_locked() with lockdep
From: Paul E. McKenney @ 2018-11-11 20:04 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Lance Roy, Steve Glendinning, David S. Miller, netdev,
Paul E . McKenney
In-Reply-To: <20181111200421.GA10551@linux.ibm.com>
From: Lance Roy <ldr709@gmail.com>
lockdep_assert_held() is better suited to checking locking requirements,
since it only checks if the current thread holds the lock regardless of
whether someone else does. This is also a step towards possibly removing
spin_is_locked().
Signed-off-by: Lance Roy <ldr709@gmail.com>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
---
drivers/net/ethernet/smsc/smsc911x.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/smsc/smsc911x.h b/drivers/net/ethernet/smsc/smsc911x.h
index 8d75508acd2b..51b2fc1a395f 100644
--- a/drivers/net/ethernet/smsc/smsc911x.h
+++ b/drivers/net/ethernet/smsc/smsc911x.h
@@ -67,7 +67,7 @@
#ifdef CONFIG_DEBUG_SPINLOCK
#define SMSC_ASSERT_MAC_LOCK(pdata) \
- WARN_ON_SMP(!spin_is_locked(&pdata->mac_lock))
+ lockdep_assert_held(&pdata->mac_lock)
#else
#define SMSC_ASSERT_MAC_LOCK(pdata) do {} while (0)
#endif /* CONFIG_DEBUG_SPINLOCK */
--
2.17.1
^ permalink raw reply related
* general protection fault in rds_recv_rcvbuf_delta
From: syzbot @ 2018-11-12 5:51 UTC (permalink / raw)
To: davem, linux-kernel, linux-rdma, netdev, rds-devel,
santosh.shilimkar, syzkaller-bugs
Hello,
syzbot found the following crash on:
HEAD commit: e255aee5b66c Merge tag 'tty-4.20-rc2' of git://git.kernel...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=124d66a3400000
kernel config: https://syzkaller.appspot.com/x/.config?x=8f215f21f041a0d7
dashboard link: https://syzkaller.appspot.com/bug?extid=4b4f8163c2e246df3c4c
compiler: gcc (GCC) 8.0.1 20180413 (experimental)
Unfortunately, I don't have any reproducer for this crash yet.
IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+4b4f8163c2e246df3c4c@syzkaller.appspotmail.com
vhci_hcd: default hub control req: 0000 v0000 i0001 l50287
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 18919 Comm: syz-executor3 Not tainted 4.20.0-rc1+ #109
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
RIP: 0010:rds_recv_rcvbuf_delta.part.3+0x14a/0x3f0 net/rds/recv.c:103
Code: c1 ea 03 80 3c 02 00 0f 85 6e 02 00 00 4c 8b a3 c0 04 00 00 48 b8 00
00 00 00 00 fc ff df 49 8d 7c 24 2c 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48
89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 00
RSP: 0018:ffff88018b39efc0 EFLAGS: 00010007
RAX: dffffc0000000000 RBX: ffff8801be730780 RCX: ffffc9001061b000
RDX: 0000000000000005 RSI: ffffffff8749949b RDI: 000000000000002c
RBP: ffff88018b39eff8 R08: ffff8801ce388300 R09: ffffed0031673ded
R10: ffffed0031673ded R11: 0000000000000003 R12: 0000000000000000
R13: ffff8801be730ca4 R14: 000000000002e0c0 R15: ffff8801cbe88b00
FS: 00007fa7bf29b700(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b33a27000 CR3: 00000001bf445000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
rds_recv_rcvbuf_delta net/rds/recv.c:379 [inline]
rds_recv_incoming+0x8bb/0x1400 net/rds/recv.c:379
rds_loop_xmit+0xf3/0x2a0 net/rds/loop.c:96
rds_send_xmit+0x13ef/0x2bb0 net/rds/send.c:355
rds_sendmsg+0x290f/0x3180 net/rds/send.c:1338
sock_sendmsg_nosec net/socket.c:621 [inline]
sock_sendmsg+0xd5/0x120 net/socket.c:631
__sys_sendto+0x3d7/0x670 net/socket.c:1788
__do_sys_sendto net/socket.c:1800 [inline]
__se_sys_sendto net/socket.c:1796 [inline]
__x64_sys_sendto+0xe1/0x1a0 net/socket.c:1796
do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x457569
Code: fd b3 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 cb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007fa7bf29ac78 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 0000000000457569
RDX: 0000000000000241 RSI: 0000000020000a00 RDI: 0000000000000008
RBP: 000000000072bf00 R08: 000000002069affb R09: 0000000000000010
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fa7bf29b6d4
R13: 00000000004c3c11 R14: 00000000004d5e80 R15: 00000000ffffffff
Modules linked in:
---[ end trace ffda6d1117cbc209 ]---
RIP: 0010:rds_recv_rcvbuf_delta.part.3+0x14a/0x3f0 net/rds/recv.c:103
Code: c1 ea 03 80 3c 02 00 0f 85 6e 02 00 00 4c 8b a3 c0 04 00 00 48 b8 00
00 00 00 00 fc ff df 49 8d 7c 24 2c 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48
89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 00
RSP: 0018:ffff88018b39efc0 EFLAGS: 00010007
RAX: dffffc0000000000 RBX: ffff8801be730780 RCX: ffffc9001061b000
RDX: 0000000000000005 RSI: ffffffff8749949b RDI: 000000000000002c
RBP: ffff88018b39eff8 R08: ffff8801ce388300 R09: ffffed0031673ded
R10: ffffed0031673ded R11: 0000000000000003 R12: 0000000000000000
R13: ffff8801be730ca4 R14: 000000000002e0c0 R15: ffff8801cbe88b00
FS: 00007fa7bf29b700(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b33a27000 CR3: 00000001bf445000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.
syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with
syzbot.
^ permalink raw reply
* [PATCH tip/core/rcu 38/41] net/core/skmsg: Replace call_rcu_sched() with call_rcu()
From: Paul E. McKenney @ 2018-11-11 19:44 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Paul E. McKenney, John Fastabend, Daniel Borkmann,
David S. Miller, netdev
In-Reply-To: <20181111194104.GA4787@linux.ibm.com>
Now that call_rcu()'s callback is not invoked until after all
preempt-disable regions of code have completed (in addition to explicitly
marked RCU read-side critical sections), call_rcu() can be used in place
of call_rcu_sched(). This commit therefore makes that change.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
---
net/core/skmsg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index 56a99d0c9aa0..c92d6ccce610 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -580,7 +580,7 @@ void sk_psock_drop(struct sock *sk, struct sk_psock *psock)
write_unlock_bh(&sk->sk_callback_lock);
sk_psock_clear_state(psock, SK_PSOCK_TX_ENABLED);
- call_rcu_sched(&psock->rcu, sk_psock_destroy);
+ call_rcu(&psock->rcu, sk_psock_destroy);
}
EXPORT_SYMBOL_GPL(sk_psock_drop);
--
2.17.1
^ permalink raw reply related
* [PATCH tip/core/rcu 31/41] net/sched: Replace call_rcu_bh() and rcu_barrier_bh()
From: Paul E. McKenney @ 2018-11-11 19:44 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Paul E. McKenney, Jamal Hadi Salim, Cong Wang, Jiri Pirko,
David S. Miller, netdev
In-Reply-To: <20181111194104.GA4787@linux.ibm.com>
Now that call_rcu()'s callback is not invoked until after bh-disable
regions of code have completed (in addition to explicitly marked
RCU read-side critical sections), call_rcu() can be used in place
of call_rcu_bh(). Similarly, rcu_barrier() can be used in place o
frcu_barrier_bh(). This commit therefore makes these changes.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
---
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index ca3b0f46de53..016e628c6ac9 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -540,7 +540,7 @@ void qdisc_put_stab(struct qdisc_size_table *tab)
if (--tab->refcnt == 0) {
list_del(&tab->list);
- call_rcu_bh(&tab->rcu, stab_kfree_rcu);
+ call_rcu(&tab->rcu, stab_kfree_rcu);
}
}
EXPORT_SYMBOL(qdisc_put_stab);
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index de1663f7d3ad..66ba2ce2320f 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1372,7 +1372,7 @@ void mini_qdisc_pair_swap(struct mini_Qdisc_pair *miniqp,
if (!tp_head) {
RCU_INIT_POINTER(*miniqp->p_miniq, NULL);
/* Wait for flying RCU callback before it is freed. */
- rcu_barrier_bh();
+ rcu_barrier();
return;
}
@@ -1380,10 +1380,10 @@ void mini_qdisc_pair_swap(struct mini_Qdisc_pair *miniqp,
&miniqp->miniq1 : &miniqp->miniq2;
/* We need to make sure that readers won't see the miniq
- * we are about to modify. So wait until previous call_rcu_bh callback
+ * we are about to modify. So wait until previous call_rcu callback
* is done.
*/
- rcu_barrier_bh();
+ rcu_barrier();
miniq->filter_list = tp_head;
rcu_assign_pointer(*miniqp->p_miniq, miniq);
@@ -1392,7 +1392,7 @@ void mini_qdisc_pair_swap(struct mini_Qdisc_pair *miniqp,
* block potential new user of miniq_old until all readers
* are not seeing it.
*/
- call_rcu_bh(&miniq_old->rcu, mini_qdisc_rcu_func);
+ call_rcu(&miniq_old->rcu, mini_qdisc_rcu_func);
}
EXPORT_SYMBOL(mini_qdisc_pair_swap);
--
2.17.1
^ permalink raw reply related
* [PATCH tip/core/rcu 12/41] ethernet/realtek: Replace synchronize_sched() with synchronize_rcu()
From: Paul E. McKenney @ 2018-11-11 19:43 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Paul E. McKenney, Realtek linux nic maintainers, David S. Miller,
netdev
In-Reply-To: <20181111194104.GA4787@linux.ibm.com>
Now that synchronize_rcu() waits for preempt-disable regions of code
as well as RCU read-side critical sections, synchronize_sched() can be
replaced by synchronize_rcu(). This commit therefore makes this change.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
---
drivers/net/ethernet/realtek/8139too.c | 2 +-
drivers/net/ethernet/realtek/r8169.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/realtek/8139too.c b/drivers/net/ethernet/realtek/8139too.c
index ffd68a7bc9e1..69d752f0b621 100644
--- a/drivers/net/ethernet/realtek/8139too.c
+++ b/drivers/net/ethernet/realtek/8139too.c
@@ -1661,7 +1661,7 @@ static void rtl8139_tx_timeout_task (struct work_struct *work)
napi_disable(&tp->napi);
netif_stop_queue(dev);
- synchronize_sched();
+ synchronize_rcu();
netdev_dbg(dev, "Transmit timeout, status %02x %04x %04x media %02x\n",
RTL_R8(ChipCmd), RTL_R16(IntrStatus),
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 1fd01688d37b..4f1d89f0dc24 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5866,7 +5866,7 @@ static void rtl_reset_work(struct rtl8169_private *tp)
napi_disable(&tp->napi);
netif_stop_queue(dev);
- synchronize_sched();
+ synchronize_rcu();
rtl8169_hw_reset(tp);
@@ -6609,7 +6609,7 @@ static void rtl8169_down(struct net_device *dev)
rtl8169_rx_missed(dev);
/* Give a racing hard_start_xmit a few cycles to complete. */
- synchronize_sched();
+ synchronize_rcu();
rtl8169_tx_clear(tp);
--
2.17.1
^ permalink raw reply related
* [PATCH tip/core/rcu 39/41] net/decnet: Replace rcu_barrier_bh() with rcu_barrier()
From: Paul E. McKenney @ 2018-11-11 19:44 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Paul E. McKenney, David S. Miller, linux-decnet-user, netdev
In-Reply-To: <20181111194104.GA4787@linux.ibm.com>
Now that all RCU flavors have been consolidated, rcu_barrier_bh()
is but a synonym for rcu_barrier(). This commit therefore replaces
the former with the latter.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <linux-decnet-user@lists.sourceforge.net>
Cc: <netdev@vger.kernel.org>
---
net/decnet/af_decnet.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
index 7d6ff983ba2c..dbd0f7bae00a 100644
--- a/net/decnet/af_decnet.c
+++ b/net/decnet/af_decnet.c
@@ -2405,7 +2405,7 @@ static void __exit decnet_exit(void)
proto_unregister(&dn_proto);
- rcu_barrier_bh(); /* Wait for completion of call_rcu_bh()'s */
+ rcu_barrier(); /* Wait for completion of call_rcu()'s */
}
module_exit(decnet_exit);
#endif
--
2.17.1
^ permalink raw reply related
* [PATCH tip/core/rcu 33/41] net/bridge: Replace call_rcu_bh() and rcu_barrier_bh()
From: Paul E. McKenney @ 2018-11-11 19:44 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, fweisbec, oleg, joel,
Paul E. McKenney, Roopa Prabhu, Nikolay Aleksandrov,
David S. Miller, bridge, netdev
In-Reply-To: <20181111194104.GA4787@linux.ibm.com>
Now that call_rcu()'s callback is not invoked until after all bh-disable
regions of code have completed (in addition to explicitly marked
RCU read-side critical sections), call_rcu() can be used in place
of call_rcu_bh(). Similarly, rcu_barrier() can be used in place of
rcu_barrier_bh(). This commit therefore makes these changes.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: Roopa Prabhu <roopa@cumulusnetworks.com>
Cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: <bridge@lists.linux-foundation.org>
Cc: <netdev@vger.kernel.org>
---
net/bridge/br_mdb.c | 2 +-
net/bridge/br_multicast.c | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index a7ea2d431714..596ec6e7df11 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -728,7 +728,7 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry)
rcu_assign_pointer(*pp, p->next);
hlist_del_init(&p->mglist);
del_timer(&p->timer);
- call_rcu_bh(&p->rcu, br_multicast_free_pg);
+ call_rcu(&p->rcu, br_multicast_free_pg);
err = 0;
if (!mp->ports && !mp->host_joined &&
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 6bac0d6b7b94..0255223f2001 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -260,7 +260,7 @@ static void br_multicast_group_expired(struct timer_list *t)
hlist_del_rcu(&mp->hlist[mdb->ver]);
mdb->size--;
- call_rcu_bh(&mp->rcu, br_multicast_free_group);
+ call_rcu(&mp->rcu, br_multicast_free_group);
out:
spin_unlock(&br->multicast_lock);
@@ -291,7 +291,7 @@ static void br_multicast_del_pg(struct net_bridge *br,
del_timer(&p->timer);
br_mdb_notify(br->dev, p->port, &pg->addr, RTM_DELMDB,
p->flags);
- call_rcu_bh(&p->rcu, br_multicast_free_pg);
+ call_rcu(&p->rcu, br_multicast_free_pg);
if (!mp->ports && !mp->host_joined &&
netif_running(br->dev))
@@ -358,7 +358,7 @@ static int br_mdb_rehash(struct net_bridge_mdb_htable __rcu **mdbp, int max,
}
br_mdb_rehash_seq++;
- call_rcu_bh(&mdb->rcu, br_mdb_free);
+ call_rcu(&mdb->rcu, br_mdb_free);
out:
rcu_assign_pointer(*mdbp, mdb);
@@ -1629,7 +1629,7 @@ br_multicast_leave_group(struct net_bridge *br,
rcu_assign_pointer(*pp, p->next);
hlist_del_init(&p->mglist);
del_timer(&p->timer);
- call_rcu_bh(&p->rcu, br_multicast_free_pg);
+ call_rcu(&p->rcu, br_multicast_free_pg);
br_mdb_notify(br->dev, port, group, RTM_DELMDB,
p->flags);
@@ -2051,19 +2051,19 @@ void br_multicast_dev_del(struct net_bridge *br)
hlist_for_each_entry_safe(mp, n, &mdb->mhash[i],
hlist[ver]) {
del_timer(&mp->timer);
- call_rcu_bh(&mp->rcu, br_multicast_free_group);
+ call_rcu(&mp->rcu, br_multicast_free_group);
}
}
if (mdb->old) {
spin_unlock_bh(&br->multicast_lock);
- rcu_barrier_bh();
+ rcu_barrier();
spin_lock_bh(&br->multicast_lock);
WARN_ON(mdb->old);
}
mdb->old = mdb;
- call_rcu_bh(&mdb->rcu, br_mdb_free);
+ call_rcu(&mdb->rcu, br_mdb_free);
out:
spin_unlock_bh(&br->multicast_lock);
--
2.17.1
^ permalink raw reply related
* [PATCH net-next v3] PCI: add USR vendor id and use it in r8169 and w6692 driver
From: Heiner Kallweit @ 2018-11-11 19:31 UTC (permalink / raw)
To: Bjorn Helgaas, David Miller, Karsten Keil
Cc: netdev@vger.kernel.org, linux-pci@vger.kernel.org
In-Reply-To: <9af6abf5-ba01-155f-17d1-ca4b71b74fa6@gmail.com>
The PCI vendor id of U.S. Robotics isn't defined in pci_ids.h so far,
only ISDN driver w6692 has a private definition. Move the definition
to pci_ids.h and use it in the r8169 driver too.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
v2:
- The original patch caused a build failure in w6692 driver because
it broke the private PCI device id definition.
v3:
- Don't move device id's to pci_ids.h because they are used in
one module only respectively.
---
drivers/isdn/hardware/mISDN/w6692.c | 3 ---
drivers/net/ethernet/realtek/r8169.c | 2 +-
include/linux/pci_ids.h | 2 ++
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c
index 5acf6ab67..6f60aced1 100644
--- a/drivers/isdn/hardware/mISDN/w6692.c
+++ b/drivers/isdn/hardware/mISDN/w6692.c
@@ -52,10 +52,7 @@ static const struct w6692map w6692_map[] =
{W6692_USR, "USR W6692"}
};
-#ifndef PCI_VENDOR_ID_USR
-#define PCI_VENDOR_ID_USR 0x16ec
#define PCI_DEVICE_ID_USR_6692 0x3409
-#endif
struct w6692_ch {
struct bchannel bch;
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 1fd01688d..366a690eb 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -224,7 +224,7 @@ static const struct pci_device_id rtl8169_pci_tbl[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_AT, 0xc107), 0, 0, RTL_CFG_0 },
- { PCI_DEVICE(0x16ec, 0x0116), 0, 0, RTL_CFG_0 },
+ { PCI_DEVICE(PCI_VENDOR_ID_USR, 0x0116), 0, 0, RTL_CFG_0 },
{ PCI_VENDOR_ID_LINKSYS, 0x1032,
PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 },
{ 0x0001, 0x8168,
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 69f0abe1b..144de2e89 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2359,6 +2359,8 @@
#define PCI_VENDOR_ID_SYNOPSYS 0x16c3
+#define PCI_VENDOR_ID_USR 0x16ec
+
#define PCI_VENDOR_ID_VITESSE 0x1725
#define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174
--
2.19.1
^ permalink raw reply related
* Re: [PATCH net-next 3/3] tcp: get rid of tcp_tso_should_defer() dependency on HZ/jiffies
From: Neal Cardwell @ 2018-11-11 19:06 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, Netdev, Soheil Hassas Yeganeh, Eric Dumazet
In-Reply-To: <20181111144131.156754-4-edumazet@google.com>
On Sun, Nov 11, 2018 at 9:41 AM Eric Dumazet <edumazet@google.com> wrote:
>
> tcp_tso_should_defer() first heuristic is to not defer
> if last send is "old enough".
>
> Its current implementation uses jiffies and its low granularity.
>
> TSO autodefer performance should not rely on kernel HZ :/
>
> After EDT conversion, we have state variables in nanoseconds that
> can allow us to properly implement the heuristic.
>
> This patch increases TSO chunk sizes on medium rate flows,
> especially when receivers do not use GRO or similar aggregation.
>
> It also reduces bursts for HZ=100 or HZ=250 kernels, making TCP
> behavior more uniform.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
> ---
Nice. Thanks!
Acked-by: Neal Cardwell <ncardwell@google.com>
neal
^ permalink raw reply
* Re: [PATCH net-next 2/3] tcp: refine tcp_tso_should_defer() after EDT adoption
From: Neal Cardwell @ 2018-11-11 19:02 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, Netdev, Soheil Hassas Yeganeh, Eric Dumazet
In-Reply-To: <20181111144131.156754-3-edumazet@google.com>
On Sun, Nov 11, 2018 at 9:41 AM Eric Dumazet <edumazet@google.com> wrote:
>
> tcp_tso_should_defer() last step tries to check if the probable
> next ACK packet is coming in less than half rtt.
>
> Problem is that the head->tstamp might be in the future,
> so we need to use signed arithmetics to avoid overflows.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
> ---
> net/ipv4/tcp_output.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
Thanks!
Acked-by: Neal Cardwell <ncardwell@google.com>
neal
^ permalink raw reply
* Re: [PATCH net-next 1/3] tcp: do not try to defer skbs with eor mark (MSG_EOR)
From: Neal Cardwell @ 2018-11-11 18:58 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, Netdev, Soheil Hassas Yeganeh, Eric Dumazet
In-Reply-To: <20181111144131.156754-2-edumazet@google.com>
On Sun, Nov 11, 2018 at 9:41 AM Eric Dumazet <edumazet@google.com> wrote:
>
> Applications using MSG_EOR are giving a strong hint to TCP stack :
>
> Subsequent sendmsg() can not append more bytes to skbs having
> the EOR mark.
>
> Do not try to TSO defer suchs skbs, there is really no hope.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
> ---
> net/ipv4/tcp_output.c | 4 ++++
> 1 file changed, 4 insertions(+)
Thanks!
Acked-by: Neal Cardwell <ncardwell@google.com>
neal
^ permalink raw reply
* Re: [PATCH net-next] net_sched: sch_fq: add dctcp-like marking
From: Neal Cardwell @ 2018-11-11 18:50 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, Netdev, Eric Dumazet
In-Reply-To: <20181111171131.24115-1-edumazet@google.com>
On Sun, Nov 11, 2018 at 12:11 PM Eric Dumazet <edumazet@google.com> wrote:
>
> Similar to 80ba92fa1a92 ("codel: add ce_threshold attribute")
>
> After EDT adoption, it became easier to implement DCTCP-like CE marking.
>
> In many cases, queues are not building in the network fabric but on
> the hosts themselves.
>
> If packets leaving fq missed their Earliest Departure Time by XXX usec,
> we mark them with ECN CE. This gives a feedback (after one RTT) to
> the sender to slow down and find better operating mode.
>
> Example :
>
> tc qd replace dev eth0 root fq ce_threshold 2.5ms
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> ---
Very nice! Thanks, Eric. :-)
Acked-by: Neal Cardwell <ncardwell@google.com>
neal
^ permalink raw reply
* Re: [PATCH net 4/4] qed: Fix reading wrong value in loop condition
From: David Miller @ 2018-11-11 18:26 UTC (permalink / raw)
To: denis.bolotin; +Cc: netdev, michal.kalderon, ariel.elior
In-Reply-To: <20181111150500.4345-5-denis.bolotin@cavium.com>
From: Denis Bolotin <denis.bolotin@cavium.com>
Date: Sun, 11 Nov 2018 17:05:00 +0200
> diff --git a/drivers/net/ethernet/qlogic/qed/qed_int.c b/drivers/net/ethernet/qlogic/qed/qed_int.c
> index 0f0aba7..aa7504a 100644
> --- a/drivers/net/ethernet/qlogic/qed/qed_int.c
> +++ b/drivers/net/ethernet/qlogic/qed/qed_int.c
> @@ -992,6 +992,8 @@ static int qed_int_attentions(struct qed_hwfn *p_hwfn)
> */
> do {
> index = p_sb_attn->sb_index;
> + /* finish reading index before the loop condition */
> + rmb();
Please use dma_rmb().
^ permalink raw reply
* Re: [PATCH net-next v2] PCI: add USR vendor id and use it in r8169 and w6692 driver
From: David Miller @ 2018-11-11 18:23 UTC (permalink / raw)
To: hkallweit1; +Cc: bhelgaas, isdn, netdev, linux-pci
In-Reply-To: <f35fbe1d-b1f3-c0f8-82d6-18b0c7cda0b4@gmail.com>
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 11 Nov 2018 11:50:08 +0100
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 69f0abe1b..1fac231fe 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2359,6 +2359,10 @@
>
> #define PCI_VENDOR_ID_SYNOPSYS 0x16c3
>
> +#define PCI_VENDOR_ID_USR 0x16ec
> +#define PCI_DEVICE_ID_USR_997902 0x0116
> +#define PCI_DEVICE_ID_USR_6692 0x3409
> +
> #define PCI_VENDOR_ID_VITESSE 0x1725
> #define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174
Generally, as I understand the policy for linux/pci_ids.h, we only add
things used in multiple locations.
So PCI_VENDOR_ID_USR is OK, since it is used in both r8169 and w6692.
But the device IDs are not, since only w6692 uses them.
^ permalink raw reply
* Re: [PATCH net] act_mirred: clear skb->tstamp on redirect
From: David Miller @ 2018-11-11 18:21 UTC (permalink / raw)
To: edumazet; +Cc: netdev, eric.dumazet
In-Reply-To: <20181111002229.157219-1-edumazet@google.com>
From: Eric Dumazet <edumazet@google.com>
Date: Sat, 10 Nov 2018 16:22:29 -0800
> If sch_fq is used at ingress, skbs that might have been
> timestamped by net_timestamp_set() if a packet capture
> is requesting timestamps could be delayed by arbitrary
> amount of time, since sch_fq time base is MONOTONIC.
>
> Fix this problem by moving code from sch_netem.c to act_mirred.c.
>
> Fixes: fb420d5d91c1 ("tcp/fq: move back to CLOCK_MONOTONIC")
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied.
^ 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