1) Fix handling of pinned BPF map nodes in hash of maps, from Daniel
Borkmann.
2) IPSEC ESP error paths leak memory, from Steffen Klassert.
3) We need an RCU grace period before freeing fib6_node objects,
from Wei Wang.
4) Must check skb_put_padto() return value in HSR driver, from
FLorian Fainelli.
5) Fix oops on PHY probe failure in ftgmac100 driver, from Andrew
Jeffery.
6) Fix infinite loop in UDP queue when using SO_PEEK_OFF, from
Eric Dumazet.
7) Use after free when tcf_chain_destroy() called multiple times,
from Jiri Pirko.
8) Fix KSZ DSA tag layer multiple free of SKBS, from Florian
Fainelli.
9) Fix leak of uninitialized memory in sctp_get_sctp_info(),
inet_diag_msg_sctpladdrs_fill() and inet_diag_msg_sctpaddrs_fill().
From Stefano Brivio.
10) L2TP tunnel refcount fixes from Guillaume Nault.
11) Don't leak UDP secpath in udp_set_dev_scratch(), from Yossi
Kauperman.
12) Revert a PHY layer change wrt. handling of PHY_HALTED state
in phy_stop_machine(), it causes regressions for multiple
people. From Florian Fainelli.
13) When packets are sent out of br0 we have to clear the offload_fwdq_mark
value.
14) Several NULL pointer deref fixes in packet schedulers when their
->init() routine fails. From Nikolay Aleksandrov.
15) Aquantium devices cannot checksum offload correctly when the packet
is <= 60 bytes. From Pavel Belous.
16) Fix vnet header access past end of buffer in AF_PACKET, from Benjamin
Poirier.
17) Double free in probe error paths of nfp driver, from Dan Carpenter.
18) QOS capability not checked properly in DCB init paths of mlx5 driver,
from Huy Nguyen.
19) Fix conflicts between firmware load failure and health_care timer
in mlx5, also from Huy Nguyen.
20) Fix dangling page pointer when DMA mapping errors occur in mlx5,
from Eran Ben ELisha.
21) ->ndo_setup_tc() in bnxt_en driver doesn't count rings properly, from
Michael Chan.
22) Missing MSIX vector free in bnxt_en, also from Michael Chan.
23) Refcount leak in xfrm layer when using sk_policy, from Lorenzo
Colitti.
24) Fix copy of uninitialized data in qlge driver, from Arnd Bergmann.
25) bpf_setsockopts() erroneously always returns -EINVAL even on
success. Fix from Yuchung Cheng.
26) tipc_rcv() needs to linearize the SKB before parsing the inner
headers, from Parthasarathy Bhuvaragan.
27) Fix deadlock between link status updates and link removal in netvsc
driver, from Stephen Hemminger.
28) Missed locking of page fragment handling in ESP output, from
Steffen Klassert.
29) Fix refcnt leak in ebpf congestion control code, from Sabrina
Dubroca.
30) sxgbe_probe_config_dt() doesn't check devm_kzalloc()'s return
value, from Christophe Jaillet.
31) Fix missing ipv6 rx_dst_cookie update when rx_dst is updated
during early demux, from Paolo Abeni.
32) Several info leaks in xfrm_user layer, from Mathias Krause.
33) Fix out of bounds read in cxgb4 driver, from Stefano Brivio.
34) Properly propagate obsolete state of route upwards in ipv6
so that upper holders like xfrm can see it. From Xin Long.
Please pull, thanks a lot!
The following changes since commit 6470812e22261d2342ef1597be62e63a0423d691:
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-08-21 14:07:48 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
for you to fetch changes up to e8a732d1bc3ac313e22249c13a153c3fe54aa577:
udp: fix secpath leak (2017-09-01 10:29:34 -0700)
----------------------------------------------------------------
Aleksander Morgado (1):
cdc_ncm: flag the u-blox TOBY-L4 as wwan
Andrew Jeffery (1):
net: ftgmac100: Fix oops in probe on failure to find associated PHY
Antoine Tenart (1):
net: mvpp2: fix the mac address used when using PPv2.2
Arnd Bergmann (1):
qlge: avoid memcpy buffer overflow
Benjamin Poirier (1):
packet: Don't write vnet header beyond end of buffer
Bob Peterson (1):
tipc: Fix tipc_sk_reinit handling of -EAGAIN
Christophe Jaillet (1):
net: sxgbe: check memory allocation failure
Cong Wang (1):
wl1251: add a missing spin_lock_init()
Dan Carpenter (1):
nfp: double free on error in probe
Daniel Borkmann (1):
bpf: fix map value attribute for hash of maps
David S. Miller (16):
Merge branch 'master' of git://git.kernel.org/.../klassert/ipsec
Merge branch 'tipc-topology-server-fixes'
Merge branch 'net-sched-couple-of-chain-fixes'
Merge branch 'dst-tag-ksz-fix'
Merge branch 'nfp-fixes'
Merge branch 'bnxt_en-bug-fixes'
Merge git://git.kernel.org/.../pablo/nf
Merge branch 'tipc-buffer-reassignment-fixes'
Merge branch 'r8169-Be-drop-monitor-friendly'
Merge tag 'wireless-drivers-for-davem-2017-08-25' of git://git.kernel.org/.../kvalo/wireless-drivers
Merge branch 'l2tp-tunnel-refs'
Merge branch 'nfp-flow-dissector-layer'
Merge branch 'master' of git://git.kernel.org/.../klassert/ipsec
Merge branch 'aquantia-fixes'
Merge branch 'net-sched-init-failure-fixes'
Merge tag 'mlx5-fixes-2017-08-30' of git://git.kernel.org/.../saeed/linux
Eran Ben Elisha (1):
net/mlx5e: Fix dangling page pointer on DMA mapping error
Eric Dumazet (5):
udp: on peeking bad csum, drop packets even if not at head
net: dsa: use consume_skb()
virtio_net: be drop monitor friendly
net_sched: fix a refcount_t issue with noop_qdisc
kcm: do not attach PF_KCM sockets to avoid deadlock
Florian Fainelli (13):
net/hsr: Check skb_put_padto() return value
net: phy: Deal with unbound PHY driver in phy_attached_print()
fsl/man: Inherit parent device and of_node
net: core: Specify skb_pad()/skb_put_padto() SKB freeing
net: dsa: skb_put_padto() already frees nskb
net: systemport: Be drop monitor friendly
net: bcmgenet: Be drop monitor friendly
net: systemport: Free DMA coherent descriptors on errors
r8169: Do not increment tx_dropped in TX ring cleaning
r8169: Be drop monitor friendly
net: dsa: Don't dereference dst->cpu_dp->netdev
net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278
Revert "net: phy: Correctly process PHY_HALTED in phy_stop_machine()"
Guillaume Nault (6):
l2tp: initialise session's refcount before making it reachable
l2tp: hold tunnel while looking up sessions in l2tp_netlink
l2tp: hold tunnel while processing genl delete command
l2tp: hold tunnel while handling genl tunnel updates
l2tp: hold tunnel while handling genl TUNNEL_GET commands
l2tp: hold tunnel used while creating sessions with netlink
Huy Nguyen (4):
net/mlx5e: Check for qos capability in dcbnl_initialize
net/mlx5e: Fix DCB_CAP_ATTR_DCBX capability for DCBNL getcap.
net/mlx5: Skip mlx5_unload_one if mlx5_load_one fails
net/mlx5: Remove the flag MLX5_INTERFACE_STATE_SHUTDOWN
Ido Schimmel (2):
mlxsw: spectrum: Forbid linking to devices that have uppers
bridge: switchdev: Clear forward mark when transmitting packet
Igor Russkikh (1):
net:ethernet:aquantia: Fix for multicast filter handling.
Inbar Karmy (1):
net/mlx5e: Don't override user RSS upon set channels
Jakub Kicinski (4):
nfp: don't hold PF lock while enabling SR-IOV
nfp: make sure representors are destroyed before their lower netdev
nfp: avoid buffer leak when representor is missing
nfp: TX time stamp packets before HW doorbell is rung
Jesper Dangaard Brouer (1):
net: missing call of trace_napi_poll in busy_poll_stop
Jiri Pirko (2):
net: sched: fix use after free when tcf_chain_destroy is called multiple times
net: sched: don't do tcf_chain_flush from tcf_chain_destroy
Koichiro Den (1):
xfrm: fix null pointer dereference on state and tmpl sort
Lorenzo Colitti (1):
net: xfrm: don't double-hold dst when sk_policy in use.
Luca Coelho (1):
iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc()
Mathias Krause (4):
xfrm_user: fix info leak in copy_user_offload()
xfrm_user: fix info leak in xfrm_notify_sa()
xfrm_user: fix info leak in build_expire()
xfrm_user: fix info leak in build_aevent()
Maxime Ripard (1):
net: stmmac: sun8i: Remove the compatibles
Michael Chan (3):
bnxt_en: Fix .ndo_setup_tc() to include XDP rings.
bnxt_en: Free MSIX vectors when unregistering the device from bnxt_re.
bnxt_en: Do not setup MAC address in bnxt_hwrm_func_qcaps().
Moshe Shemesh (1):
net/mlx5e: Fix inline header size for small packets
Nikolay Aleksandrov (9):
sch_htb: fix crash on init failure
sch_multiq: fix double free on init failure
sch_hhf: fix null pointer dereference on init failure
sch_hfsc: fix null pointer deref and double free on init failure
sch_cbq: fix null pointer dereferences on init failure
sch_fq_codel: avoid double free on init failure
sch_netem: avoid null pointer deref on init failure
sch_sfq: fix null pointer dereference on init failure
sch_tbf: fix two null pointer dereferences on init failure
Noa Osherovich (1):
net/mlx5: Fix arm SRQ command for ISSI version 0
Nogah Frankel (1):
mlxsw: spectrum_switchdev: Fix mrouter flag update
Pablo Neira Ayuso (1):
netfilter: nft_compat: check extension hook mask only if set
Paolo Abeni (1):
udp6: set rx_dst_cookie on rx_dst updates
Parthasarathy Bhuvaragan (5):
tipc: remove subscription references only for pending timers
tipc: perform skb_linearize() before parsing the inner header
tipc: reassign pointers after skb reallocation / linearization
tipc: context imbalance at node read unlock
tipc: permit bond slave as bearer
Paul Blakey (1):
net/mlx5e: Properly resolve TC offloaded ipv6 vxlan tunnel source address
Pavel Belous (5):
net:ethernet:aquantia: Extra spinlocks removed.
net:ethernet:aquantia: Fix for number of RSS queues.
net:ethernet:aquantia: Workaround for HW checksum bug.
net:ethernet:aquantia: Fix for incorrect speed index.
net:ethernet:aquantia: Show info message if bad firmware version detected.
Pieter Jansen van Vuuren (3):
nfp: fix unchecked flow dissector use
nfp: fix supported key layers calculation
nfp: remove incorrect mask check for vlan matching
Quan Nguyen (1):
drivers: net: xgene: Correct probe sequence handling
Roopa Prabhu (1):
bridge: check for null fdb->dst before notifying switchdev drivers
Sabrina Dubroca (3):
netfilter: ipt_CLUSTERIP: fix use-after-free of proc entry
macsec: add genl family module alias
tcp: fix refcnt leak with ebpf congestion control
Sekhar Nori (1):
net: ti: cpsw-common: dont print error if ti_cm_get_macid() fails
Shahar Klein (1):
net/mlx5: E-Switch, Unload the representors in the correct order
Stefano Brivio (3):
ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt()
sctp: Avoid out-of-bounds reads from address storage
cxgb4: Fix stack out-of-bounds read due to wrong size to t4_record_mbox()
Steffen Klassert (5):
esp: Fix memleaks on error paths.
esp: Fix error handling on layer 2 xmit.
esp: Fix locking on page fragment allocation
esp: Fix skb tailroom calculation
ipv6: Fix may be used uninitialized warning in rt6_check
Stephan Gatzka (1):
net: stmmac: socfgpa: Ensure emac bit set in sys manager for MII/GMII/SGMII.
Taehee Yoo (1):
netfilter: x_tables: Fix use-after-free in ipt_do_table.
Tal Gilboa (1):
net/mlx5e: Fix CQ moderation mode not set properly
Vladis Dronov (1):
xfrm: policy: check policy direction value
Wei Wang (2):
ipv6: add rcu grace period before freeing fib6_node
ipv6: fix sparse warning on rt6i_node
Xin Long (3):
netfilter: check for seqadj ext existence before adding it in nf_nat_setup_info
ipv6: set dst.obsolete when a cached route has expired
ipv6: do not set sk_destruct in IPV6_ADDRFORM sockopt
Ying Xue (1):
tipc: fix a race condition of releasing subscriber object
Yossi Kuperman (1):
udp: fix secpath leak
Yuchung Cheng (1):
bpf: fix bpf_setsockopts return value
andy zhou (1):
netfilter: nf_tables: Fix nft limit burst handling
stephen hemminger (1):
netvsc: fix deadlock betwen link status and removal
drivers/net/dsa/bcm_sf2.c | 4 +++
drivers/net/dsa/bcm_sf2.h | 1 +
drivers/net/dsa/bcm_sf2_cfp.c | 8 ++---
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 27 ++++++++--------
drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 3 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 92 ++++++++++++++++++++++++++-----------------------------
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 1 -
drivers/net/ethernet/aquantia/atlantic/aq_utils.h | 1 -
drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 11 ++-----
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 6 ++++
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 6 ++++
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c | 10 ++++--
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h | 3 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 41 +++++++++++++++++--------
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 ++
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 6 ++--
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 6 ++--
drivers/net/ethernet/faraday/ftgmac100.c | 1 -
drivers/net/ethernet/freescale/fman/mac.c | 2 ++
drivers/net/ethernet/marvell/mvpp2.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 24 +++++++++------
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 ++--
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 8 ++---
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 17 ++++++-----
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 6 +---
drivers/net/ethernet/mellanox/mlx5/core/srq.c | 12 ++++----
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 6 ++++
drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 15 ++++++---
drivers/net/ethernet/netronome/nfp/flower/match.c | 139 ++++++++++++++++++++++++++++++++++++++++++-----------------------------------------
drivers/net/ethernet/netronome/nfp/flower/offload.c | 60 +++++++++++++++++++++++++-----------
drivers/net/ethernet/netronome/nfp/nfp_main.c | 16 +++++-----
drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 14 ++++-----
drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 26 +++++++++-------
drivers/net/ethernet/qlogic/qlge/qlge_dbg.c | 2 +-
drivers/net/ethernet/realtek/r8169.c | 5 ++-
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c | 2 ++
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 5 ++-
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 8 -----
drivers/net/ethernet/ti/cpsw-common.c | 2 +-
drivers/net/hyperv/netvsc_drv.c | 7 ++++-
drivers/net/macsec.c | 1 +
drivers/net/phy/phy.c | 3 --
drivers/net/phy/phy_device.c | 6 ++--
drivers/net/usb/cdc_ncm.c | 7 +++++
drivers/net/virtio_net.c | 2 +-
drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 2 ++
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 10 +-----
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 9 ++++++
drivers/net/wireless/ti/wl1251/main.c | 1 +
include/linux/mlx5/driver.h | 4 +--
include/linux/netdevice.h | 2 ++
include/linux/skbuff.h | 41 ++++++++++++++++++++++---
include/net/ip6_fib.h | 32 +++++++++++++++++--
include/net/sch_generic.h | 7 +++++
include/net/tcp.h | 4 +--
include/net/udp.h | 2 +-
kernel/bpf/hashtab.c | 30 ++++++++++--------
net/bridge/br_device.c | 3 ++
net/bridge/br_switchdev.c | 2 +-
net/core/datagram.c | 2 +-
net/core/dev.c | 4 ++-
net/core/filter.c | 8 ++---
net/core/skbuff.c | 13 +++++---
net/dsa/dsa2.c | 2 +-
net/dsa/tag_ksz.c | 12 +++++---
net/dsa/tag_trailer.c | 2 +-
net/hsr/hsr_device.c | 3 +-
net/ipv4/esp4.c | 20 +++++++-----
net/ipv4/esp4_offload.c | 2 +-
net/ipv4/netfilter/arp_tables.c | 10 +++---
net/ipv4/netfilter/ip_tables.c | 9 +++---
net/ipv4/netfilter/ipt_CLUSTERIP.c | 4 ++-
net/ipv4/tcp.c | 2 +-
net/ipv4/tcp_cong.c | 19 +++++++++---
net/ipv4/udp.c | 6 ++--
net/ipv6/addrconf.c | 2 +-
net/ipv6/esp6.c | 16 +++++-----
net/ipv6/esp6_offload.c | 2 +-
net/ipv6/ip6_fib.c | 35 +++++++++++++++------
net/ipv6/ipv6_sockglue.c | 1 -
net/ipv6/output_core.c | 6 ++--
net/ipv6/route.c | 20 +++++++++---
net/ipv6/udp.c | 11 ++++++-
net/kcm/kcmsock.c | 4 +++
net/l2tp/l2tp_core.c | 72 ++++++++++++++-----------------------------
net/l2tp/l2tp_core.h | 13 ++++++++
net/l2tp/l2tp_netlink.c | 66 +++++++++++++++++++++++----------------
net/netfilter/nf_nat_core.c | 2 +-
net/netfilter/nft_compat.c | 4 +--
net/netfilter/nft_limit.c | 25 ++++++++-------
net/packet/af_packet.c | 12 ++++++--
net/sched/cls_api.c | 16 +++++++---
net/sched/sch_api.c | 6 ++--
net/sched/sch_cbq.c | 10 ++++--
net/sched/sch_fq_codel.c | 4 +--
net/sched/sch_generic.c | 2 +-
net/sched/sch_hfsc.c | 10 ++----
net/sched/sch_hhf.c | 3 ++
net/sched/sch_htb.c | 5 +--
net/sched/sch_multiq.c | 7 +----
net/sched/sch_netem.c | 4 +--
net/sched/sch_sfq.c | 6 ++--
net/sched/sch_tbf.c | 5 +--
net/sctp/sctp_diag.c | 7 +++--
net/sctp/socket.c | 3 +-
net/tipc/bearer.c | 26 +++++++---------
net/tipc/bearer.h | 2 ++
net/tipc/msg.c | 7 +++--
net/tipc/node.c | 4 ++-
net/tipc/socket.c | 6 ++--
net/tipc/subscr.c | 21 ++++++-------
net/xfrm/xfrm_policy.c | 7 ++++-
net/xfrm/xfrm_state.c | 8 +++++
net/xfrm/xfrm_user.c | 6 +++-
119 files changed, 816 insertions(+), 559 deletions(-)
This pull request completely breaks Intel wireless for me.
This is my trusty old XPS 13 (9350), using Intel Wireless 8260 (rev 3a).
That remains a very standard Intel machine with absolutely zero odd
things going on.
The firmware is iwlwifi-8000C-28.ucode from
iwl7260-firmware-25.30.13.0-75.fc26.noarch, and the kernel reports
iwlwifi 0000:3a:00.0: loaded firmware version 27.455470.0 op_mode iwlmvm
the thing starts acting badly with this:
iwlwifi 0000:3a:00.0: FW Error notification: type 0x00000000 cmd_id 0x04
iwlwifi 0000:3a:00.0: FW Error notification: seq 0x0000 service 0x00000004
iwlwifi 0000:3a:00.0: FW Error notification: timestamp 0x 5D84
iwlwifi 0000:3a:00.0: Microcode SW error detected. Restarting 0x2000000.
iwlwifi 0000:3a:00.0: Start IWL Error Log Dump:
iwlwifi 0000:3a:00.0: Status: 0x00000100, count: 6
iwlwifi 0000:3a:00.0: Loaded firmware version: 27.455470.0
iwlwifi 0000:3a:00.0: 0x00000038 | BAD_COMMAND
iwlwifi 0000:3a:00.0: 0x00A002F0 | trm_hw_status0
...
iwlwifi 0000:3a:00.0: 0x00000000 | isr status reg
ieee80211 phy0: Hardware restart was requested
iwlwifi 0000:3a:00.0: FW error in SYNC CMD MAC_CONTEXT_CMD
CPU: 2 PID: 993 Comm: NetworkManager Not tainted 4.13.0-06466-g80cee03bf1d6 #4
Hardware name: Dell Inc. XPS 13 9350/09JHRY, BIOS 1.4.17 05/10/2017
Call Trace:
dump_stack+0x4d/0x70
iwl_trans_pcie_send_hcmd+0x4e7/0x530 [iwlwifi]
? wait_woken+0x80/0x80
iwl_trans_send_cmd+0x5c/0xc0 [iwlwifi]
iwl_mvm_send_cmd+0x32/0x90 [iwlmvm]
iwl_mvm_send_cmd_pdu+0x58/0x80 [iwlmvm]
iwl_mvm_mac_ctxt_send_cmd+0x2a/0x60 [iwlmvm]
? iwl_mvm_mac_ctxt_send_cmd+0x2a/0x60 [iwlmvm]
iwl_mvm_mac_ctxt_cmd_sta+0x140/0x1e0 [iwlmvm]
iwl_mvm_mac_ctx_send+0x2d/0x60 [iwlmvm]
iwl_mvm_mac_ctxt_add+0x43/0xc0 [iwlmvm]
iwl_mvm_mac_add_interface+0x139/0x2b0 [iwlmvm]
? iwl_led_brightness_set+0x1f/0x30 [iwlmvm]
drv_add_interface+0x4a/0x120 [mac80211]
ieee80211_do_open+0x33d/0x820 [mac80211]
ieee80211_open+0x52/0x60 [mac80211]
__dev_open+0xae/0x120
__dev_change_flags+0x17b/0x1c0
dev_change_flags+0x29/0x60
do_setlink+0x2f7/0xe60
? __nla_put+0x20/0x30
? _raw_read_unlock_bh+0x20/0x30
? inet6_fill_ifla6_attrs+0x4be/0x4e0
? __kmalloc_node_track_caller+0x35/0x2b0
? nla_parse+0x35/0x100
rtnl_newlink+0x5d2/0x8f0
? __netlink_sendskb+0x3b/0x60
? security_capset+0x40/0x80
? ns_capable_common+0x68/0x80
? ns_capable+0x13/0x20
rtnetlink_rcv_msg+0x1f9/0x280
? rtnl_calcit.isra.26+0x110/0x110
netlink_rcv_skb+0x8e/0x130
rtnetlink_rcv+0x15/0x20
netlink_unicast+0x18b/0x220
netlink_sendmsg+0x2ad/0x3a0
sock_sendmsg+0x38/0x50
___sys_sendmsg+0x269/0x2c0
? addrconf_sysctl_forward+0x114/0x280
? dev_forward_change+0x140/0x140
? sysctl_head_finish.part.22+0x32/0x40
? lockref_put_or_lock+0x5e/0x80
? dput.part.22+0x13e/0x1c0
? mntput+0x24/0x40
__sys_sendmsg+0x54/0x90
? __sys_sendmsg+0x54/0x90
SyS_sendmsg+0x12/0x20
entry_SYSCALL_64_fastpath+0x13/0x94
RIP: 0033:0x7ff1f9933134
RSP: 002b:00007ffe7419b460 EFLAGS: 00000293 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 000055604b6d82b9 RCX: 00007ff1f9933134
RDX: 0000000000000000 RSI: 00007ffe7419b4b0 RDI: 0000000000000007
RBP: 00007ffe7419b940 R08: 0000000000000000 R09: 000055604d16b400
R10: 00007ff1f7cf8b38 R11: 0000000000000293 R12: 0000000000000001
R13: 0000000000000001 R14: 00007ffe7419b670 R15: 000055604b9515a0
iwlwifi 0000:3a:00.0: Failed to send MAC context (action:1): -5
and it doesn't get any better from there. The next error seems to be
Timeout waiting for hardware access (CSR_GP_CNTRL 0x08000008)
------------[ cut here ]------------
WARNING: CPU: 3 PID: 1075 at
drivers/net/wireless/intel/iwlwifi/pcie/trans.c:1874
iwl_trans_pcie_grab_nic_access+0xdf/0xf0 [iwlwifi]
and it will continue with those microcode failure errors and various
other warnigns about how nothing is working.
And no, nothing works. A lot of log output, no actual network access..
Linus
From: Linus Torvalds <[email protected]>
Date: Wed, 6 Sep 2017 16:27:15 -0700
> This pull request completely breaks Intel wireless for me.
>
> This is my trusty old XPS 13 (9350), using Intel Wireless 8260 (rev 3a).
>
> That remains a very standard Intel machine with absolutely zero odd
> things going on.
>
> The firmware is iwlwifi-8000C-28.ucode from
> iwl7260-firmware-25.30.13.0-75.fc26.noarch, and the kernel reports
...
Johannes and other Intel folks please look into this.
On Wed, Sep 6, 2017 at 4:27 PM, Linus Torvalds
<[email protected]> wrote:
>
> The firmware is iwlwifi-8000C-28.ucode from
> iwl7260-firmware-25.30.13.0-75.fc26.noarch, and the kernel reports
>
> iwlwifi 0000:3a:00.0: loaded firmware version 27.455470.0 op_mode iwlmvm
And when I said "iwlwifi-8000C-28.ucode" I obviously meant
"iwlwifi-8000C-27.ucode".
At least it was _hopefully_ obvious from that "27" in the actual
version number it reports.
Linus
On Wed, 2017-09-06 at 16:27 -0700, Linus Torvalds wrote:
> This pull request completely breaks Intel wireless for me.
>
> This is my trusty old XPS 13 (9350), using Intel Wireless 8260 (rev 3a).
>
> That remains a very standard Intel machine with absolutely zero odd
> things going on.
>
> The firmware is iwlwifi-8000C-28.ucode from
> iwl7260-firmware-25.30.13.0-75.fc26.noarch, and the kernel reports
>
> iwlwifi 0000:3a:00.0: loaded firmware version 27.455470.0 op_mode iwlmvm
>
> the thing starts acting badly with this:
>
> iwlwifi 0000:3a:00.0: FW Error notification: type 0x00000000 cmd_id 0x04
> iwlwifi 0000:3a:00.0: FW Error notification: seq 0x0000 service 0x00000004
> iwlwifi 0000:3a:00.0: FW Error notification: timestamp 0x 5D84
> iwlwifi 0000:3a:00.0: Microcode SW error detected. Restarting 0x2000000.
> iwlwifi 0000:3a:00.0: Start IWL Error Log Dump:
> iwlwifi 0000:3a:00.0: Status: 0x00000100, count: 6
> iwlwifi 0000:3a:00.0: Loaded firmware version: 27.455470.0
> iwlwifi 0000:3a:00.0: 0x00000038 | BAD_COMMAND
> iwlwifi 0000:3a:00.0: 0x00A002F0 | trm_hw_status0
> ...
> iwlwifi 0000:3a:00.0: 0x00000000 | isr status reg
> ieee80211 phy0: Hardware restart was requested
> iwlwifi 0000:3a:00.0: FW error in SYNC CMD MAC_CONTEXT_CMD
This seems to be a problem with backwards-compatibility with FW version
27. We are now in version 31[1] and upgrading will probably fix that.
But obviously the driver should not fail miserably like this with
version 27, because it claims to support it still.
I'm looking into this now and will provide a fix asap.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/iwlwifi-8000C-31.ucode
--
Cheers,
Luca.
On Wed, Sep 6, 2017 at 9:11 PM, Coelho, Luciano
<[email protected]> wrote:
>
> This seems to be a problem with backwards-compatibility with FW version
> 27. We are now in version 31[1] and upgrading will probably fix that.
I can confirm that fw version 31 works.
> But obviously the driver should not fail miserably like this with
> version 27, because it claims to support it still.
Not just "claims to support it", but if it's what is shipped with a
fairly recent distro like an up-to-date version of F26, I would really
hope that the driver can still work with it.
> I'm looking into this now and will provide a fix asap.
Thanks,
Linus
On Wed, 2017-09-06 at 21:57 -0700, Linus Torvalds wrote:
> On Wed, Sep 6, 2017 at 9:11 PM, Coelho, Luciano
> <[email protected]> wrote:
> >
> > This seems to be a problem with backwards-compatibility with FW version
> > 27. We are now in version 31[1] and upgrading will probably fix that.
>
> I can confirm that fw version 31 works.
Great, so I know for sure that this is a backwards-compatibility issue
with the FW API.
> > But obviously the driver should not fail miserably like this with
> > version 27, because it claims to support it still.
>
> Not just "claims to support it", but if it's what is shipped with a
> fairly recent distro like an up-to-date version of F26, I would really
> hope that the driver can still work with it.
I totally agree, we support a bunch of older versions for that exact
reason. We just don't really test all the supported versions very
often. We should probably change that.
I'll make sure it still works with version 27.
--
Cheers,
Luca.
On Thu, 2017-09-07 at 05:04 +0000, Coelho, Luciano wrote:
> On Wed, 2017-09-06 at 21:57 -0700, Linus Torvalds wrote:
> > On Wed, Sep 6, 2017 at 9:11 PM, Coelho, Luciano
> > <[email protected]> wrote:
> > >
> > > This seems to be a problem with backwards-compatibility with FW version
> > > 27. We are now in version 31[1] and upgrading will probably fix that.
> >
> > I can confirm that fw version 31 works.
>
> Great, so I know for sure that this is a backwards-compatibility issue
> with the FW API.
>
>
> > > But obviously the driver should not fail miserably like this with
> > > version 27, because it claims to support it still.
> >
> > Not just "claims to support it", but if it's what is shipped with a
> > fairly recent distro like an up-to-date version of F26, I would really
> > hope that the driver can still work with it.
>
> I totally agree, we support a bunch of older versions for that exact
> reason. We just don't really test all the supported versions very
> often. We should probably change that.
>
> I'll make sure it still works with version 27.
Okay, I found the offending patch:
commit 7089ae634c50544b29b31faf1a751e8765c8de3b
Author: Johannes Berg <[email protected]>
AuthorDate: Wed Jun 28 16:19:49 2017 +0200
Commit: Luca Coelho <[email protected]>
CommitDate: Wed Aug 9 09:15:32 2017 +0300
iwlwifi: mvm: use firmware LED command where applicable
On devices starting from 8000 series, the host can no longer toggle
the LED through the CSR_LED_REG register, but must do it via the
firmware instead. Add support for this. Note that this means that
the LED cannot be turned on while the firmware is off, so using an
arbitrary LED trigger may not work as expected.
Fixes: 503ab8c56ca0 ("iwlwifi: Add 8000 HW family support")
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
Reverting it solves the problem. We introduced a new command to control
the LED lights and assumed it was available in older FW versions as
well, which turned out not to be the case.
This patch is not very important (unless you really like blinking lights
-- maybe I'll change my mind when the holidays approach :P). so it is
fine if you just want to revert it for now.
In any case, I'll send a patch fixing this problem soon.
--
Cheers,
Luca.
On Wed, Sep 6, 2017 at 10:40 PM, Luca Coelho <[email protected]> wrote:
>
> This patch is not very important (unless you really like blinking lights
> -- maybe I'll change my mind when the holidays approach :P). so it is
> fine if you just want to revert it for now.
>
> In any case, I'll send a patch fixing this problem soon.
No need to revert if we can get this fixed quickly enough.
I'll leave the fw-31 on my laptop, so that I can continue to use it for now.
Thanks,
Linus
From: Luca Coelho <[email protected]>
The LEDS_CMD command is only supported in some newer FW versions
(e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions
(such as iwlwifi-8000C-27.ucode).
To fix this, check for a new bit in the FW capabilities TLV that tells
when the command is supported.
Note that the current version of -31.ucode in linux-firmware.git
(31.532993.0) does not have this capability bit set, so the LED won't
work, even though this version should support it. But we will update
this firmware soon, so it won't be a problem anymore.
Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable")
Reported-by: Linus Torvalds <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
---
drivers/net/wireless/intel/iwlwifi/fw/file.h | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/led.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/file.h b/drivers/net/wireless/intel/iwlwifi/fw/file.h
index 887f6d8fc8a7..279248cd9cfb 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/file.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h
@@ -378,6 +378,7 @@ enum iwl_ucode_tlv_capa {
IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = (__force iwl_ucode_tlv_capa_t)80,
IWL_UCODE_TLV_CAPA_LQM_SUPPORT = (__force iwl_ucode_tlv_capa_t)81,
IWL_UCODE_TLV_CAPA_TX_POWER_ACK = (__force iwl_ucode_tlv_capa_t)84,
+ IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = (__force iwl_ucode_tlv_capa_t)86,
IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = (__force iwl_ucode_tlv_capa_t)96,
NUM_IWL_UCODE_TLV_CAPA
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/led.c b/drivers/net/wireless/intel/iwlwifi/mvm/led.c
index 005e2e7278a5..b27269504a62 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/led.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/led.c
@@ -92,7 +92,8 @@ static void iwl_mvm_send_led_fw_cmd(struct iwl_mvm *mvm, bool on)
static void iwl_mvm_led_set(struct iwl_mvm *mvm, bool on)
{
- if (mvm->cfg->device_family >= IWL_DEVICE_FAMILY_8000) {
+ if (fw_has_capa(&mvm->fw->ucode_capa,
+ IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT)) {
iwl_mvm_send_led_fw_cmd(mvm, on);
return;
}
--
2.14.1
Luca Coelho <[email protected]> writes:
> From: Luca Coelho <[email protected]>
>
> The LEDS_CMD command is only supported in some newer FW versions
> (e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions
> (such as iwlwifi-8000C-27.ucode).
>
> To fix this, check for a new bit in the FW capabilities TLV that tells
> when the command is supported.
>
> Note that the current version of -31.ucode in linux-firmware.git
> (31.532993.0) does not have this capability bit set, so the LED won't
> work, even though this version should support it. But we will update
> this firmware soon, so it won't be a problem anymore.
>
> Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable")
> Reported-by: Linus Torvalds <[email protected]>
> Signed-off-by: Luca Coelho <[email protected]>
Linus, do you want to apply this directly or should we take it via the
normal route (wireless-drivers -> net)? If your prefer the latter when
I'm planning to submit this to Dave in a day or two and expecting it to
get to your tree in about a week, depending of course what is Dave's
schedule.
--
Kalle Valo
On Thu, Sep 7, 2017 at 5:39 AM, Kalle Valo <[email protected]> wrote:
>
> Linus, do you want to apply this directly or should we take it via the
> normal route (wireless-drivers -> net)? If your prefer the latter when
> I'm planning to submit this to Dave in a day or two and expecting it to
> get to your tree in about a week, depending of course what is Dave's
> schedule.
Since we have a workaround for the problem, let's just go through the
regular channels. As long as I get the fix through David before the
merge window closes, I'm happy.
Linus
Linus Torvalds <[email protected]> writes:
> On Thu, Sep 7, 2017 at 5:39 AM, Kalle Valo <[email protected]> wrote:
>>
>> Linus, do you want to apply this directly or should we take it via the
>> normal route (wireless-drivers -> net)? If your prefer the latter when
>> I'm planning to submit this to Dave in a day or two and expecting it to
>> get to your tree in about a week, depending of course what is Dave's
>> schedule.
>
> Since we have a workaround for the problem, let's just go through the
> regular channels. As long as I get the fix through David before the
> merge window closes, I'm happy.
Ok, I'll aim to send the pull request to Dave tomorrow.
--
Kalle Valo
Luciano Coelho <[email protected]> wrote:
> From: Luca Coelho <[email protected]>
>
> The LEDS_CMD command is only supported in some newer FW versions
> (e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions
> (such as iwlwifi-8000C-27.ucode).
>
> To fix this, check for a new bit in the FW capabilities TLV that tells
> when the command is supported.
>
> Note that the current version of -31.ucode in linux-firmware.git
> (31.532993.0) does not have this capability bit set, so the LED won't
> work, even though this version should support it. But we will update
> this firmware soon, so it won't be a problem anymore.
>
> Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable")
> Reported-by: Linus Torvalds <[email protected]>
> Signed-off-by: Luca Coelho <[email protected]>
Patch applied to wireless-drivers.git, thanks.
2eabc84d2f8e iwlwifi: mvm: only send LEDS_CMD when the FW supports it
--
https://patchwork.kernel.org/patch/9941719/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches