* [PATCH net-next v2 01/10] drop_monitor: Split tracing enable / disable to different functions
From: Ido Schimmel @ 2019-08-11 7:35 UTC (permalink / raw)
To: netdev
Cc: davem, nhorman, jiri, toke, dsahern, roopa, nikolay,
jakub.kicinski, andy, f.fainelli, andrew, vivien.didelot, mlxsw,
Ido Schimmel
In-Reply-To: <20190811073555.27068-1-idosch@idosch.org>
From: Ido Schimmel <idosch@mellanox.com>
Subsequent patches will need to enable / disable tracing based on the
configured alerting mode.
Reduce the nesting level and prepare for the introduction of this
functionality by splitting the tracing enable / disable operations into
two different functions.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
net/core/drop_monitor.c | 79 ++++++++++++++++++++++++++---------------
1 file changed, 51 insertions(+), 28 deletions(-)
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
index 4deb86f990f1..8b9b0b899ebc 100644
--- a/net/core/drop_monitor.c
+++ b/net/core/drop_monitor.c
@@ -241,11 +241,58 @@ static void trace_napi_poll_hit(void *ignore, struct napi_struct *napi,
rcu_read_unlock();
}
+static int net_dm_trace_on_set(struct netlink_ext_ack *extack)
+{
+ int rc;
+
+ if (!try_module_get(THIS_MODULE)) {
+ NL_SET_ERR_MSG_MOD(extack, "Failed to take reference on module");
+ return -ENODEV;
+ }
+
+ rc = register_trace_kfree_skb(trace_kfree_skb_hit, NULL);
+ if (rc) {
+ NL_SET_ERR_MSG_MOD(extack, "Failed to connect probe to kfree_skb() tracepoint");
+ goto err_module_put;
+ }
+
+ rc = register_trace_napi_poll(trace_napi_poll_hit, NULL);
+ if (rc) {
+ NL_SET_ERR_MSG_MOD(extack, "Failed to connect probe to napi_poll() tracepoint");
+ goto err_unregister_trace;
+ }
+
+ return 0;
+
+err_unregister_trace:
+ unregister_trace_kfree_skb(trace_kfree_skb_hit, NULL);
+err_module_put:
+ module_put(THIS_MODULE);
+ return rc;
+}
+
+static void net_dm_trace_off_set(void)
+{
+ struct dm_hw_stat_delta *new_stat, *temp;
+
+ unregister_trace_napi_poll(trace_napi_poll_hit, NULL);
+ unregister_trace_kfree_skb(trace_kfree_skb_hit, NULL);
+
+ tracepoint_synchronize_unregister();
+
+ list_for_each_entry_safe(new_stat, temp, &hw_stats_list, list) {
+ if (new_stat->dev == NULL) {
+ list_del_rcu(&new_stat->list);
+ kfree_rcu(new_stat, rcu);
+ }
+ }
+
+ module_put(THIS_MODULE);
+}
+
static int set_all_monitor_traces(int state, struct netlink_ext_ack *extack)
{
int rc = 0;
- struct dm_hw_stat_delta *new_stat = NULL;
- struct dm_hw_stat_delta *temp;
if (state == trace_state) {
NL_SET_ERR_MSG_MOD(extack, "Trace state already set to requested state");
@@ -254,34 +301,10 @@ static int set_all_monitor_traces(int state, struct netlink_ext_ack *extack)
switch (state) {
case TRACE_ON:
- if (!try_module_get(THIS_MODULE)) {
- NL_SET_ERR_MSG_MOD(extack, "Failed to take reference on module");
- rc = -ENODEV;
- break;
- }
-
- rc |= register_trace_kfree_skb(trace_kfree_skb_hit, NULL);
- rc |= register_trace_napi_poll(trace_napi_poll_hit, NULL);
+ rc = net_dm_trace_on_set(extack);
break;
-
case TRACE_OFF:
- rc |= unregister_trace_kfree_skb(trace_kfree_skb_hit, NULL);
- rc |= unregister_trace_napi_poll(trace_napi_poll_hit, NULL);
-
- tracepoint_synchronize_unregister();
-
- /*
- * Clean the device list
- */
- list_for_each_entry_safe(new_stat, temp, &hw_stats_list, list) {
- if (new_stat->dev == NULL) {
- list_del_rcu(&new_stat->list);
- kfree_rcu(new_stat, rcu);
- }
- }
-
- module_put(THIS_MODULE);
-
+ net_dm_trace_off_set();
break;
default:
rc = 1;
--
2.21.0
^ permalink raw reply related
* [PATCH net-next v2 00/10] drop_monitor: Capture dropped packets and metadata
From: Ido Schimmel @ 2019-08-11 7:35 UTC (permalink / raw)
To: netdev
Cc: davem, nhorman, jiri, toke, dsahern, roopa, nikolay,
jakub.kicinski, andy, f.fainelli, andrew, vivien.didelot, mlxsw,
Ido Schimmel
From: Ido Schimmel <idosch@mellanox.com>
So far drop monitor supported only one mode of operation in which a
summary of recent packet drops is periodically sent to user space as a
netlink event. The event only includes the drop location (program
counter) and number of drops in the last interval.
While this mode of operation allows one to understand if the system is
dropping packets, it is not sufficient if a more detailed analysis is
required. Both the packet itself and related metadata are missing.
This patchset extends drop monitor with another mode of operation where
the packet - potentially truncated - and metadata (e.g., drop location,
timestamp, netdev) are sent to user space as a netlink event. Thanks to
the extensible nature of netlink, more metadata can be added in the
future.
To avoid performing expensive operations in the context in which
kfree_skb() is called, the dropped skbs are cloned and queued on per-CPU
skb drop list. The list is then processed in process context (using a
workqueue), where the netlink messages are allocated, prepared and
finally sent to user space.
A follow-up patchset will integrate drop monitor with devlink and allow
the latter to call into drop monitor to report hardware drops. In the
future, XDP drops can be added as well, thereby making drop monitor the
go-to netlink channel for diagnosing all packet drops.
Example usage with patched dropwatch [1] can be found here [2]. Example
dissection of drop monitor netlink events with patched wireshark [3] can
be found here [4]. I will submit both changes upstream after the kernel
changes are accepted. Another change worth making is adding a dropmon
pseudo interface to libpcap, similar to the nflog interface [5]. This
will allow users to specifically listen on dropmon traffic instead of
capturing all netlink packets via the nlmon netdev.
Patches #1-#5 prepare the code towards the actual changes in later
patches.
Patch #6 adds another mode of operation to drop monitor in which the
dropped packet itself is notified to user space along with metadata.
Patch #7 allows users to truncate reported packets to a specific length,
in case only the headers are of interest. The original length of the
packet is added as metadata to the netlink notification.
Patch #8 allows user to query the current configuration of drop monitor
(e.g., alert mode, truncation length).
Patches #9-#10 allow users to tune the length of the per-CPU skb drop
list according to their needs.
Changes since v1 [6]:
* Add skb protocol as metadata. This allows user space to correctly
dissect the packet instead of blindly assuming it is an Ethernet
packet
Changes since RFC [7]:
* Limit the length of the per-CPU skb drop list and make it configurable
* Do not use the hysteresis timer in packet alert mode
* Introduce alert mode operations in a separate patch and only then
introduce the new alert mode
* Use 'skb->skb_iif' instead of 'skb->dev' because the latter is inside
a union with 'dev_scratch' and therefore not guaranteed to point to a
valid netdev
* Return '-EBUSY' instead of '-EOPNOTSUPP' when trying to configure drop
monitor while it is monitoring
* Did not change schedule_work() in favor of schedule_work_on() as I did
not observe a change in number of tail drops
[1] https://github.com/idosch/dropwatch/tree/packet-mode
[2] https://gist.github.com/idosch/3d524b887e16bc11b4b19e25c23dcc23#file-gistfile1-txt
[3] https://github.com/idosch/wireshark/tree/drop-monitor-v2
[4] https://gist.github.com/idosch/3d524b887e16bc11b4b19e25c23dcc23#file-gistfile2-txt
[5] https://github.com/the-tcpdump-group/libpcap/blob/master/pcap-netfilter-linux.c
[6] https://patchwork.ozlabs.org/cover/1143443/
[7] https://patchwork.ozlabs.org/cover/1135226/
Ido Schimmel (10):
drop_monitor: Split tracing enable / disable to different functions
drop_monitor: Initialize timer and work item upon tracing enable
drop_monitor: Reset per-CPU data before starting to trace
drop_monitor: Require CAP_NET_ADMIN for drop monitor configuration
drop_monitor: Add alert mode operations
drop_monitor: Add packet alert mode
drop_monitor: Allow truncation of dropped packets
drop_monitor: Add a command to query current configuration
drop_monitor: Make drop queue length configurable
drop_monitor: Expose tail drop counter
include/uapi/linux/net_dropmon.h | 51 +++
net/core/drop_monitor.c | 599 +++++++++++++++++++++++++++++--
2 files changed, 613 insertions(+), 37 deletions(-)
--
2.21.0
^ permalink raw reply
* Re: [PATCH v4 7/9] mfd: ioc3: Add driver for SGI IOC3 chip
From: Thomas Bogendoerfer @ 2019-08-11 7:32 UTC (permalink / raw)
To: Jakub Kicinski
Cc: Ralf Baechle, Paul Burton, James Hogan, Dmitry Torokhov,
Lee Jones, David S. Miller, Srinivas Kandagatla, Alessandro Zummo,
Alexandre Belloni, Greg Kroah-Hartman, Jiri Slaby,
Evgeniy Polyakov, linux-mips, linux-kernel, linux-input, netdev,
linux-rtc, linux-serial
In-Reply-To: <20190809142222.4558691e@cakuba.netronome.com>
On Fri, 9 Aug 2019 14:22:22 -0700
Jakub Kicinski <jakub.kicinski@netronome.com> wrote:
> On Fri, 9 Aug 2019 12:32:29 +0200, Thomas Bogendoerfer wrote:
> > SGI IOC3 chip has integrated ethernet, keyboard and mouse interface.
> > It also supports connecting a SuperIO chip for serial and parallel
> > interfaces. IOC3 is used inside various SGI systemboards and add-on
> > cards with different equipped external interfaces.
> >
> > Support for ethernet and serial interfaces were implemented inside
> > the network driver. This patchset moves out the not network related
> > parts to a new MFD driver, which takes care of card detection,
> > setup of platform devices and interrupt distribution for the subdevices.
> >
> > Serial portion: Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> >
> > Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
>
> There are a lot of changes in the ethernet part which are not easy to
> explain by the introduction of the other MFD parts.. Could you possibly
> break this change up into smaller chunks?
working on it
> Also please don't use stdint types in the kernel, please try checkpatch
> to catch coding style issues.
my patch already reduces them and checkpatch only warns about usage of printk
for the network part. Changing that to dev_warn/dev_err in the mfd patch didn't
seem the right thing to do. As I'm splitting the conversion patch into a few
steps I could also replace the printks.
Thomas.
--
SUSE Linux GmbH
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH v4 8/9] MIPS: SGI-IP27: fix readb/writeb addressing
From: Greg Kroah-Hartman @ 2019-08-11 7:29 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Thomas Bogendoerfer, Ralf Baechle, Paul Burton, James Hogan,
Dmitry Torokhov, Lee Jones, David S. Miller, Srinivas Kandagatla,
Alessandro Zummo, Alexandre Belloni, Jiri Slaby, Evgeniy Polyakov,
linux-mips, Linux Kernel Mailing List, linux-input, netdev,
open list:REAL TIME CLOCK (RTC) SUBSYSTEM,
open list:SERIAL DRIVERS
In-Reply-To: <CAHp75Vd_083R9sRsspVuJ3ZMTxpVR79PF5Lg-bpnMxRfN+b7wA@mail.gmail.com>
On Sat, Aug 10, 2019 at 04:22:23PM +0300, Andy Shevchenko wrote:
> On Fri, Aug 9, 2019 at 1:34 PM Thomas Bogendoerfer
> <tbogendoerfer@suse.de> wrote:
> >
> > Our chosen byte swapping, which is what firmware already uses, is to
> > do readl/writel by normal lw/sw intructions (data invariance). This
> > also means we need to mangle addresses for u8 and u16 accesses. The
> > mangling for 16bit has been done aready, but 8bit one was missing.
> > Correcting this causes different addresses for accesses to the
> > SuperIO and local bus of the IOC3 chip. This is fixed by changing
> > byte order in ioc3 and m48rtc_rtc structs.
>
> > /* serial port register map */
> > struct ioc3_serialregs {
> > - uint32_t sscr;
> > - uint32_t stpir;
> > - uint32_t stcir;
> > - uint32_t srpir;
> > - uint32_t srcir;
> > - uint32_t srtr;
> > - uint32_t shadow;
> > + u32 sscr;
> > + u32 stpir;
> > + u32 stcir;
> > + u32 srpir;
> > + u32 srcir;
> > + u32 srtr;
> > + u32 shadow;
> > };
>
> Isn't it a churn? AFAIU kernel documentation the uint32_t is okay to
> use, just be consistent inside one module / driver.
> Am I mistaken?
No, but really it uint* shouldn't be used anywhere in the kernel source
as it does not make sense.
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH] `iwlist scan` fails with many networks available
From: Johannes Berg @ 2019-08-11 6:25 UTC (permalink / raw)
To: James Nylen, David S. Miller, linux-wireless, netdev,
linux-kernel
In-Reply-To: <CABVa4NhutjvHPbyaxNeVpJjf-RMJdwEX-Yjk4bkqLC1DN3oXPA@mail.gmail.com>
On Sun, 2019-08-11 at 02:08 +0000, James Nylen wrote:
> In 5.x it's still possible for `ieee80211_scan_results` (`iwlist
> scan`) to fail when too many wireless networks are available. This
> code path is used by `wicd`.
>
> Previously: https://lkml.org/lkml/2017/4/2/192
This has been known for probably a decade or longer. I don't know why
'wicd' still insists on using wext, unless it's no longer maintained at
all. nl80211 doesn't have this problem at all, and I think gives more
details about the networks found too.
> I've been applying this updated patch to my own kernels since 2017 with
> no issues. I am sure it is not the ideal way to solve this problem, but
> I'm making my fix available in case it helps others.
I don't think silently dropping data is a good solution.
I suppose we could consider applying a workaround like this if it has a
condition checking that the buffer passed in is the maximum possible
buffer (65535 bytes, due to iw_point::length being u16), but below that
-E2BIG serves well-written implementations as an indicator that they
need to retry with a bigger buffer.
> Please advise on next steps or if this is a dead end.
I think wireless extensions are in fact a dead end and all software
(even 'wicd', which seems to be the lone holdout) should migrate to
nl80211 instead.
johannes
^ permalink raw reply
* Re: [PATCH net-next v2 1/1] net: dsa: fix fixed-link port registration
From: Andrew Lunn @ 2019-08-11 3:39 UTC (permalink / raw)
To: Marek Behún
Cc: netdev, Heiner Kallweit, Sebastian Reichel, Vivien Didelot,
Florian Fainelli, David S . Miller
In-Reply-To: <20190811031857.2899-1-marek.behun@nic.cz>
On Sun, Aug 11, 2019 at 05:18:57AM +0200, Marek Behún wrote:
> Commit 88d6272acaaa ("net: phy: avoid unneeded MDIO reads in
> genphy_read_status") broke fixed link DSA port registration in
> dsa_port_fixed_link_register_of: the genphy_read_status does not do what
> it is supposed to and the following adjust_link is given wrong
> parameters.
Hi Marek
Which parameters are incorrect?
In fixed_phy.c, __fixed_phy_register() there is:
/* propagate the fixed link values to struct phy_device */
phy->link = status->link;
if (status->link) {
phy->speed = status->speed;
phy->duplex = status->duplex;
phy->pause = status->pause;
phy->asym_pause = status->asym_pause;
}
Are we not initialising something? Or is the initialisation done here
getting reset sometime afterwards?
Thanks
Andrew
^ permalink raw reply
* Re: [PATCH v2] kbuild: re-implement detection of CONFIG options leaked to user-space
From: kbuild test robot @ 2019-08-11 3:28 UTC (permalink / raw)
To: Masahiro Yamada
Cc: kbuild-all, linux-kbuild, Christoph Hellwig, Arnd Bergmann,
Sam Ravnborg, Masahiro Yamada, Alexei Starovoitov,
Daniel Borkmann, Martin KaFai Lau, Song Liu, Yonghong Song, bpf,
linux-kernel, netdev
In-Reply-To: <20190810170135.31183-1-yamada.masahiro@socionext.com>
[-- Attachment #1: Type: text/plain, Size: 7700 bytes --]
Hi Masahiro,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc3 next-20190809]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-re-implement-detection-of-CONFIG-options-leaked-to-user-space/20190811-085800
config: arc-allyesconfig (attached as .config)
compiler: arc-elf-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
warning: include/uapi/asm-generic/fcntl.h: leak CONFIG_64BIT to user-space
warning: include/uapi/linux/raw.h: leak CONFIG_MAX_RAW_DEVS to user-space
warning: include/uapi/linux/pktcdvd.h: leak CONFIG_CDROM_PKTCDVD_WCACHE to user-space
warning: include/uapi/linux/hw_breakpoint.h: leak CONFIG_HAVE_MIXED_BREAKPOINTS_REGS to user-space
warning: include/uapi/linux/eventpoll.h: leak CONFIG_PM_SLEEP to user-space
warning: include/uapi/linux/elfcore.h: leak CONFIG_BINFMT_ELF_FDPIC to user-space
warning: include/uapi/linux/atmdev.h: leak CONFIG_COMPAT to user-space
>> warning: arch/arc/include/uapi/asm/swab.h: leak CONFIG_ARC_HAS_SWAPE to user-space
>> warning: arch/arc/include/uapi/asm/page.h: leak CONFIG_ARC_PAGE_SIZE_16K to user-space
>> warning: arch/arc/include/uapi/asm/page.h: leak CONFIG_ARC_PAGE_SIZE_4K to user-space
In file included from arch/arc/include/asm/atomic.h:13:0,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/lock.h:5,
from arch/arc/include/asm/bitops.h:426,
from include/linux/bitops.h:19,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:18,
from arch/arc/include/asm/bug.h:29,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/arc/include/asm/cmpxchg.h: In function '__xchg':
arch/arc/include/asm/cmpxchg.h:191:19: error: 'CTOP_INST_XEX_DI_R2_R2_R3' undeclared (first use in this function)
: "r"(ptr), "i"(CTOP_INST_XEX_DI_R2_R2_R3)
^~~~~~~~~~~~~~~~~~~~~~~~~
arch/arc/include/asm/cmpxchg.h:191:19: note: each undeclared identifier is reported only once for each function it appears in
In file included from include/linux/atomic.h:7:0,
from include/asm-generic/bitops/lock.h:5,
from arch/arc/include/asm/bitops.h:426,
from include/linux/bitops.h:19,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:18,
from arch/arc/include/asm/bug.h:29,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/arc/include/asm/atomic.h: In function 'atomic_add':
arch/arc/include/asm/atomic.h:286:21: error: 'CTOP_INST_AADD_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:231:34: note: in definition of macro 'ATOMIC_OP'
: "r"(i), "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:286:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_add_return':
arch/arc/include/asm/atomic.h:286:21: error: 'CTOP_INST_AADD_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:249:26: note: in definition of macro 'ATOMIC_OP_RETURN'
: "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:286:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_fetch_add':
arch/arc/include/asm/atomic.h:286:21: error: 'CTOP_INST_AADD_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:273:26: note: in definition of macro 'ATOMIC_FETCH_OP'
: "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:286:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_and':
arch/arc/include/asm/atomic.h:296:21: error: 'CTOP_INST_AAND_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(and, &=, CTOP_INST_AAND_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:231:34: note: in definition of macro 'ATOMIC_OP'
: "r"(i), "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:296:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(and, &=, CTOP_INST_AAND_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_fetch_and':
arch/arc/include/asm/atomic.h:296:21: error: 'CTOP_INST_AAND_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(and, &=, CTOP_INST_AAND_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:273:26: note: in definition of macro 'ATOMIC_FETCH_OP'
: "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:296:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(and, &=, CTOP_INST_AAND_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_or':
arch/arc/include/asm/atomic.h:297:20: error: 'CTOP_INST_AOR_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(or, |=, CTOP_INST_AOR_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:231:34: note: in definition of macro 'ATOMIC_OP'
: "r"(i), "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:297:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(or, |=, CTOP_INST_AOR_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_fetch_or':
arch/arc/include/asm/atomic.h:297:20: error: 'CTOP_INST_AOR_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(or, |=, CTOP_INST_AOR_DI_R2_R2_R3)
^
arch/arc/include/asm/atomic.h:273:26: note: in definition of macro 'ATOMIC_FETCH_OP'
: "r"(&v->counter), "i"(asm_op) \
^~~~~~
arch/arc/include/asm/atomic.h:297:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(or, |=, CTOP_INST_AOR_DI_R2_R2_R3)
^~~~~~~~~~
arch/arc/include/asm/atomic.h: In function 'atomic_xor':
arch/arc/include/asm/atomic.h:298:21: error: 'CTOP_INST_AXOR_DI_R2_R2_R3' undeclared (first use in this function)
ATOMIC_OPS(xor, ^=, CTOP_INST_AXOR_DI_R2_R2_R3)
^
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59413 bytes --]
^ permalink raw reply
* Re: [PATCH] dpaa2-ethsw: move the DPAA2 Ethernet Switch driver out of staging
From: Andrew Lunn @ 2019-08-11 3:22 UTC (permalink / raw)
To: Ioana Ciornei
Cc: davem@davemloft.net, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
f.fainelli@gmail.com, Ioana Ciocoi Radulescu
In-Reply-To: <VI1PR0402MB2800FF2E5C4DE24B25E7D843E0D10@VI1PR0402MB2800.eurprd04.prod.outlook.com>
Hi Ioana
> >> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
> >> + struct ethsw_core *ethsw = port_priv->ethsw_data;
> >> + int i, err;
> >> +
> >> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++)
> >> + if (ethsw->ports[i]->bridge_dev &&
> >> + (ethsw->ports[i]->bridge_dev != upper_dev)) {
> >> + netdev_err(netdev,
> >> + "Another switch port is connected to %s\n",
> >> + ethsw->ports[i]->bridge_dev->name);
> >> + return -EINVAL;
> >> + }
> >
> > Am i reading this correct? You only support a single bridge? The
> > error message is not very informative. Also, i think you should be
> > returning EOPNOTSUPP, indicating the offload is not possible. Linux
> > will then do it in software. If it could actually receive/transmit the
> > frames....
> >
>
> Yes, we only support a single bridge.
That is a pretty severe restriction for a device of this class. Some
of the very simple switches DSA support have a similar restriction,
but in general, most do support multiple bridges.
Are there any plans to fix this?
Thanks
Andrew
^ permalink raw reply
* [PATCH net-next v2 1/1] net: dsa: fix fixed-link port registration
From: Marek Behún @ 2019-08-11 3:18 UTC (permalink / raw)
To: netdev
Cc: Marek Behún, Heiner Kallweit, Sebastian Reichel,
Vivien Didelot, Andrew Lunn, Florian Fainelli, David S . Miller
Commit 88d6272acaaa ("net: phy: avoid unneeded MDIO reads in
genphy_read_status") broke fixed link DSA port registration in
dsa_port_fixed_link_register_of: the genphy_read_status does not do what
it is supposed to and the following adjust_link is given wrong
parameters.
This causes a regression on Turris Omnia, where the mvneta driver for
the interface connected to the switch reports crc errors, for some
reason.
I realize this fix is not ideal, something else could change in genphy
functions which could cause DSA fixed-link port to break again.
Hopefully DSA fixed-link port functionality will be converted to phylink
API soon.
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Cc: Vivien Didelot <vivien.didelot@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: David S. Miller <davem@davemloft.net>
---
net/dsa/port.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/net/dsa/port.c b/net/dsa/port.c
index 363eab6df51b..c424ebb373e1 100644
--- a/net/dsa/port.c
+++ b/net/dsa/port.c
@@ -485,6 +485,17 @@ static int dsa_port_fixed_link_register_of(struct dsa_port *dp)
phydev->interface = mode;
genphy_config_init(phydev);
+
+ /*
+ * Commit 88d6272acaaa caused genphy_read_status not to do it's work if
+ * autonegotiation is enabled and link status did not change. This is
+ * the case for fixed_phy. By setting phydev->link = 0 before the call
+ * to genphy_read_status we force it to read and fill in the parameters.
+ *
+ * Hopefully this dirty hack will be removed soon by converting DSA
+ * fixed link ports to phylink API.
+ */
+ phydev->link = 0;
genphy_read_status(phydev);
if (ds->ops->adjust_link)
--
2.21.0
^ permalink raw reply related
* Re: [PATCH net-next 1/1] net: dsa: fix fixed-link port registration
From: Marek Behun @ 2019-08-11 3:19 UTC (permalink / raw)
To: David Miller
Cc: netdev, hkallweit1, sebastian.reichel, vivien.didelot, andrew,
f.fainelli
In-Reply-To: <20190810.200001.1046174945054576670.davem@davemloft.net>
On Sat, 10 Aug 2019 20:00:01 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:
> From: Marek Behun <marek.behun@nic.cz>
> Date: Sun, 11 Aug 2019 04:02:47 +0200
>
> > Which means I should have added the Fixes tag /o\
>
> Which means you need to repost this patch with it added.
Sent as v2
^ permalink raw reply
* Re: [PATCH net-next 1/1] net: dsa: fix fixed-link port registration
From: David Miller @ 2019-08-11 3:00 UTC (permalink / raw)
To: marek.behun
Cc: netdev, hkallweit1, sebastian.reichel, vivien.didelot, andrew,
f.fainelli
In-Reply-To: <20190811040247.03dcc403@nic.cz>
From: Marek Behun <marek.behun@nic.cz>
Date: Sun, 11 Aug 2019 04:02:47 +0200
> Which means I should have added the Fixes tag /o\
Which means you need to repost this patch with it added.
^ permalink raw reply
* Re: [PATCH v2] kbuild: re-implement detection of CONFIG options leaked to user-space
From: kbuild test robot @ 2019-08-11 2:50 UTC (permalink / raw)
To: Masahiro Yamada
Cc: kbuild-all, linux-kbuild, Christoph Hellwig, Arnd Bergmann,
Sam Ravnborg, Masahiro Yamada, Alexei Starovoitov,
Daniel Borkmann, Martin KaFai Lau, Song Liu, Yonghong Song, bpf,
linux-kernel, netdev
In-Reply-To: <20190810170135.31183-1-yamada.masahiro@socionext.com>
[-- Attachment #1: Type: text/plain, Size: 1891 bytes --]
Hi Masahiro,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc3 next-20190809]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-re-implement-detection-of-CONFIG-options-leaked-to-user-space/20190811-085800
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> warning: include/uapi/asm-generic/fcntl.h: leak CONFIG_64BIT to user-space
>> warning: include/uapi/linux/raw.h: leak CONFIG_MAX_RAW_DEVS to user-space
>> warning: include/uapi/linux/pktcdvd.h: leak CONFIG_CDROM_PKTCDVD_WCACHE to user-space
>> warning: include/uapi/linux/hw_breakpoint.h: leak CONFIG_HAVE_MIXED_BREAKPOINTS_REGS to user-space
>> warning: include/uapi/linux/eventpoll.h: leak CONFIG_PM_SLEEP to user-space
>> warning: include/uapi/linux/elfcore.h: leak CONFIG_BINFMT_ELF_FDPIC to user-space
>> warning: include/uapi/linux/atmdev.h: leak CONFIG_COMPAT to user-space
>> warning: arch/x86/include/uapi/asm/mman.h: leak CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS to user-space
>> warning: arch/x86/include/uapi/asm/auxvec.h: leak CONFIG_IA32_EMULATION to user-space
>> warning: arch/x86/include/uapi/asm/auxvec.h: leak CONFIG_X86_64 to user-space
1 real 10 user 4 sys 762.47% cpu make INSTALL_HDR_PATH=/tmp/usr/src/linux-headers-i386-defconfig-723c8e514c09af9516a181307cdaa1ee6a874ffd headers_install
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28074 bytes --]
^ permalink raw reply
* [net-next:master 57/138] arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: error: storage size of 'pip_sft_rst' isn't known
From: kbuild test robot @ 2019-08-11 2:35 UTC (permalink / raw)
To: Matthew Wilcox (Oracle); +Cc: kbuild-all, netdev
[-- Attachment #1: Type: text/plain, Size: 33544 bytes --]
Hi Matthew,
FYI, the error/warning still remains.
tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/davem/net-next.git master
head: 2cc2743d8feec87b0bc0c9c1106136852d97f566
commit: 171a9bae68c72f2d1260c3825203760856e6793b [57/138] staging/octeon: Allow test build on !MIPS
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 171a9bae68c72f2d1260c3825203760856e6793b
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from arch/mips/include/asm/octeon/octeon.h:11:0,
from drivers/staging/octeon/octeon-ethernet.h:19,
from drivers/staging/octeon/ethernet.c:22:
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_writeq_csr':
arch/mips/include/asm/octeon/cvmx.h:282:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
cvmx_write_csr((__force uint64_t)csr_addr, val);
^
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_readq_csr':
arch/mips/include/asm/octeon/cvmx.h:299:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return cvmx_read_csr((__force uint64_t) csr_addr);
^
In file included from drivers/staging/octeon/octeon-ethernet.h:27:0,
from drivers/staging/octeon/ethernet.c:22:
arch/mips/include/asm/octeon/cvmx-ipd.h: In function 'cvmx_ipd_free_ptr':
>> arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: error: storage size of 'pip_sft_rst' isn't known
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
>> arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: error: 'CVMX_PIP_SFT_RST' undeclared (first use in this function); did you mean 'CVMX_CIU_SOFT_RST'?
pip_sft_rst.u64 = cvmx_read_csr(CVMX_PIP_SFT_RST);
^~~~~~~~~~~~~~~~
CVMX_CIU_SOFT_RST
arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: warning: unused variable 'pip_sft_rst' [-Wunused-variable]
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
--
In file included from arch/mips/include/asm/octeon/octeon.h:11:0,
from drivers/staging/octeon/octeon-ethernet.h:19,
from drivers/staging/octeon/ethernet-rx.c:26:
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_writeq_csr':
arch/mips/include/asm/octeon/cvmx.h:282:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
cvmx_write_csr((__force uint64_t)csr_addr, val);
^
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_readq_csr':
arch/mips/include/asm/octeon/cvmx.h:299:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return cvmx_read_csr((__force uint64_t) csr_addr);
^
In file included from drivers/staging/octeon/octeon-ethernet.h:27:0,
from drivers/staging/octeon/ethernet-rx.c:26:
arch/mips/include/asm/octeon/cvmx-ipd.h: In function 'cvmx_ipd_free_ptr':
>> arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: error: storage size of 'pip_sft_rst' isn't known
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
>> arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: error: 'CVMX_PIP_SFT_RST' undeclared (first use in this function); did you mean 'CVMX_CIU_SOFT_RST'?
pip_sft_rst.u64 = cvmx_read_csr(CVMX_PIP_SFT_RST);
^~~~~~~~~~~~~~~~
CVMX_CIU_SOFT_RST
arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: warning: unused variable 'pip_sft_rst' [-Wunused-variable]
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
In file included from drivers/staging/octeon/ethernet-rx.c:27:0:
drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_poll':
>> drivers/staging/octeon/ethernet-defines.h:30:38: error: 'CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE' undeclared (first use in this function); did you mean 'CONFIG_MDIO_OCTEON_MODULE'?
#define USE_ASYNC_IOBDMA (CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0)
^
drivers/staging/octeon/ethernet-rx.c:190:6: note: in expansion of macro 'USE_ASYNC_IOBDMA'
if (USE_ASYNC_IOBDMA) {
^~~~~~~~~~~~~~~~
drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_rx_initialize':
>> drivers/staging/octeon/ethernet-rx.c:472:25: error: 'OCTEON_IRQ_WORKQ0' undeclared (first use in this function); did you mean 'OCTEON_IS_MODEL'?
oct_rx_group[i].irq = OCTEON_IRQ_WORKQ0 + i;
^~~~~~~~~~~~~~~~~
OCTEON_IS_MODEL
--
In file included from arch/mips/include/asm/octeon/octeon.h:11:0,
from drivers/staging/octeon/octeon-ethernet.h:19,
from drivers/staging/octeon/ethernet-spi.c:13:
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_writeq_csr':
arch/mips/include/asm/octeon/cvmx.h:282:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
cvmx_write_csr((__force uint64_t)csr_addr, val);
^
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_readq_csr':
arch/mips/include/asm/octeon/cvmx.h:299:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return cvmx_read_csr((__force uint64_t) csr_addr);
^
In file included from drivers/staging/octeon/octeon-ethernet.h:27:0,
from drivers/staging/octeon/ethernet-spi.c:13:
arch/mips/include/asm/octeon/cvmx-ipd.h: In function 'cvmx_ipd_free_ptr':
>> arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: error: storage size of 'pip_sft_rst' isn't known
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
>> arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: error: 'CVMX_PIP_SFT_RST' undeclared (first use in this function); did you mean 'CVMX_CIU_SOFT_RST'?
pip_sft_rst.u64 = cvmx_read_csr(CVMX_PIP_SFT_RST);
^~~~~~~~~~~~~~~~
CVMX_CIU_SOFT_RST
arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: warning: unused variable 'pip_sft_rst' [-Wunused-variable]
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
drivers/staging/octeon/ethernet-spi.c: In function 'cvm_oct_spi_init':
>> drivers/staging/octeon/ethernet-spi.c:198:19: error: 'OCTEON_IRQ_RML' undeclared (first use in this function); did you mean 'OCTEON_IS_MODEL'?
r = request_irq(OCTEON_IRQ_RML, cvm_oct_spi_rml_interrupt,
^~~~~~~~~~~~~~
OCTEON_IS_MODEL
drivers/staging/octeon/ethernet-spi.c: In function 'cvm_oct_spi_uninit':
drivers/staging/octeon/ethernet-spi.c:224:12: error: 'OCTEON_IRQ_RML' undeclared (first use in this function); did you mean 'OCTEON_IS_MODEL'?
free_irq(OCTEON_IRQ_RML, &number_spi_ports);
^~~~~~~~~~~~~~
OCTEON_IS_MODEL
--
In file included from arch/mips/include/asm/octeon/octeon.h:11:0,
from drivers/staging/octeon/octeon-ethernet.h:19,
from drivers/staging/octeon/ethernet-tx.c:25:
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_writeq_csr':
arch/mips/include/asm/octeon/cvmx.h:282:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
cvmx_write_csr((__force uint64_t)csr_addr, val);
^
arch/mips/include/asm/octeon/cvmx.h: In function 'cvmx_readq_csr':
arch/mips/include/asm/octeon/cvmx.h:299:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return cvmx_read_csr((__force uint64_t) csr_addr);
^
In file included from drivers/staging/octeon/octeon-ethernet.h:27:0,
from drivers/staging/octeon/ethernet-tx.c:25:
arch/mips/include/asm/octeon/cvmx-ipd.h: In function 'cvmx_ipd_free_ptr':
>> arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: error: storage size of 'pip_sft_rst' isn't known
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
>> arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: error: 'CVMX_PIP_SFT_RST' undeclared (first use in this function); did you mean 'CVMX_CIU_SOFT_RST'?
pip_sft_rst.u64 = cvmx_read_csr(CVMX_PIP_SFT_RST);
^~~~~~~~~~~~~~~~
CVMX_CIU_SOFT_RST
arch/mips/include/asm/octeon/cvmx-ipd.h:331:36: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/octeon/cvmx-ipd.h:330:27: warning: unused variable 'pip_sft_rst' [-Wunused-variable]
union cvmx_pip_sft_rst pip_sft_rst;
^~~~~~~~~~~
In file included from drivers/staging/octeon/ethernet-tx.c:26:0:
drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_xmit':
>> drivers/staging/octeon/ethernet-defines.h:30:38: error: 'CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE' undeclared (first use in this function); did you mean 'CONFIG_MDIO_OCTEON_MODULE'?
#define USE_ASYNC_IOBDMA (CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0)
^
drivers/staging/octeon/ethernet-tx.c:169:6: note: in expansion of macro 'USE_ASYNC_IOBDMA'
if (USE_ASYNC_IOBDMA) {
^~~~~~~~~~~~~~~~
In file included from arch/mips/include/asm/barrier.h:11:0,
from include/linux/compiler.h:256,
from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:9,
from drivers/staging/octeon/ethernet-tx.c:8:
drivers/staging/octeon/ethernet-tx.c:264:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data);
^
arch/mips/include/asm/addrspace.h:128:30: note: in definition of macro 'XKPHYS_TO_PHYS'
#define XKPHYS_TO_PHYS(p) ((p) & TO_PHYS_MASK)
^
drivers/staging/octeon/ethernet-tx.c:268:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data);
^
arch/mips/include/asm/addrspace.h:128:30: note: in definition of macro 'XKPHYS_TO_PHYS'
#define XKPHYS_TO_PHYS(p) ((p) & TO_PHYS_MASK)
^
drivers/staging/octeon/ethernet-tx.c:276:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
XKPHYS_TO_PHYS((u64)skb_frag_address(fs));
^
arch/mips/include/asm/addrspace.h:128:30: note: in definition of macro 'XKPHYS_TO_PHYS'
#define XKPHYS_TO_PHYS(p) ((p) & TO_PHYS_MASK)
^
drivers/staging/octeon/ethernet-tx.c:280:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)CVM_OCT_SKB_CB(skb));
^
arch/mips/include/asm/addrspace.h:128:30: note: in definition of macro 'XKPHYS_TO_PHYS'
#define XKPHYS_TO_PHYS(p) ((p) & TO_PHYS_MASK)
^
drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_tx_initialize':
>> drivers/staging/octeon/ethernet-tx.c:706:18: error: 'OCTEON_IRQ_TIMER1' undeclared (first use in this function); did you mean 'OCTEON_IS_MODEL'?
i = request_irq(OCTEON_IRQ_TIMER1,
^~~~~~~~~~~~~~~~~
OCTEON_IS_MODEL
drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_tx_shutdown':
drivers/staging/octeon/ethernet-tx.c:717:11: error: 'OCTEON_IRQ_TIMER1' undeclared (first use in this function); did you mean 'OCTEON_IS_MODEL'?
free_irq(OCTEON_IRQ_TIMER1, cvm_oct_device);
^~~~~~~~~~~~~~~~~
OCTEON_IS_MODEL
vim +330 arch/mips/include/asm/octeon/cvmx-ipd.h
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 154
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 155 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 156 * Supportive function for cvmx_fpa_shutdown_pool.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 157 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 158 static inline void cvmx_ipd_free_ptr(void)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 159 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 160 /* Only CN38XXp{1,2} cannot read pointer out of the IPD */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 161 if (!OCTEON_IS_MODEL(OCTEON_CN38XX_PASS1)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 162 && !OCTEON_IS_MODEL(OCTEON_CN38XX_PASS2)) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 163 int no_wptr = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 164 union cvmx_ipd_ptr_count ipd_ptr_count;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 165 ipd_ptr_count.u64 = cvmx_read_csr(CVMX_IPD_PTR_COUNT);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 166
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 167 /* Handle Work Queue Entry in cn56xx and cn52xx */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 168 if (octeon_has_feature(OCTEON_FEATURE_NO_WPTR)) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 169 union cvmx_ipd_ctl_status ipd_ctl_status;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 170 ipd_ctl_status.u64 = cvmx_read_csr(CVMX_IPD_CTL_STATUS);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 171 if (ipd_ctl_status.s.no_wptr)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 172 no_wptr = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 173 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 174
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 175 /* Free the prefetched WQE */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 176 if (ipd_ptr_count.s.wqev_cnt) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 177 union cvmx_ipd_wqe_ptr_valid ipd_wqe_ptr_valid;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 178 ipd_wqe_ptr_valid.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 179 cvmx_read_csr(CVMX_IPD_WQE_PTR_VALID);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 180 if (no_wptr)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 181 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 182 ((uint64_t) ipd_wqe_ptr_valid.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 183 ptr << 7), CVMX_FPA_PACKET_POOL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 184 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 185 else
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 186 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 187 ((uint64_t) ipd_wqe_ptr_valid.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 188 ptr << 7), CVMX_FPA_WQE_POOL, 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 189 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 190
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 191 /* Free all WQE in the fifo */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 192 if (ipd_ptr_count.s.wqe_pcnt) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 193 int i;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 194 union cvmx_ipd_pwp_ptr_fifo_ctl ipd_pwp_ptr_fifo_ctl;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 195 ipd_pwp_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 196 cvmx_read_csr(CVMX_IPD_PWP_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 197 for (i = 0; i < ipd_ptr_count.s.wqe_pcnt; i++) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 198 ipd_pwp_ptr_fifo_ctl.s.cena = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 199 ipd_pwp_ptr_fifo_ctl.s.raddr =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 200 ipd_pwp_ptr_fifo_ctl.s.max_cnts +
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 201 (ipd_pwp_ptr_fifo_ctl.s.wraddr +
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 202 i) % ipd_pwp_ptr_fifo_ctl.s.max_cnts;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 203 cvmx_write_csr(CVMX_IPD_PWP_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 204 ipd_pwp_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 205 ipd_pwp_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 206 cvmx_read_csr(CVMX_IPD_PWP_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 207 if (no_wptr)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 208 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 209 ((uint64_t)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 210 ipd_pwp_ptr_fifo_ctl.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 211 ptr << 7),
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 212 CVMX_FPA_PACKET_POOL, 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 213 else
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 214 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 215 ((uint64_t)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 216 ipd_pwp_ptr_fifo_ctl.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 217 ptr << 7),
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 218 CVMX_FPA_WQE_POOL, 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 219 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 220 ipd_pwp_ptr_fifo_ctl.s.cena = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 221 cvmx_write_csr(CVMX_IPD_PWP_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 222 ipd_pwp_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 223 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 224
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 225 /* Free the prefetched packet */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 226 if (ipd_ptr_count.s.pktv_cnt) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 227 union cvmx_ipd_pkt_ptr_valid ipd_pkt_ptr_valid;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 228 ipd_pkt_ptr_valid.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 229 cvmx_read_csr(CVMX_IPD_PKT_PTR_VALID);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 230 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 231 (ipd_pkt_ptr_valid.s.ptr << 7),
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 232 CVMX_FPA_PACKET_POOL, 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 233 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 234
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 235 /* Free the per port prefetched packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 236 if (1) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 237 int i;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 238 union cvmx_ipd_prc_port_ptr_fifo_ctl
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 239 ipd_prc_port_ptr_fifo_ctl;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 240 ipd_prc_port_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 241 cvmx_read_csr(CVMX_IPD_PRC_PORT_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 242
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 243 for (i = 0; i < ipd_prc_port_ptr_fifo_ctl.s.max_pkt;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 244 i++) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 245 ipd_prc_port_ptr_fifo_ctl.s.cena = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 246 ipd_prc_port_ptr_fifo_ctl.s.raddr =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 247 i % ipd_prc_port_ptr_fifo_ctl.s.max_pkt;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 248 cvmx_write_csr(CVMX_IPD_PRC_PORT_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 249 ipd_prc_port_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 250 ipd_prc_port_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 251 cvmx_read_csr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 252 (CVMX_IPD_PRC_PORT_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 253 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 254 ((uint64_t)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 255 ipd_prc_port_ptr_fifo_ctl.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 256 ptr << 7), CVMX_FPA_PACKET_POOL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 257 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 258 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 259 ipd_prc_port_ptr_fifo_ctl.s.cena = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 260 cvmx_write_csr(CVMX_IPD_PRC_PORT_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 261 ipd_prc_port_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 262 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 263
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 264 /* Free all packets in the holding fifo */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 265 if (ipd_ptr_count.s.pfif_cnt) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 266 int i;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 267 union cvmx_ipd_prc_hold_ptr_fifo_ctl
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 268 ipd_prc_hold_ptr_fifo_ctl;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 269
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 270 ipd_prc_hold_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 271 cvmx_read_csr(CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 272
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 273 for (i = 0; i < ipd_ptr_count.s.pfif_cnt; i++) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 274 ipd_prc_hold_ptr_fifo_ctl.s.cena = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 275 ipd_prc_hold_ptr_fifo_ctl.s.raddr =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 276 (ipd_prc_hold_ptr_fifo_ctl.s.praddr +
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 277 i) % ipd_prc_hold_ptr_fifo_ctl.s.max_pkt;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 278 cvmx_write_csr(CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 279 ipd_prc_hold_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 280 ipd_prc_hold_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 281 cvmx_read_csr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 282 (CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 283 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 284 ((uint64_t)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 285 ipd_prc_hold_ptr_fifo_ctl.s.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 286 ptr << 7), CVMX_FPA_PACKET_POOL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 287 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 288 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 289 ipd_prc_hold_ptr_fifo_ctl.s.cena = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 290 cvmx_write_csr(CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 291 ipd_prc_hold_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 292 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 293
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 294 /* Free all packets in the fifo */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 295 if (ipd_ptr_count.s.pkt_pcnt) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 296 int i;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 297 union cvmx_ipd_pwp_ptr_fifo_ctl ipd_pwp_ptr_fifo_ctl;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 298 ipd_pwp_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 299 cvmx_read_csr(CVMX_IPD_PWP_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 300
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 301 for (i = 0; i < ipd_ptr_count.s.pkt_pcnt; i++) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 302 ipd_pwp_ptr_fifo_ctl.s.cena = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 303 ipd_pwp_ptr_fifo_ctl.s.raddr =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 304 (ipd_pwp_ptr_fifo_ctl.s.praddr +
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 305 i) % ipd_pwp_ptr_fifo_ctl.s.max_cnts;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 306 cvmx_write_csr(CVMX_IPD_PWP_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 307 ipd_pwp_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 308 ipd_pwp_ptr_fifo_ctl.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 309 cvmx_read_csr(CVMX_IPD_PWP_PTR_FIFO_CTL);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 310 cvmx_fpa_free(cvmx_phys_to_ptr
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 311 ((uint64_t) ipd_pwp_ptr_fifo_ctl.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 312 s.ptr << 7),
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 313 CVMX_FPA_PACKET_POOL, 0);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 314 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 315 ipd_pwp_ptr_fifo_ctl.s.cena = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 316 cvmx_write_csr(CVMX_IPD_PWP_PTR_FIFO_CTL,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 317 ipd_pwp_ptr_fifo_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 318 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 319
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 320 /* Reset the IPD to get all buffers out of it */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 321 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 322 union cvmx_ipd_ctl_status ipd_ctl_status;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 323 ipd_ctl_status.u64 = cvmx_read_csr(CVMX_IPD_CTL_STATUS);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 324 ipd_ctl_status.s.reset = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 325 cvmx_write_csr(CVMX_IPD_CTL_STATUS, ipd_ctl_status.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 326 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 327
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 328 /* Reset the PIP */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 329 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 @330 union cvmx_pip_sft_rst pip_sft_rst;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 @331 pip_sft_rst.u64 = cvmx_read_csr(CVMX_PIP_SFT_RST);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 332 pip_sft_rst.s.rst = 1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 333 cvmx_write_csr(CVMX_PIP_SFT_RST, pip_sft_rst.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 334 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 335 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 336 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-ipd.h David Daney 2009-05-05 337
:::::: The code at line 330 was first introduced by commit
:::::: 80ff0fd3ab6451407a20c19b80c1643c4a6d6434 Staging: Add octeon-ethernet driver files.
:::::: TO: David Daney <ddaney@caviumnetworks.com>
:::::: CC: Ralf Baechle <ralf@linux-mips.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61512 bytes --]
^ permalink raw reply
* [PATCH] `iwlist scan` fails with many networks available
From: James Nylen @ 2019-08-11 2:08 UTC (permalink / raw)
To: Johannes Berg, David S. Miller, linux-wireless, netdev,
linux-kernel
In-Reply-To: <CABVa4NgWMkJuyB1P5fwQEYHwqBRiySE+fGQpMKt8zbp+xJ8+rw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 464 bytes --]
In 5.x it's still possible for `ieee80211_scan_results` (`iwlist
scan`) to fail when too many wireless networks are available. This
code path is used by `wicd`.
Previously: https://lkml.org/lkml/2017/4/2/192
I've been applying this updated patch to my own kernels since 2017 with
no issues. I am sure it is not the ideal way to solve this problem, but
I'm making my fix available in case it helps others.
Please advise on next steps or if this is a dead end.
[-- Attachment #2: wireless-scan-less-e2big.diff --]
[-- Type: text/plain, Size: 1993 bytes --]
commit 8e80dcb0df71ac8f5d3640bcdb1bba9c7693d63a
Author: James Nylen <jnylen@gmail.com>
Date: Wed Apr 26 14:38:58 2017 +0200
Hack: Make `ieee80211_scan_results` (`iwlist scan`) return less E2BIG
See: https://lkml.org/lkml/2017/4/2/192
(and branch `jcn/hack/wireless-scan-no-e2big`)
This should really be done with a bigger limit inside the `iwlist` code
instead, if possible (or even better: modify `wicd` to use `iw scan`
instead).
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 21be56b3128e..08fa9cb68f59 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -1699,6 +1699,7 @@ static int ieee80211_scan_results(struct cfg80211_registered_device *rdev,
struct iw_request_info *info,
char *buf, size_t len)
{
+ char *maybe_current_ev;
char *current_ev = buf;
char *end_buf = buf + len;
struct cfg80211_internal_bss *bss;
@@ -1709,14 +1710,29 @@ static int ieee80211_scan_results(struct cfg80211_registered_device *rdev,
list_for_each_entry(bss, &rdev->bss_list, list) {
if (buf + len - current_ev <= IW_EV_ADDR_LEN) {
- err = -E2BIG;
+ // Buffer too small to hold another BSS. Only report
+ // an error if we have not yet reached the maximum
+ // buffer size that `iwlist` can handle.
+ if (len < 0xFFFF) {
+ err = -E2BIG;
+ }
break;
}
- current_ev = ieee80211_bss(&rdev->wiphy, info, bss,
- current_ev, end_buf);
- if (IS_ERR(current_ev)) {
- err = PTR_ERR(current_ev);
+ maybe_current_ev = ieee80211_bss(&rdev->wiphy, info, bss,
+ current_ev, end_buf);
+ if (IS_ERR(maybe_current_ev)) {
+ err = PTR_ERR(maybe_current_ev);
+ if (err == -E2BIG) {
+ // Last BSS failed to copy into buffer. As
+ // above, only report an error if `iwlist` will
+ // retry again with a larger buffer.
+ if (len >= 0xFFFF) {
+ err = 0;
+ }
+ }
break;
+ } else {
+ current_ev = maybe_current_ev;
}
}
spin_unlock_bh(&rdev->bss_lock);
^ permalink raw reply related
* Re: [PATCH net-next 1/1] net: dsa: fix fixed-link port registration
From: Marek Behun @ 2019-08-11 2:02 UTC (permalink / raw)
To: netdev
Cc: Heiner Kallweit, Sebastian Reichel, Vivien Didelot, Andrew Lunn,
Florian Fainelli, David S . Miller
In-Reply-To: <20190811034742.349f0ef1@nic.cz>
Which means I should have added the Fixes tag /o\
On Sun, 11 Aug 2019 03:47:42 +0200
Marek Behun <marek.behun@nic.cz> wrote:
> This should probably go into stable as well, after review.
>
> Marek
^ permalink raw reply
* Re: [PATCH net-next 1/1] net: dsa: fix fixed-link port registration
From: Marek Behun @ 2019-08-11 1:47 UTC (permalink / raw)
To: netdev
Cc: Heiner Kallweit, Sebastian Reichel, Vivien Didelot, Andrew Lunn,
Florian Fainelli, David S . Miller
In-Reply-To: <20190811014650.28141-1-marek.behun@nic.cz>
This should probably go into stable as well, after review.
Marek
On Sun, 11 Aug 2019 03:46:50 +0200
Marek Behún <marek.behun@nic.cz> wrote:
> Commit 88d6272acaaa ("net: phy: avoid unneeded MDIO reads in
> genphy_read_status") broke fixed link DSA port registration in
> dsa_port_fixed_link_register_of: the genphy_read_status does not do what
> it is supposed to and the following adjust_link is given wrong
> parameters.
>
> This causes a regression on Turris Omnia, where the mvneta driver for
> the interface connected to the switch reports crc errors, for some
> reason.
>
> I realize this fix is not ideal, something else could change in genphy
> functions which could cause DSA fixed-link port to break again.
> Hopefully DSA fixed-link port functionality will be converted to phylink
> API soon.
>
> Signed-off-by: Marek Behún <marek.behun@nic.cz>
> Cc: Heiner Kallweit <hkallweit1@gmail.com>
> Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
> Cc: Vivien Didelot <vivien.didelot@gmail.com>
> Cc: Andrew Lunn <andrew@lunn.ch>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: David S. Miller <davem@davemloft.net>
> ---
> net/dsa/port.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/net/dsa/port.c b/net/dsa/port.c
> index 363eab6df51b..c424ebb373e1 100644
> --- a/net/dsa/port.c
> +++ b/net/dsa/port.c
> @@ -485,6 +485,17 @@ static int dsa_port_fixed_link_register_of(struct dsa_port *dp)
> phydev->interface = mode;
>
> genphy_config_init(phydev);
> +
> + /*
> + * Commit 88d6272acaaa caused genphy_read_status not to do it's work if
> + * autonegotiation is enabled and link status did not change. This is
> + * the case for fixed_phy. By setting phydev->link = 0 before the call
> + * to genphy_read_status we force it to read and fill in the parameters.
> + *
> + * Hopefully this dirty hack will be removed soon by converting DSA
> + * fixed link ports to phylink API.
> + */
> + phydev->link = 0;
> genphy_read_status(phydev);
>
> if (ds->ops->adjust_link)
^ permalink raw reply
* [PATCH net-next 1/1] net: dsa: fix fixed-link port registration
From: Marek Behún @ 2019-08-11 1:46 UTC (permalink / raw)
To: netdev
Cc: Marek Behún, Heiner Kallweit, Sebastian Reichel,
Vivien Didelot, Andrew Lunn, Florian Fainelli, David S . Miller
Commit 88d6272acaaa ("net: phy: avoid unneeded MDIO reads in
genphy_read_status") broke fixed link DSA port registration in
dsa_port_fixed_link_register_of: the genphy_read_status does not do what
it is supposed to and the following adjust_link is given wrong
parameters.
This causes a regression on Turris Omnia, where the mvneta driver for
the interface connected to the switch reports crc errors, for some
reason.
I realize this fix is not ideal, something else could change in genphy
functions which could cause DSA fixed-link port to break again.
Hopefully DSA fixed-link port functionality will be converted to phylink
API soon.
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Cc: Vivien Didelot <vivien.didelot@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: David S. Miller <davem@davemloft.net>
---
net/dsa/port.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/net/dsa/port.c b/net/dsa/port.c
index 363eab6df51b..c424ebb373e1 100644
--- a/net/dsa/port.c
+++ b/net/dsa/port.c
@@ -485,6 +485,17 @@ static int dsa_port_fixed_link_register_of(struct dsa_port *dp)
phydev->interface = mode;
genphy_config_init(phydev);
+
+ /*
+ * Commit 88d6272acaaa caused genphy_read_status not to do it's work if
+ * autonegotiation is enabled and link status did not change. This is
+ * the case for fixed_phy. By setting phydev->link = 0 before the call
+ * to genphy_read_status we force it to read and fill in the parameters.
+ *
+ * Hopefully this dirty hack will be removed soon by converting DSA
+ * fixed link ports to phylink API.
+ */
+ phydev->link = 0;
genphy_read_status(phydev);
if (ds->ops->adjust_link)
--
2.21.0
^ permalink raw reply related
* Re: [PATCH] dpaa2-ethsw: move the DPAA2 Ethernet Switch driver out of staging
From: Joe Perches @ 2019-08-11 1:03 UTC (permalink / raw)
To: Ioana Ciornei, Andrew Lunn
Cc: davem@davemloft.net, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
f.fainelli@gmail.com, Ioana Ciocoi Radulescu
In-Reply-To: <VI1PR0402MB2800FF2E5C4DE24B25E7D843E0D10@VI1PR0402MB2800.eurprd04.prod.outlook.com>
On Sat, 2019-08-10 at 21:45 +0000, Ioana Ciornei wrote:
> On 8/9/19 10:05 PM, Andrew Lunn wrote:
[]
> >> +static int
> >> +ethsw_get_link_ksettings(struct net_device *netdev,
> >> + struct ethtool_link_ksettings *link_ksettings)
> >> +{
> >> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
> >> + struct dpsw_link_state state = {0};
> >> + int err = 0;
> >> +
> >> + err = dpsw_if_get_link_state(port_priv->ethsw_data->mc_io, 0,
> >> + port_priv->ethsw_data->dpsw_handle,
> >> + port_priv->idx,
> >> + &state);
> >> + if (err) {
> >> + netdev_err(netdev, "ERROR %d getting link state", err);
trivia: Do please add terminating '\n's to all the formats.
^ permalink raw reply
* Re: WARNING in is_bpf_text_address
From: syzbot @ 2019-08-11 0:24 UTC (permalink / raw)
To: akpm, ast, bpf, bvanassche, daniel, davem, dvyukov, hawk, hdanton,
jakub.kicinski, johannes.berg, johannes, john.fastabend, kafai,
linux-kernel, longman, mingo, netdev, paulmck, peterz,
songliubraving, syzkaller-bugs, tglx, tj, torvalds, will.deacon,
xdp-newbies, yhs
In-Reply-To: <00000000000000ac4f058bd50039@google.com>
syzbot has found a reproducer for the following crash on:
HEAD commit: 451577f3 Merge tag 'kbuild-fixes-v5.3-3' of git://git.kern..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=120850a6600000
kernel config: https://syzkaller.appspot.com/x/.config?x=2031e7d221391b8a
dashboard link: https://syzkaller.appspot.com/bug?extid=bd3bba6ff3fcea7a6ec6
compiler: clang version 9.0.0 (/home/glider/llvm/clang
80fee25776c2fb61e74c1ecb1a523375c2500b69)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=130ffe4a600000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17137d2c600000
The bug was bisected to:
commit a0b0fd53e1e67639b303b15939b9c653dbe7a8c4
Author: Bart Van Assche <bvanassche@acm.org>
Date: Thu Feb 14 23:00:46 2019 +0000
locking/lockdep: Free lock classes that are no longer in use
bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=152f6a9da00000
final crash: https://syzkaller.appspot.com/x/report.txt?x=172f6a9da00000
console output: https://syzkaller.appspot.com/x/log.txt?x=132f6a9da00000
IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+bd3bba6ff3fcea7a6ec6@syzkaller.appspotmail.com
Fixes: a0b0fd53e1e6 ("locking/lockdep: Free lock classes that are no longer
in use")
WARNING: CPU: 0 PID: 9604 at kernel/bpf/core.c:851 bpf_jit_free+0x1a8/0x1f0
Kernel panic - not syncing: panic_on_warn set ...
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1d8/0x2f8 lib/dump_stack.c:113
panic+0x25c/0x799 kernel/panic.c:219
__warn+0x22f/0x230 kernel/panic.c:576
report_bug+0x190/0x290 lib/bug.c:186
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097eff828 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097eff860 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#2] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097eff450 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097eff488 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#3] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097eff080 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097eff0b8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#4] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efecb0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efece8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#5] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efe8e0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efe918 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#6] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efe510 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efe548 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#7] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efe140 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efe178 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#8] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efdd70 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efdda8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#9] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efd9a0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efd9d8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#10] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efd5d0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efd608 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#11] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efd200 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efd238 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#12] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efce30 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efce68 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#13] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efca60 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efca98 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#14] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efc690 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efc6c8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#15] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efc2c0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efc2f8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#16] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efbef0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efbf28 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#17] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efbb20 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efbb58 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#18] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efb750 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efb788 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#19] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efb380 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efb3b8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#20] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efafb0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efafe8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#21] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efabe0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efac18 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#22] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efa810 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efa848 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#23] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efa440 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efa478 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#24] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097efa070 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097efa0a8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#25] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef9ca0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef9cd8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#26] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef98d0 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef9908 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#27] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef9500 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef9538 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#28] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef9130 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef9168 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#29] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef8d60 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef8d98 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 936de067 PTE 0
Oops: 0000 [#30] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097ef8990 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097ef89c8 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
BUG: unable to handle page fault for address: fffffbfff4001000
==================================================================
BUG: KASAN: use-after-free in format_decode+0x52/0x1850 lib/vsprintf.c:2212
Write of size 8 at addr ffff888097ef7f88 by task kworker/0:5/9604
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
------------[ cut here ]------------
Bad or missing usercopy whitelist? Kernel memory overwrite attempt detected
to SLAB object 'anon_vma_chain(49:syz4)' (offset 16, size 8)!
WARNING: CPU: 0 PID: 9604 at mm/usercopy.c:79 usercopy_warn+0xb7/0xc0
mm/usercopy.c:74
Modules linked in:
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'anon_vma_chain(49:syz4)' (offset 96, size 8)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:98!
invalid opcode: 0000 [#31] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'anon_vma_chain(49:syz4)' (offset 96, size 8)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:98!
invalid opcode: 0000 [#32] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
------------[ cut here ]------------
kernel BUG at mm/slab.c:4179!
invalid opcode: 0000 [#33] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'kmalloc-256' (offset 240, size 23)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:98!
invalid opcode: 0000 [#34] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'kmalloc-256' (offset 256, size 23)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:98!
invalid opcode: 0000 [#35] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'kmalloc-256' (offset 272, size 23)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:98!
invalid opcode: 0000 [#36] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
usercopy: Kernel memory overwrite attempt detected to SLAB
object 'kmalloc-256' (offset 288, size 23)!
------------[ cut here ]------------
kernel BUG at mm/slab.c:4179!
invalid opcode: 0000 [#37] PREEMPT SMP KASAN
CPU: 0 PID: 9604 Comm: kworker/0:5 Not tainted 5.3.0-rc3+ #71
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: events bpf_prog_free_deferred
RIP: 0010:__check_heap_object+0xcb/0xd0 mm/slab.c:4203
Code: 4c 89 d1 4d 89 c8 e8 e4 77 07 00 5b 41 5e 5d c3 49 8b 73 58 41 0f b6
d0 48 c7 c7 c7 7e 3e 88 4c 89 d1 4d 89 c8 e8 85 78 07 00 <0f> 0b 0f 1f 00
55 48 89 e5 53 48 83 ff 10 0f 84 90 00 00 00 48 85
RSP: 0018:ffff888097ef52e0 EFLAGS: 00010046
RAX: 0000000000001058 RBX: 0000000000001286 RCX: 000000000000000c
RDX: 000000000000000c RSI: 0000000000000002 RDI: 0000000000000001
RBP: ffff888097ef52f0 R08: 0000000000000000 R09: fffff940004bf7a1
R10: ffff888097ef53c6 R11: ffff8880aa5918c0 R12: ffff888097ef53c8
R13: 01fffc0000010200 R14: ffff888097ef4140 R15: ffff888097ef53c6
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
Modules linked in:
---[ end trace 75db6f77c2c79c0c ]---
RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:537 [inline]
RIP: 0010:bpf_tree_comp kernel/bpf/core.c:600 [inline]
RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
RIP: 0010:bpf_prog_kallsyms_find kernel/bpf/core.c:674 [inline]
RIP: 0010:is_bpf_text_address+0x201/0x3b0 kernel/bpf/core.c:709
Code: 85 c4 f5 ff 4d 39 f4 76 10 e8 7b c2 f5 ff 49 83 c7 10 eb 46 0f 1f 44
00 00 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <0f> b6 04 08 84
c0 75 7d 41 8b 1c 24 48 c1 e3 0c 4c 01 e3 48 89 df
RSP: 0018:ffff888097eff828 EFLAGS: 00010806
RAX: 1ffffffff4001000 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: ffff88809f1e0280 RSI: ffffffffff7a5520 RDI: ffffffffa0008000
RBP: ffff888097eff860 R08: ffffffff817dc73b R09: 0000000000000001
R10: fffffbfff117be6d R11: 0000000000000000 R12: ffffffffa0008000
R13: 0000000000000000 R14: ffffffffff7a5520 R15: ffff88809a46b2f8
FS: 0000000000000000(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff4001000 CR3: 0000000095d73000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
^ permalink raw reply
* Re: [PATCH v3 00/17] Networking driver debugfs cleanups
From: David Miller @ 2019-08-10 22:26 UTC (permalink / raw)
To: gregkh; +Cc: netdev
In-Reply-To: <20190810101732.26612-1-gregkh@linuxfoundation.org>
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Sat, 10 Aug 2019 12:17:15 +0200
> There is no need to test the result of any debugfs call anymore. The
> debugfs core warns the user if something fails, and the return value of
> a debugfs call can always be fed back into another debugfs call with no
> problems.
>
> Also, debugfs is for debugging, so if there are problems with debugfs
> (i.e. the system is out of memory) the rest of the kernel should not
> change behavior, so testing for debugfs calls is pointless and not the
> goal of debugfs at all.
>
> This series cleans up a lot of networking drivers and some wimax code
> that was calling debugfs and trying to do something with the return
> value that it didn't need to. Removing this logic makes the code
> smaller, easier to understand, and use less run-time memory in some
> cases, all good things.
>
> The series is against net-next, and have no dependancies between any of
> them if they want to go through any random tree/order. Or, if wanted,
> I can take them through my driver-core tree where other debugfs cleanups
> are being slowly fed during major merge windows.
>
> v3: fix build warning in i2400m, I thought I had caught them all :(
> add acks from some reviewers
>
> v2: fix up build warnings, it's as if I never even built these. Ugh, so
> sorry for wasting people's time with the v1 series. I need to stop
> relying on 0-day as it isn't working well anymore :(
Series applied, and fingers crossed, thanks. :)
^ permalink raw reply
* Re: [PATCH] dpaa2-ethsw: move the DPAA2 Ethernet Switch driver out of staging
From: Ioana Ciornei @ 2019-08-10 21:45 UTC (permalink / raw)
To: Andrew Lunn
Cc: davem@davemloft.net, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
f.fainelli@gmail.com, Ioana Ciocoi Radulescu
In-Reply-To: <20190809190459.GW27917@lunn.ch>
On 8/9/19 10:05 PM, Andrew Lunn wrote:
> Hi Ioana
Hi Andrew,
>
>> +static int
>> +ethsw_get_link_ksettings(struct net_device *netdev,
>> + struct ethtool_link_ksettings *link_ksettings)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + struct dpsw_link_state state = {0};
>> + int err = 0;
>> +
>> + err = dpsw_if_get_link_state(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx,
>> + &state);
>> + if (err) {
>> + netdev_err(netdev, "ERROR %d getting link state", err);
>> + goto out;
>> + }
>> +
>> + /* At the moment, we have no way of interrogating the DPMAC
>> + * from the DPSW side or there may not exist a DPMAC at all.
>
> What use is a switch port without a MAC?
In the DPAA2 architecture MACs are not the only entities that can be
connected to a switch port.
Below is an exemple of a 4 port DPAA2 switch which is configured to
interconnect 2 DPNIs (network interfaces) and 2 DPMACs.
[ethA] [ethB] [ethC] [ethD] [ethE] [ethF]
: : : : : :
: : : : : :
[eth drv] [eth drv] [ ethsw drv ]
: : : : : : kernel
========================================================================
: : : : : :
hardware
[DPNI] [DPNI] [============= DPSW =================]
| | | | | |
| ---------- | [DPMAC] [DPMAC]
------------------------------- | |
| |
[PHY] [PHY]
You can see it as a hardware-accelerated software bridge where
forwarding rules are managed from the host software partition.
>
>> + * Report only autoneg state, duplexity and speed.
>> + */
>> + if (state.options & DPSW_LINK_OPT_AUTONEG)
>> + link_ksettings->base.autoneg = AUTONEG_ENABLE;
>> + if (!(state.options & DPSW_LINK_OPT_HALF_DUPLEX))
>> + link_ksettings->base.duplex = DUPLEX_FULL;
>> + link_ksettings->base.speed = state.rate;
>> +
>> +out:
>> + return err;
>> +}
>> +
>> +static int
>> +ethsw_set_link_ksettings(struct net_device *netdev,
>> + const struct ethtool_link_ksettings *link_ksettings)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + struct dpsw_link_cfg cfg = {0};
>> + int err = 0;
>> +
>> + netdev_dbg(netdev, "Setting link parameters...");
>> +
>> + /* Due to a temporary MC limitation, the DPSW port must be down
>> + * in order to be able to change link settings. Taking steps to let
>> + * the user know that.
>> + */
>> + if (netif_running(netdev)) {
>> + netdev_info(netdev, "Sorry, interface must be brought down
first.\n");
>> + return -EACCES;
>> + }
>
> This is quite common. The Marvell switches require the port is
> disabled while reconfiguring the port. So we just disable it,
> reconfigure it, and enable it again.
>
> Why are you making the user do this?
There is no strong reason for this, we could just disable the port
behind the scenes.
>
>> +
>> + cfg.rate = link_ksettings->base.speed;
>> + if (link_ksettings->base.autoneg == AUTONEG_ENABLE)
>> + cfg.options |= DPSW_LINK_OPT_AUTONEG;
>> + else
>> + cfg.options &= ~DPSW_LINK_OPT_AUTONEG;
>> + if (link_ksettings->base.duplex == DUPLEX_HALF)
>> + cfg.options |= DPSW_LINK_OPT_HALF_DUPLEX;
>> + else
>> + cfg.options &= ~DPSW_LINK_OPT_HALF_DUPLEX;
>> +
>> + err = dpsw_if_set_link_cfg(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx,
>> + &cfg);
>> + if (err)
>> + /* ethtool will be loud enough if we return an error; no point
>> + * in putting our own error message on the console by default
>> + */
>> + netdev_dbg(netdev, "ERROR %d setting link cfg", err);
>
> Why even bother with a dbg message?
>
True, will remove.
>> +static void ethsw_ethtool_get_stats(struct net_device *netdev,
>> + struct ethtool_stats *stats,
>> + u64 *data)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + int i, err;
>> +
>> + memset(data, 0,
>> + sizeof(u64) * ETHSW_NUM_COUNTERS);
>
> Is this really needed? It seems like the core should be doing this?
>
The ethtool core indeed zeroes the data before calling
get_ethtool_stats. Will remove.
>> +static int ethsw_add_vlan(struct ethsw_core *ethsw, u16 vid)
>> +{
>> + int err;
>> +
>> + struct dpsw_vlan_cfg vcfg = {
>> + .fdb_id = 0,
>> + };
>> +
>> + if (ethsw->vlans[vid]) {
>> + dev_err(ethsw->dev, "VLAN already configured\n");
>> + return -EEXIST;
>> + }
>
> Can this happen? It seems like the core should be preventing this.
>
In regard to the core preventing this, it seems that there are no checks.
The problem here is that the firmware errors out when we add the same
VLAN twice. Other drivers just return 0 in that case.
Can we keep the check but do the same thing?
>> +
>> + err = dpsw_vlan_add(ethsw->mc_io, 0,
>> + ethsw->dpsw_handle, vid, &vcfg);
>> + if (err) {
>> + dev_err(ethsw->dev, "dpsw_vlan_add err %d\n", err);
>> + return err;
>> + }
>> + ethsw->vlans[vid] = ETHSW_VLAN_MEMBER;
>> +
>> + return 0;
>> +}
>> +
>> +static int ethsw_port_set_pvid(struct ethsw_port_priv *port_priv,
u16 pvid)
>> +{
>> + struct ethsw_core *ethsw = port_priv->ethsw_data;
>> + struct net_device *netdev = port_priv->netdev;
>> + struct dpsw_tci_cfg tci_cfg = { 0 };
>> + bool is_oper;
>> + int err, ret;
>> +
>> + err = dpsw_if_get_tci(ethsw->mc_io, 0, ethsw->dpsw_handle,
>> + port_priv->idx, &tci_cfg);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_get_tci err %d\n", err);
>> + return err;
>> + }
>> +
>> + tci_cfg.vlan_id = pvid;
>> +
>> + /* Interface needs to be down to change PVID */
>> + is_oper = netif_oper_up(netdev);
>> + if (is_oper) {
>> + err = dpsw_if_disable(ethsw->mc_io, 0,
>> + ethsw->dpsw_handle,
>> + port_priv->idx);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_disable err %d\n", err);
>> + return err;
>> + }
>> + }
>
> Is this not inconsistent with ethsw_set_link_ksettings()?
>
It's indeed inconsistent. I'll change the ethsw_set_link_ksettings() to
also disable and
re-enable the interface behind the scenes.
>> +
>> + err = dpsw_if_set_tci(ethsw->mc_io, 0, ethsw->dpsw_handle,
>> + port_priv->idx, &tci_cfg);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_set_tci err %d\n", err);
>> + goto set_tci_error;
>> + }
>> +
>> + /* Delete previous PVID info and mark the new one */
>> + port_priv->vlans[port_priv->pvid] &= ~ETHSW_VLAN_PVID;
>> + port_priv->vlans[pvid] |= ETHSW_VLAN_PVID;
>> + port_priv->pvid = pvid;
>> +
>> +set_tci_error:
>> + if (is_oper) {
>> + ret = dpsw_if_enable(ethsw->mc_io, 0,
>> + ethsw->dpsw_handle,
>> + port_priv->idx);
>> + if (ret) {
>> + netdev_err(netdev, "dpsw_if_enable err %d\n", ret);
>> + return ret;
>> + }
>> + }
>> +
>> + return err;
>> +}
>> +
>> +static int ethsw_set_learning(struct ethsw_core *ethsw, u8 flag)
>> +{
>
> Seems like a bool would be better than u8 for flag. An call it enable?
>
Sure.
>> + enum dpsw_fdb_learning_mode learn_mode;
>> + int err;
>> +
>> + if (flag)
>> + learn_mode = DPSW_FDB_LEARNING_MODE_HW;
>> + else
>> + learn_mode = DPSW_FDB_LEARNING_MODE_DIS;
>> +
>> + err = dpsw_fdb_set_learning_mode(ethsw->mc_io, 0,
ethsw->dpsw_handle, 0,
>> + learn_mode);
>> + if (err) {
>> + dev_err(ethsw->dev, "dpsw_fdb_set_learning_mode err %d\n", err);
>> + return err;
>> + }
>> + ethsw->learning = !!flag;
>> +
>> + return 0;
>> +}
>> +
>> +static int ethsw_port_set_flood(struct ethsw_port_priv *port_priv,
u8 flag)
>> +{
>
> Another bool?
>
Yep, will change.
>> +static int port_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
>> + struct net_device *dev, const unsigned char *addr,
>> + u16 vid, u16 flags,
>> + struct netlink_ext_ack *extack)
>> +{
>> + if (is_unicast_ether_addr(addr))
>> + return ethsw_port_fdb_add_uc(netdev_priv(dev),
>> + addr);
>> + else
>> + return ethsw_port_fdb_add_mc(netdev_priv(dev),
>> + addr);
>
> Do you need to do anything special with link local MAC addresses?
> Often they are considered as UC addresses.
>
Not at the moment, no. Once we add control traffic support we'll add
default ACL rules
that match on link local addresses and redirect traffic to the control
interface.
>> +static int port_carrier_state_sync(struct net_device *netdev)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + struct dpsw_link_state state;
>> + int err;
>> +
>> + err = dpsw_if_get_link_state(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx, &state);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_get_link_state() err %d\n", err);
>> + return err;
>> + }
>> +
>> + WARN_ONCE(state.up > 1, "Garbage read into link_state");
>> +
>> + if (state.up != port_priv->link_state) {
>> + if (state.up)
>> + netif_carrier_on(netdev);
>> + else
>> + netif_carrier_off(netdev);
>> + port_priv->link_state = state.up;
>> + }
>> + return 0;
>> +}
>> +
>> +static int port_open(struct net_device *netdev)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + int err;
>> +
>> + /* No need to allow Tx as control interface is disabled */
>> + netif_tx_stop_all_queues(netdev);
>> +
>> + err = dpsw_if_enable(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_enable err %d\n", err);
>> + return err;
>> + }
>> +
>> + /* sync carrier state */
>> + err = port_carrier_state_sync(netdev);
>> + if (err) {
>> + netdev_err(netdev,`<
>> + "port_carrier_state_sync err %d\n", err);
>
> port_carrier_state_sync() already does a netdev_err(). There are a lot
> of netdev_err() in this code. I wonder how many are really needed? And
> how often you get a cascade of error message like this?
>
> I think many of them can be downgraded to netdev_dbg(), or removed.
>
I'll do a sweep of the code and remove/downgrade where necessary.
>> + goto err_carrier_sync;
>> + }
>> +
>> + return 0;
>> +
>> +err_carrier_sync:
>> + dpsw_if_disable(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx);
>> + return err;
>> +}
>> +
>> +static int port_stop(struct net_device *netdev)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + int err;
>> +
>> + err = dpsw_if_disable(port_priv->ethsw_data->mc_io, 0,
>> + port_priv->ethsw_data->dpsw_handle,
>> + port_priv->idx);
>> + if (err) {
>> + netdev_err(netdev, "dpsw_if_disable err %d\n", err);
>> + return err;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +static netdev_tx_t port_dropframe(struct sk_buff *skb,
>> + struct net_device *netdev)
>> +{
>> + /* we don't support I/O for now, drop the frame */
>> + dev_kfree_skb_any(skb);
>> +
>
> Ah. Does this also mean it cannot receive?
>
Yes, at the moment dpaa2-ethsw does not support either RX nor TX on the
switch ports.
> That makes some of this code pointless and untested.
>
> I'm not sure we would be willing to move this out of staging until it
> can transmit and receive. The whole idea is that switch ports are just
> linux interfaces. Some actions can be accelerated using hardware, and
> what cannot be accelerated the network stack does. However, if you
> cannot receive and transmit, you break that whole model. The network
> stack is mostly pointless.
I get that. I'll first work on adding support for termination.
>
>> +static void ethsw_links_state_update(struct ethsw_core *ethsw)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++)
>> + port_carrier_state_sync(ethsw->ports[i]->netdev);
>> +}
>> +
>> +static irqreturn_t ethsw_irq0_handler_thread(int irq_num, void *arg)
>> +{
>> + struct device *dev = (struct device *)arg;
>> + struct ethsw_core *ethsw = dev_get_drvdata(dev);
>> +
>> + /* Mask the events and the if_id reserved bits to be cleared on
read */
>> + u32 status = DPSW_IRQ_EVENT_LINK_CHANGED | 0xFFFF0000;
>> + int err;
>> +
>> + err = dpsw_get_irq_status(ethsw->mc_io, 0, ethsw->dpsw_handle,
>> + DPSW_IRQ_INDEX_IF, &status);
>> + if (err) {
>> + dev_err(dev, "Can't get irq status (err %d)", err);
>> +
>> + err = dpsw_clear_irq_status(ethsw->mc_io, 0, ethsw->dpsw_handle,
>> + DPSW_IRQ_INDEX_IF, 0xFFFFFFFF);
>> + if (err)
>> + dev_err(dev, "Can't clear irq status (err %d)", err);
>> + goto out;
>> + }
>> +
>> + if (status & DPSW_IRQ_EVENT_LINK_CHANGED)
>> + ethsw_links_state_update(ethsw);
>
> So there are no per-port events? You have no idea which port went
> up/down, you have to poll them all?
>
Yes, the firmware just notifies that at least one of the links has changed.
We then need to check them all and update if necessary.
>> +
>> +out:
>> + return IRQ_HANDLED;
>> +}
>> +
>> +static int port_lookup_address(struct net_device *netdev, int is_uc,
>> + const unsigned char *addr)
>> +{
>> + struct netdev_hw_addr_list *list = (is_uc) ? &netdev->uc :
&netdev->mc;
>> + struct netdev_hw_addr *ha;
>> +
>> + netif_addr_lock_bh(netdev);
>> + list_for_each_entry(ha, &list->list, list) {
>> + if (ether_addr_equal(ha->addr, addr)) {
>> + netif_addr_unlock_bh(netdev);
>> + return 1;
>> + }
>> + }
>> + netif_addr_unlock_bh(netdev);
>> + return 0;
>
> I know i have shot myself in the foot a few times with this structure
> of returning in the middle of a loop while holding a lock, forgetting
> to unlock, and then later deadlocking. I always do something like:
>
> ret = 0;
> netif_addr_lock_bh(netdev);
> list_for_each_entry(ha, &list->list, list) {
> if (ether_addr_equal(ha->addr, addr)) {
> ret = 1;
> break;
> }
> }
> netif_addr_unlock_bh(netdev);
>
> return ret;
> }
Thanks a lot for the tip, will change.
>
> Also, this function should probably return a bool, not int.
>
Indeed, a bool is more appropriate.
>> +}
>> +
>> +static int port_mdb_add(struct net_device *netdev,
>> + const struct switchdev_obj_port_mdb *mdb,
>> + struct switchdev_trans *trans)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + int err;
>> +
>> + if (switchdev_trans_ph_prepare(trans))
>> + return 0;
>> +
>> + /* Check if address is already set on this port */
>> + if (port_lookup_address(netdev, 0, mdb->addr))
>> + return -EEXIST;
>
> You are looking at core data structures to determine if the address is
> already on the port. Is it possible for the core to ask you to add
> this address, if the core has the information needed to determine
> itself if the port already has the address.
>
> This seems to be a general theme in this code. You don't trust the
> core. If you have real examples of the core doing the wrong thing,
> please point them out.
>
In this specific case, it seems that the core already checks for
duplicates and our check is not needed.
We'll remove.
>> +/* For the moment, only flood setting needs to be updated */
>> +static int port_bridge_join(struct net_device *netdev,
>> + struct net_device *upper_dev)
>> +{
>> + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
>> + struct ethsw_core *ethsw = port_priv->ethsw_data;
>> + int i, err;
>> +
>> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++)
>> + if (ethsw->ports[i]->bridge_dev &&
>> + (ethsw->ports[i]->bridge_dev != upper_dev)) {
>> + netdev_err(netdev,
>> + "Another switch port is connected to %s\n",
>> + ethsw->ports[i]->bridge_dev->name);
>> + return -EINVAL;
>> + }
>
> Am i reading this correct? You only support a single bridge? The
> error message is not very informative. Also, i think you should be
> returning EOPNOTSUPP, indicating the offload is not possible. Linux
> will then do it in software. If it could actually receive/transmit the
> frames....
>
Yes, we only support a single bridge. I'll change the error message to
make it descriptive.
Once we can Rx/Tx on the switch ports the restriction could be lifted.
>> +static int ethsw_open(struct ethsw_core *ethsw)
>> +{
>> + struct ethsw_port_priv *port_priv = NULL;
>> + int i, err;
>> +
>> + err = dpsw_enable(ethsw->mc_io, 0, ethsw->dpsw_handle);
>> + if (err) {
>> + dev_err(ethsw->dev, "dpsw_enable err %d\n", err);
>> + return err;
>> + }
>> +
>> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
>> + port_priv = ethsw->ports[i];
>> + err = dev_open(port_priv->netdev, NULL);
>> + if (err) {
>> + netdev_err(port_priv->netdev, "dev_open err %d\n", err);
>> + return err;
>> + }
>> + }
>
> Why is this needed? When the user configures the interface up, won't
> the core call dev_open()?
>
You're indeed right. Only dpsw_enable() is needed on switch probe.
I'll refactor this part.
>> +
>> + return 0;
>> +}
>> +
>> +static int ethsw_stop(struct ethsw_core *ethsw)
>> +{
>> + struct ethsw_port_priv *port_priv = NULL;
>> + int i, err;
>> +
>> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
>> + port_priv = ethsw->ports[i];
>> + dev_close(port_priv->netdev);
>> + }
>> +
>> + err = dpsw_disable(ethsw->mc_io, 0, ethsw->dpsw_handle);
>> + if (err) {
>> + dev_err(ethsw->dev, "dpsw_disable err %d\n", err);
>> + return err;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +static int ethsw_init(struct fsl_mc_device *sw_dev)
>> +{
>> + stp_cfg.vlan_id = DEFAULT_VLAN_ID;
>> + stp_cfg.state = DPSW_STP_STATE_FORWARDING;
>> +
>> + for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
>> + err = dpsw_if_set_stp(ethsw->mc_io, 0, ethsw->dpsw_handle, i,
>> + &stp_cfg);
>
> Maybe you should actually configure the STP state to blocked? You can
> move it to forwarding when the interface is opened.
>
That's probably better. Will try.
>> +static int ethsw_port_init(struct ethsw_port_priv *port_priv, u16 port)
>> +{
>> + const char def_mcast[ETH_ALEN] = {0x01, 0x00, 0x5e, 0x00, 0x00, 0x01};
>
> There should be some explanation about what the MAC address is, and
> why it needs adding.
>
It's an IGMP multicast address... but since we do not support
termination there is no need for this entry.
I'll remove it.
>> +static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx)
>> +{
>> + struct ethsw_port_priv *port_priv;
>> + struct device *dev = ethsw->dev;
>> + struct net_device *port_netdev;
>> + int err;
>> +
>> + port_netdev = alloc_etherdev(sizeof(struct ethsw_port_priv));
>> + if (!port_netdev) {
>> + dev_err(dev, "alloc_etherdev error\n");
>> + return -ENOMEM;
>> + }
>> +
>> + port_priv = netdev_priv(port_netdev);
>> + port_priv->netdev = port_netdev;
>> + port_priv->ethsw_data = ethsw;
>> +
>> + port_priv->idx = port_idx;
>> + port_priv->stp_state = BR_STATE_FORWARDING;
>> +
>> + /* Flooding is implicitly enabled */
>> + port_priv->flood = true;
>> +
>> + SET_NETDEV_DEV(port_netdev, dev);
>> + port_netdev->netdev_ops = ðsw_port_ops;
>> + port_netdev->ethtool_ops = ðsw_port_ethtool_ops;
>> +
>> + /* Set MTU limits */
>> + port_netdev->min_mtu = ETH_MIN_MTU;
>> + port_netdev->max_mtu = ETHSW_MAX_FRAME_LENGTH;
>> +
>> + err = register_netdev(port_netdev);
>> + if (err < 0) {
>> + dev_err(dev, "register_netdev error %d\n", err);
>> + goto err_register_netdev;
>> + }
>
> At this point, the interface if live.
>
>> +
>> + ethsw->ports[port_idx] = port_priv;
>> +
>> + err = ethsw_port_init(port_priv, port_idx);
>> + if (err)
>> + goto err_ethsw_port_init;
>
> What would happen if the interface was asked to do something before
> these two happen? You should only call register_netdev() when you
> really are ready to go.
>
Indeed the register_netdev call should be after the ethsw_port_init.
A bridge join between these two calls would probably fail.
>> +static int ethsw_probe(struct fsl_mc_device *sw_dev)
>> +{
>> +
>> + /* Switch starts up enabled */
>> + rtnl_lock();
>> + err = ethsw_open(ethsw);
>> + rtnl_unlock();
>
> What exactly do you mean by that?
>
> Andrew
>
I think this is leftover from an earlier version of the driver.
What should be done at probe time is just to enable the switch and each
port is enabled on
dev_open as you suggested. I'll change this.
Thanks a lot for the review, I have some cleanup and also the control
traffic on my TODO list.
Ioana
^ permalink raw reply
* Re: [patch net-next rfc 3/7] net: rtnetlink: add commands to add and delete alternative ifnames
From: Roopa Prabhu @ 2019-08-10 19:39 UTC (permalink / raw)
To: Michal Kubecek
Cc: netdev, Jiri Pirko, David Miller, Jakub Kicinski,
Stephen Hemminger, David Ahern, dcbw, Andrew Lunn, parav,
Saeed Mahameed, mlxsw
In-Reply-To: <20190810155042.GA30089@unicorn.suse.cz>
On Sat, Aug 10, 2019 at 8:50 AM Michal Kubecek <mkubecek@suse.cz> wrote:
>
> On Sat, Aug 10, 2019 at 06:46:57AM -0700, Roopa Prabhu wrote:
> > On Fri, Aug 9, 2019 at 8:46 AM Michal Kubecek <mkubecek@suse.cz> wrote:
> > >
> > > On Fri, Aug 09, 2019 at 08:40:25AM -0700, Roopa Prabhu wrote:
> > > > to that point, I am also not sure why we have a new API For multiple
> > > > names. I mean why support more than two names (existing old name and
> > > > a new name to remove the length limitation) ?
> > >
> > > One use case is to allow "predictable names" from udev/systemd to work
> > > the way do for e.g. block devices, see
> > >
> > > http://lkml.kernel.org/r/20190628162716.GF29149@unicorn.suse.cz
> > >
> >
> > thanks for the link. don't know the details about alternate block
> > device names. Does user-space generate multiple and assign them to a
> > kernel object as proposed in this series ?. is there a limit to number
> > of names ?. my understanding of 'predictable names' was still a single
> > name but predictable structure to the name.
>
> It is a single name but IMHO mostly because we can only have one name.
> For block devices, udev uses symlinks to create multiple aliases based
> on different naming schemes, e.g.
>
> mike@lion:~> find -L /dev/disk/ -samefile /dev/sda2 -exec ls -l {} +
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T3114933-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68A_WD-WMC1T3114933-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T3114933-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/scsi-0ATA_WDC_WD30EFRX-68A_WD-WMC1T3114933-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/scsi-1ATA_WDC_WD30EFRX-68AX9N0_WD-WMC1T3114933-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/scsi-350014ee6589cfea0-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-id/wwn-0x50014ee6589cfea0-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-partlabel/root2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-partuuid/71affb47-a93b-40fd-8986-d2e227e1b39d -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-path/pci-0000:00:11.0-ata-1-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 srp 5 21:47 /dev/disk/by-path/pci-0000:00:11.0-scsi-0:0:0:0-part2 -> ../../sda2
>
> Few years ago, udev even dropped support for renaming block and
> character devices (NAME="...") so that it now keeps kernel name and only
> creates symlinks to it. Recent versions only allow NAME="..." for
> network devices.
ok thanks for the details. This looks like names that are structured
on hardware info which could fall into devlinks scope and they point
to a single name.
We should think about keeping them under devlink (by-id, by-mac etc).
It already can recognize network interfaces by id.
The netdev IFLA_NAME falls more under user-defined name with no
structure (dummy1, dummy1-longname) which network interface managers,
protocols etc use.
Since the goal of the series is to relax the IFLA_NAME limit, I was
hoping it can be replaced by a single attribute that apps can use in
lieu of IFLA_NAME when available.
I would vote for keeping the structured and user defined unstructured
names separate and that would help with simplifying the API in this
series.
^ permalink raw reply
* Re: [PATCH V5 0/9] Fixes for vhost metadata acceleration
From: Michael S. Tsirkin @ 2019-08-10 19:12 UTC (permalink / raw)
To: Jason Wang
Cc: Jason Gunthorpe, kvm, virtualization, netdev, linux-kernel,
linux-mm
In-Reply-To: <1000f8a3-19a9-0383-61e5-ba08ddc9fcba@redhat.com>
On Thu, Aug 08, 2019 at 08:54:54PM +0800, Jason Wang wrote:
> I don't have any objection to convert to spinlock() but just want to
> know if any case that the above smp_mb() + counter looks good to you?
So how about we try this:
- revert the original patch for this release
- new safe patch with a spinlock for the next release
- whatever improvements we can come up with on top
Thoughts?
Because I think this needs much more scrutiny than we can
give an incremental patch.
--
MST
^ permalink raw reply
* Re: [PATCH V5 0/9] Fixes for vhost metadata acceleration
From: Michael S. Tsirkin @ 2019-08-10 17:52 UTC (permalink / raw)
To: Jason Wang; +Cc: kvm, virtualization, netdev, linux-kernel, linux-mm, jgg
In-Reply-To: <20190809054851.20118-1-jasowang@redhat.com>
On Fri, Aug 09, 2019 at 01:48:42AM -0400, Jason Wang wrote:
> Hi all:
>
> This series try to fix several issues introduced by meta data
> accelreation series. Please review.
>
> Changes from V4:
> - switch to use spinlock synchronize MMU notifier with accessors
>
> Changes from V3:
> - remove the unnecessary patch
>
> Changes from V2:
> - use seqlck helper to synchronize MMU notifier with vhost worker
>
> Changes from V1:
> - try not use RCU to syncrhonize MMU notifier with vhost worker
> - set dirty pages after no readers
> - return -EAGAIN only when we find the range is overlapped with
> metadata
>
> Jason Wang (9):
> vhost: don't set uaddr for invalid address
> vhost: validate MMU notifier registration
> vhost: fix vhost map leak
> vhost: reset invalidate_count in vhost_set_vring_num_addr()
> vhost: mark dirty pages during map uninit
> vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps()
> vhost: do not use RCU to synchronize MMU notifier with worker
> vhost: correctly set dirty pages in MMU notifiers callback
> vhost: do not return -EAGAIN for non blocking invalidation too early
>
> drivers/vhost/vhost.c | 202 +++++++++++++++++++++++++-----------------
> drivers/vhost/vhost.h | 6 +-
> 2 files changed, 122 insertions(+), 86 deletions(-)
This generally looks more solid.
But this amounts to a significant overhaul of the code.
At this point how about we revert 7f466032dc9e5a61217f22ea34b2df932786bbfc
for this release, and then re-apply a corrected version
for the next one?
> --
> 2.18.1
^ permalink raw reply
* RE: [PATCH v2] tipc: initialise addr_trail_end when setting node addresses
From: Jon Maloy @ 2019-08-10 17:46 UTC (permalink / raw)
To: Chris Packham, ying.xue@windriver.com, davem@davemloft.net
Cc: netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net,
linux-kernel@vger.kernel.org
In-Reply-To: <20190809005451.18881-1-chris.packham@alliedtelesis.co.nz>
I would re-phrase this a little:
We set the field 'addr_trial_end' to 'jiffies', instead of the current value 0, at the moment the node address is initialized.
This guarantees we don't inadvertently enter an address trial period when the node address is explicitly set by the user.
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
> -----Original Message-----
> From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On
> Behalf Of Chris Packham
> Sent: 8-Aug-19 20:55
> To: Jon Maloy <jon.maloy@ericsson.com>; ying.xue@windriver.com;
> davem@davemloft.net
> Cc: netdev@vger.kernel.org; tipc-discussion@lists.sourceforge.net; linux-
> kernel@vger.kernel.org; Chris Packham <chris.packham@alliedtelesis.co.nz>
> Subject: [PATCH v2] tipc: initialise addr_trail_end when setting node addresses
>
> Ensure addr_trail_end is set to jiffies when configuring the node address. This
> ensures that we don't treat the initial value of 0 as being a wrapped. This isn't a
> problem when using auto-generated node addresses because the
> addr_trail_end is updated for the duplicate address detection phase.
>
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
> Changes in v2:
> - move setting to tipc_set_node_addr() as suggested
> - reword commit message
>
> net/tipc/addr.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/tipc/addr.c b/net/tipc/addr.c index
> b88d48d00913..0f1eaed1bd1b 100644
> --- a/net/tipc/addr.c
> +++ b/net/tipc/addr.c
> @@ -75,6 +75,7 @@ void tipc_set_node_addr(struct net *net, u32 addr)
> tipc_set_node_id(net, node_id);
> }
> tn->trial_addr = addr;
> + tn->addr_trial_end = jiffies;
> pr_info("32-bit node address hash set to %x\n", addr); }
>
> --
> 2.22.0
^ 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