1. 12 Mar, 2020 13 commits
    • Julian Wiedmann's avatar
      Revert "net: sched: make newly activated qdiscs visible" · 7c4046b1
      Julian Wiedmann authored
      This reverts commit 4cda7527
      from net-next.
      
      Brown bag time.
      
      Michal noticed that this change doesn't work at all when
      netif_set_real_num_tx_queues() gets called prior to an initial
      dev_activate(), as for instance igb does.
      
      Doing so dies with:
      
      [   40.579142] BUG: kernel NULL pointer dereference, address: 0000000000000400
      [   40.586922] #PF: supervisor read access in kernel mode
      [   40.592668] #PF: error_code(0x0000) - not-present page
      [   40.598405] PGD 0 P4D 0
      [   40.601234] Oops: 0000 [#1] PREEMPT SMP PTI
      [   40.605909] CPU: 18 PID: 1681 Comm: wickedd Tainted: G            E     5.6.0-rc3-ethnl.50-default #1
      [   40.616205] Hardware name: Intel Corporation S2600CP/S2600CP, BIOS RMLSDP.86I.R3.27.D685.1305151734 05/15/2013
      [   40.627377] RIP: 0010:qdisc_hash_add.part.22+0x2e/0x90
      [   40.633115] Code: 00 55 53 89 f5 48 89 fb e8 2f 9b fb ff 85 c0 74 44 48 8b 43 40 48 8b 08 69 43 38 47 86 c8 61 c1 e8 1c 48 83 e8 80 48 8d 14 c1 <48> 8b 04 c1 48 8d 4b 28 48 89 53 30 48 89 43 28 48 85 c0 48 89 0a
      [   40.654080] RSP: 0018:ffffb879864934d8 EFLAGS: 00010203
      [   40.659914] RAX: 0000000000000080 RBX: ffffffffb8328d80 RCX: 0000000000000000
      [   40.667882] RDX: 0000000000000400 RSI: 0000000000000000 RDI: ffffffffb831faa0
      [   40.675849] RBP: 0000000000000000 R08: ffffa0752c8b9088 R09: ffffa0752c8b9208
      [   40.683816] R10: 0000000000000006 R11: 0000000000000000 R12: ffffa0752d734000
      [   40.691783] R13: 0000000000000008 R14: 0000000000000000 R15: ffffa07113c18000
      [   40.699750] FS:  00007f94548e5880(0000) GS:ffffa0752e980000(0000) knlGS:0000000000000000
      [   40.708782] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   40.715189] CR2: 0000000000000400 CR3: 000000082b6ae006 CR4: 00000000001606e0
      [   40.723156] Call Trace:
      [   40.725888]  dev_qdisc_set_real_num_tx_queues+0x61/0x90
      [   40.731725]  netif_set_real_num_tx_queues+0x94/0x1d0
      [   40.737286]  __igb_open+0x19a/0x5d0 [igb]
      [   40.741767]  __dev_open+0xbb/0x150
      [   40.745567]  __dev_change_flags+0x157/0x1a0
      [   40.750240]  dev_change_flags+0x23/0x60
      
      [...]
      
      Fixes: 4cda7527 ("net: sched: make newly activated qdiscs visible")
      Reported-by: default avatarMichal Kubecek <mkubecek@suse.cz>
      CC: Michal Kubecek <mkubecek@suse.cz>
      CC: Eric Dumazet <edumazet@google.com>
      CC: Jamal Hadi Salim <jhs@mojatatu.com>
      CC: Cong Wang <xiyou.wangcong@gmail.com>
      CC: Jiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c4046b1
    • Alex Elder's avatar
      dt-bindings: soc: qcom: fix IPA binding · e6e0f093
      Alex Elder authored
      The definitions for the "qcom,smem-states" and "qcom,smem-state-names"
      properties need to list their "$ref" under an "allOf" keyword.
      
      In addition, fix two problems in the example at the end:
        - Use #include for header files that define needed symbolic values
        - Terminate the line that includes the "ipa-shared" register space
          name with a comma rather than a semicolon
      
      Finally, update some white space in the example for better alignment.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e6e0f093
    • Davide Caratti's avatar
      net: mptcp: don't hang before sending 'MP capable with data' · 767d3ded
      Davide Caratti authored
      the following packetdrill script
      
        socket(..., SOCK_STREAM, IPPROTO_MPTCP) = 3
        fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
        fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
        connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
        > S 0:0(0) <mss 1460,sackOK,TS val 100 ecr 0,nop,wscale 8,mpcapable v1 flags[flag_h] nokey>
        < S. 0:0(0) ack 1 win 65535 <mss 1460,sackOK,TS val 700 ecr 100,nop,wscale 8,mpcapable v1 flags[flag_h] key[skey=2]>
        > . 1:1(0) ack 1 win 256 <nop, nop, TS val 100 ecr 700,mpcapable v1 flags[flag_h] key[ckey,skey]>
        getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
        fcntl(3, F_SETFL, O_RDWR) = 0
        write(3, ..., 1000) = 1000
      
      doesn't transmit 1KB data packet after a successful three-way-handshake,
      using mp_capable with data as required by protocol v1, and write() hangs
      forever:
      
       PID: 973    TASK: ffff97dd399cae80  CPU: 1   COMMAND: "packetdrill"
        #0 [ffffa9b94062fb78] __schedule at ffffffff9c90a000
        #1 [ffffa9b94062fc08] schedule at ffffffff9c90a4a0
        #2 [ffffa9b94062fc18] schedule_timeout at ffffffff9c90e00d
        #3 [ffffa9b94062fc90] wait_woken at ffffffff9c120184
        #4 [ffffa9b94062fcb0] sk_stream_wait_connect at ffffffff9c75b064
        #5 [ffffa9b94062fd20] mptcp_sendmsg at ffffffff9c8e801c
        #6 [ffffa9b94062fdc0] sock_sendmsg at ffffffff9c747324
        #7 [ffffa9b94062fdd8] sock_write_iter at ffffffff9c7473c7
        #8 [ffffa9b94062fe48] new_sync_write at ffffffff9c302976
        #9 [ffffa9b94062fed0] vfs_write at ffffffff9c305685
       #10 [ffffa9b94062ff00] ksys_write at ffffffff9c305985
       #11 [ffffa9b94062ff38] do_syscall_64 at ffffffff9c004475
       #12 [ffffa9b94062ff50] entry_SYSCALL_64_after_hwframe at ffffffff9ca0008c
           RIP: 00007f959407eaf7  RSP: 00007ffe9e95a910  RFLAGS: 00000293
           RAX: ffffffffffffffda  RBX: 0000000000000008  RCX: 00007f959407eaf7
           RDX: 00000000000003e8  RSI: 0000000001785fe0  RDI: 0000000000000008
           RBP: 0000000001785fe0   R8: 0000000000000000   R9: 0000000000000003
           R10: 0000000000000007  R11: 0000000000000293  R12: 00000000000003e8
           R13: 00007ffe9e95ae30  R14: 0000000000000000  R15: 0000000000000000
           ORIG_RAX: 0000000000000001  CS: 0033  SS: 002b
      
      Fix it ensuring that socket state is TCP_ESTABLISHED on reception of the
      third ack.
      
      Fixes: 1954b860 ("mptcp: Check connection state before attempting send")
      Suggested-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavide Caratti <dcaratti@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      767d3ded
    • Colin Ian King's avatar
      soc: qcom: ipa: fix spelling mistake "cahces" -> "caches" · dc3e19f4
      Colin Ian King authored
      There is a spelling mistake in a dev_err message. Fix it.
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc3e19f4
    • Chen Zhou's avatar
      net: ibm: remove set but not used variables 'err' · 9b96a3e6
      Chen Zhou authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/ethernet/ibm/emac/core.c: In function __emac_mdio_write:
      drivers/net/ethernet/ibm/emac/core.c:875:9: warning:
      	variable err set but not used [-Wunused-but-set-variable]
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarChen Zhou <chenzhou10@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b96a3e6
    • Jules Irenge's avatar
      net: Add missing annotation for *netlink_seq_start() · 64fbca01
      Jules Irenge authored
      Sparse reports a warning at netlink_seq_start()
      
      warning: context imbalance in netlink_seq_start() - wrong count at exit
      The root cause is the missing annotation at netlink_seq_start()
      Add the missing  __acquires(RCU) annotation
      Signed-off-by: default avatarJules Irenge <jbi.octave@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64fbca01
    • Jules Irenge's avatar
      tcp: Add missing annotation for tcp_child_process() · 734c8f75
      Jules Irenge authored
      Sparse reports warning at tcp_child_process()
      warning: context imbalance in tcp_child_process() - unexpected unlock
      The root cause is the missing annotation at tcp_child_process()
      
      Add the missing __releases(&((child)->sk_lock.slock)) annotation
      Signed-off-by: default avatarJules Irenge <jbi.octave@gmail.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      734c8f75
    • Jules Irenge's avatar
      raw: Add missing annotations to raw_seq_start() and raw_seq_stop() · 0d8a42c9
      Jules Irenge authored
      Sparse reports warnings at raw_seq_start() and raw_seq_stop()
      
      warning: context imbalance in raw_seq_start() - wrong count at exit
      warning: context imbalance in raw_seq_stop() - unexpected unlock
      
      The root cause is the missing annotations at raw_seq_start()
      	and raw_seq_stop()
      Add the missing __acquires(&h->lock) annotation
      Add the missing __releases(&h->lock) annotation
      Signed-off-by: default avatarJules Irenge <jbi.octave@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d8a42c9
    • Julian Wiedmann's avatar
      net: sched: make newly activated qdiscs visible · 4cda7527
      Julian Wiedmann authored
      In their .attach callback, mq[prio] only add the qdiscs of the currently
      active TX queues to the device's qdisc hash list.
      If a user later increases the number of active TX queues, their qdiscs
      are not visible via eg. 'tc qdisc show'.
      
      Add a hook to netif_set_real_num_tx_queues() that walks all active
      TX queues and adds those which are missing to the hash list.
      
      CC: Eric Dumazet <edumazet@google.com>
      CC: Jamal Hadi Salim <jhs@mojatatu.com>
      CC: Cong Wang <xiyou.wangcong@gmail.com>
      CC: Jiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4cda7527
    • Pavel Machek's avatar
      net: slcan, slip -- no need for goto when if () will do · dacf470b
      Pavel Machek authored
      No need to play with gotos to jump over single statement.
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      Acked-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dacf470b
    • Jose Abreu's avatar
      net: stmmac: selftests: Fix L3/L4 Filtering test · c7211ff3
      Jose Abreu authored
      Since commit 319a1d19, stmmac only support basic HW stats type for
      action. Set this field in the L3/L4 Filtering test so that it correctly
      setups the filter instead of returning EOPNOTSUPP.
      
      Fixes: 319a1d19 ("flow_offload: check for basic action hw stats type")
      Signed-off-by: default avatarJose Abreu <Jose.Abreu@synopsys.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7211ff3
    • Alexander Bersenev's avatar
      cdc_ncm: Implement the 32-bit version of NCM Transfer Block · 0fa81b30
      Alexander Bersenev authored
      The NCM specification defines two formats of transfer blocks: with 16-bit
      fields (NTB-16) and with 32-bit fields (NTB-32). Currently only NTB-16 is
      implemented.
      
      This patch adds the support of NTB-32. The motivation behind this is that
      some devices such as E5785 or E5885 from the current generation of Huawei
      LTE routers do not support NTB-16. The previous generations of Huawei
      devices are also use NTB-32 by default.
      
      Also this patch enables NTB-32 by default for Huawei devices.
      
      During the 2019 ValdikSS made five attempts to contact Huawei to add the
      NTB-16 support to their router firmware, but they were unsuccessful.
      Signed-off-by: default avatarAlexander Bersenev <bay@hackerdom.ru>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0fa81b30
    • Martin Varghese's avatar
      bareudp: Fixed bareudp receive handling · 81f954a4
      Martin Varghese authored
      Reverted commit "2baecda3 bareudp: remove unnecessary udp_encap_enable() in
      bareudp_socket_create()"
      
      An explicit call to udp_encap_enable is needed as the setup_udp_tunnel_sock
      does not call udp_encap_enable if the if the socket is of type v6.
      
      Bareudp device uses v6 socket to receive v4 & v6 traffic
      
      CC: Taehee Yoo <ap420073@gmail.com>
      Fixes: 2baecda3 ("bareudp: remove unnecessary udp_encap_enable() in bareudp_socket_create()")
      Signed-off-by: default avatarMartin Varghese <martin.varghese@nokia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81f954a4
  2. 11 Mar, 2020 1 commit
  3. 10 Mar, 2020 26 commits