1. 10 Oct, 2019 1 commit
  2. 07 Oct, 2019 1 commit
    • Boris Ostrovsky's avatar
      x86/xen: Return from panic notifier · c6875f3a
      Boris Ostrovsky authored
      Currently execution of panic() continues until Xen's panic notifier
      (xen_panic_event()) is called at which point we make a hypercall that
      never returns.
      
      This means that any notifier that is supposed to be called later as
      well as significant part of panic() code (such as pstore writes from
      kmsg_dump()) is never executed.
      
      There is no reason for xen_panic_event() to be this last point in
      execution since panic()'s emergency_restart() will call into
      xen_emergency_restart() from where we can perform our hypercall.
      
      Nevertheless, we will provide xen_legacy_crash boot option that will
      preserve original behavior during crash. This option could be used,
      for example, if running kernel dumper (which happens after panic
      notifiers) is undesirable.
      Reported-by: default avatarJames Dingwall <james@dingwall.me.uk>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      c6875f3a
  3. 02 Oct, 2019 3 commits
    • Juergen Gross's avatar
      xen/xenbus: fix self-deadlock after killing user process · a8fabb38
      Juergen Gross authored
      In case a user process using xenbus has open transactions and is killed
      e.g. via ctrl-C the following cleanup of the allocated resources might
      result in a deadlock due to trying to end a transaction in the xenbus
      worker thread:
      
      [ 2551.474706] INFO: task xenbus:37 blocked for more than 120 seconds.
      [ 2551.492215]       Tainted: P           OE     5.0.0-29-generic #5
      [ 2551.510263] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [ 2551.528585] xenbus          D    0    37      2 0x80000080
      [ 2551.528590] Call Trace:
      [ 2551.528603]  __schedule+0x2c0/0x870
      [ 2551.528606]  ? _cond_resched+0x19/0x40
      [ 2551.528632]  schedule+0x2c/0x70
      [ 2551.528637]  xs_talkv+0x1ec/0x2b0
      [ 2551.528642]  ? wait_woken+0x80/0x80
      [ 2551.528645]  xs_single+0x53/0x80
      [ 2551.528648]  xenbus_transaction_end+0x3b/0x70
      [ 2551.528651]  xenbus_file_free+0x5a/0x160
      [ 2551.528654]  xenbus_dev_queue_reply+0xc4/0x220
      [ 2551.528657]  xenbus_thread+0x7de/0x880
      [ 2551.528660]  ? wait_woken+0x80/0x80
      [ 2551.528665]  kthread+0x121/0x140
      [ 2551.528667]  ? xb_read+0x1d0/0x1d0
      [ 2551.528670]  ? kthread_park+0x90/0x90
      [ 2551.528673]  ret_from_fork+0x35/0x40
      
      Fix this by doing the cleanup via a workqueue instead.
      Reported-by: default avatarJames Dingwall <james@dingwall.me.uk>
      Fixes: fd8aa909 ("xen: optimize xenbus driver for multiple concurrent xenstore accesses")
      Cc: <stable@vger.kernel.org> # 4.11
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      a8fabb38
    • Juergen Gross's avatar
      xen/efi: have a common runtime setup function · 09515706
      Juergen Gross authored
      Today the EFI runtime functions are setup in architecture specific
      code (x86 and arm), with the functions themselves living in drivers/xen
      as they are not architecture dependent.
      
      As the setup is exactly the same for arm and x86 move the setup to
      drivers/xen, too. This at once removes the need to make the single
      functions global visible.
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      [boris: "Dropped EXPORT_SYMBOL_GPL(xen_efi_runtime_setup)"]
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      09515706
    • Peng Fan's avatar
      arm: xen: mm: use __GPF_DMA32 for arm64 · ec066de1
      Peng Fan authored
      arm64 shares some code under arch/arm/xen, including mm.c.
      However ZONE_DMA is removed by commit
      ad67f5a6("arm64: replace ZONE_DMA with ZONE_DMA32").
      
      So add a check if CONFIG_ZONE_DMA32 is enabled use __GFP_DMA32.
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      Acked-by: default avatarStefano Stabellini <sstabellini@kernel.org>
      Signed-off-by: default avatarStefano Stabellini <sstabellini@kernel.org>
      ec066de1
  4. 01 Oct, 2019 6 commits
  5. 12 Sep, 2019 1 commit
    • Igor Druzhinin's avatar
      xen/pci: reserve MCFG areas earlier · a4098bc6
      Igor Druzhinin authored
      If MCFG area is not reserved in E820, Xen by default will defer its usage
      until Dom0 registers it explicitly after ACPI parser recognizes it as
      a reserved resource in DSDT. Having it reserved in E820 is not
      mandatory according to "PCI Firmware Specification, rev 3.2" (par. 4.1.2)
      and firmware is free to keep a hole in E820 in that place. Xen doesn't know
      what exactly is inside this hole since it lacks full ACPI view of the
      platform therefore it's potentially harmful to access MCFG region
      without additional checks as some machines are known to provide
      inconsistent information on the size of the region.
      
      Now xen_mcfg_late() runs after acpi_init() which is too late as some basic
      PCI enumeration starts exactly there as well. Trying to register a device
      prior to MCFG reservation causes multiple problems with PCIe extended
      capability initializations in Xen (e.g. SR-IOV VF BAR sizing). There are
      no convenient hooks for us to subscribe to so register MCFG areas earlier
      upon the first invocation of xen_add_device(). It should be safe to do once
      since all the boot time buses must have their MCFG areas in MCFG table
      already and we don't support PCI bus hot-plug.
      Signed-off-by: default avatarIgor Druzhinin <igor.druzhinin@citrix.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      a4098bc6
  6. 06 Sep, 2019 1 commit
  7. 02 Sep, 2019 4 commits
    • Linus Torvalds's avatar
      Linux 5.3-rc7 · 089cf7f6
      Linus Torvalds authored
      089cf7f6
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 49ffdb4c
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small char and misc driver fixes for reported issues for
        5.3-rc7
      
        Also included in here is the documentation for how we are handling
        hardware issues under embargo that everyone has finally agreed on, as
        well as a MAINTAINERS update for the suckers who agreed to handle the
        LICENSES/ files.
      
        All of these have been in linux-next last week with no reported
        issues"
      
      * tag 'char-misc-5.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        fsi: scom: Don't abort operations for minor errors
        vmw_balloon: Fix offline page marking with compaction
        VMCI: Release resource if the work is already queued
        Documentation/process: Embargoed hardware security issues
        lkdtm/bugs: fix build error in lkdtm_EXHAUST_STACK
        mei: me: add Tiger Lake point LP device ID
        intel_th: pci: Add Tiger Lake support
        intel_th: pci: Add support for another Lewisburg PCH
        stm class: Fix a double free of stm_source_device
        MAINTAINERS: add entry for LICENSES and SPDX stuff
        fpga: altera-ps-spi: Fix getting of optional confd gpio
      49ffdb4c
    • Linus Torvalds's avatar
      Merge tag 'usb-5.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 2c248f92
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB fixes that have been in linux-next this past
        week for 5.3-rc7
      
        They fix the usual xhci, syzbot reports, and other small issues that
        have come up last week.
      
        All have been in linux-next with no reported issues"
      
      * tag 'usb-5.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: cdc-wdm: fix race between write and disconnect due to flag abuse
        usb: host: xhci: rcar: Fix typo in compatible string matching
        usb: host: xhci-tegra: Set DMA mask correctly
        USB: storage: ums-realtek: Whitelist auto-delink support
        USB: storage: ums-realtek: Update module parameter description for auto_delink_en
        usb: host: ohci: fix a race condition between shutdown and irq
        usb: hcd: use managed device resources
        typec: tcpm: fix a typo in the comparison of pdo_max_voltage
        usb-storage: Add new JMS567 revision to unusual_devs
        usb: chipidea: udc: don't do hardware access if gadget has stopped
        usbtmc: more sanity checking for packet size
        usb: udc: lpc32xx: silence fall-through warning
      2c248f92
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 345464fb
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix some length checks during OGM processing in batman-adv, from
          Sven Eckelmann.
      
       2) Fix regression that caused netfilter conntrack sysctls to not be
          per-netns any more. From Florian Westphal.
      
       3) Use after free in netpoll, from Feng Sun.
      
       4) Guard destruction of pfifo_fast per-cpu qdisc stats with
          qdisc_is_percpu_stats(), from Davide Caratti. Similar bug is fixed
          in pfifo_fast_enqueue().
      
       5) Fix memory leak in mld_del_delrec(), from Eric Dumazet.
      
       6) Handle neigh events on internal ports correctly in nfp, from John
          Hurley.
      
       7) Clear SKB timestamp in NF flow table code so that it does not
          confuse fq scheduler. From Florian Westphal.
      
       8) taprio destroy can crash if it is invoked in a failure path of
          taprio_init(), because the list head isn't setup properly yet and
          the list del is unconditional. Perform the list add earlier to
          address this. From Vladimir Oltean.
      
       9) Make sure to reapply vlan filters on device up, in aquantia driver.
          From Dmitry Bogdanov.
      
      10) sgiseeq driver releases DMA memory using free_page() instead of
          dma_free_attrs(). From Christophe JAILLET.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (58 commits)
        net: seeq: Fix the function used to release some memory in an error handling path
        enetc: Add missing call to 'pci_free_irq_vectors()' in probe and remove functions
        net: bcmgenet: use ethtool_op_get_ts_info()
        tc-testing: don't hardcode 'ip' in nsPlugin.py
        net: dsa: microchip: add KSZ8563 compatibility string
        dt-bindings: net: dsa: document additional Microchip KSZ8563 switch
        net: aquantia: fix out of memory condition on rx side
        net: aquantia: linkstate irq should be oneshot
        net: aquantia: reapply vlan filters on up
        net: aquantia: fix limit of vlan filters
        net: aquantia: fix removal of vlan 0
        net/sched: cbs: Set default link speed to 10 Mbps in cbs_set_port_rate
        taprio: Set default link speed to 10 Mbps in taprio_set_picos_per_byte
        taprio: Fix kernel panic in taprio_destroy
        net: dsa: microchip: fill regmap_config name
        rxrpc: Fix lack of conn cleanup when local endpoint is cleaned up [ver #2]
        net: stmmac: dwmac-rk: Don't fail if phy regulator is absent
        amd-xgbe: Fix error path in xgbe_mod_init()
        netfilter: nft_meta_bridge: Fix get NFT_META_BRI_IIFVPROTO in network byteorder
        mac80211: Correctly set noencrypt for PAE frames
        ...
      345464fb
  8. 01 Sep, 2019 20 commits
    • Christophe JAILLET's avatar
      net: seeq: Fix the function used to release some memory in an error handling path · e1e54ec7
      Christophe JAILLET authored
      In commit 99cd149e ("sgiseeq: replace use of dma_cache_wback_inv"),
      a call to 'get_zeroed_page()' has been turned into a call to
      'dma_alloc_coherent()'. Only the remove function has been updated to turn
      the corresponding 'free_page()' into 'dma_free_attrs()'.
      The error hndling path of the probe function has not been updated.
      
      Fix it now.
      
      Rename the corresponding label to something more in line.
      
      Fixes: 99cd149e ("sgiseeq: replace use of dma_cache_wback_inv")
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Reviewed-by: default avatarThomas Bogendoerfer <tbogendoerfer@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1e54ec7
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9f159ae0
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A set of fixes for x86:
      
         - Fix the bogus detection of 32bit user mode for uretprobes which
           caused corruption of the user return address resulting in
           application crashes. In the uprobes handler in_ia32_syscall() is
           obviously always returning false on a 64bit kernel. Use
           user_64bit_mode() instead which works correctly.
      
         - Prevent large page splitting when ftrace flips RW/RO on the kernel
           text which caused iTLB performance issues. Ftrace wants to be
           converted to text_poke() which avoids the problem, but for now
           allow large page preservation in the static protections check when
           the change request spawns a full large page.
      
         - Prevent arch_dynirq_lower_bound() from returning 0 when the IOAPIC
           is configured via device tree. In the device tree case the GSI 1:1
           mapping is meaningless therefore the lower bound which protects the
           GSI range on ACPI machines is irrelevant. Return the lower bound
           which the core hands to the function instead of blindly returning 0
           which causes the core to allocate the invalid virtual interupt
           number 0 which in turn prevents all drivers from allocating and
           requesting an interrupt.
      
         - Remove the bogus initialization of LDR and DFR in the 32bit bigsmp
           APIC driver. That uses physical destination mode where LDR/DFR are
           ignored, but the initialization and the missing clear of LDR caused
           the APIC to be left in a inconsistent state on kexec/reboot.
      
         - Clear LDR when clearing the APIC registers so the APIC is in a well
           defined state.
      
         - Initialize variables proper in the find_trampoline_placement()
           code.
      
         - Silence GCC( build warning for the real mode part of the build"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/cpa: Prevent large page split when ftrace flips RW on kernel text
        x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
        x86/boot/compressed/64: Fix missing initialization in find_trampoline_placement()
        x86/apic: Include the LDR when clearing out APIC registers
        x86/apic: Do not initialize LDR and DFR for bigsmp
        uprobes/x86: Fix detection of 32-bit user mode
        x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
      9f159ae0
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5fb181cb
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "Two fixes for perf x86 hardware implementations:
      
         - Restrict the period on Nehalem machines to prevent perf from
           hogging the CPU
      
         - Prevent the AMD IBS driver from overwriting the hardwre controlled
           and pre-seeded reserved bits (0-6) in the count register which
           caused a sample bias for dispatched micro-ops"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
        perf/x86/intel: Restrict period on Nehalem
      5fb181cb
    • Linus Torvalds's avatar
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 5358e6e7
      Linus Torvalds authored
      Pull turbostat updates from Len Brown:
       "User-space turbostat (and x86_energy_perf_policy) patches.
      
        They are primarily bug fixes from users"
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: update version number
        tools/power turbostat: Add support for Hygon Fam 18h (Dhyana) RAPL
        tools/power turbostat: Fix caller parameter of get_tdp_amd()
        tools/power turbostat: Fix CPU%C1 display value
        tools/power turbostat: do not enforce 1ms
        tools/power turbostat: read from pipes too
        tools/power turbostat: Add Ice Lake NNPI support
        tools/power turbostat: rename has_hsw_msrs()
        tools/power turbostat: Fix Haswell Core systems
        tools/power turbostat: add Jacobsville support
        tools/power turbostat: fix buffer overrun
        tools/power turbostat: fix file descriptor leaks
        tools/power turbostat: fix leak of file descriptor on error return path
        tools/power turbostat: Make interval calculation per thread to reduce jitter
        tools/power turbostat: remove duplicate pc10 column
        tools/power x86_energy_perf_policy: Fix argument parsing
        tools/power: Fix typo in man page
        tools/power/x86: Enable compiler optimisations and Fortify by default
        tools/power x86_energy_perf_policy: Fix "uninitialized variable" warnings at -O2
      5358e6e7
    • Christophe JAILLET's avatar
      enetc: Add missing call to 'pci_free_irq_vectors()' in probe and remove functions · dd7078f0
      Christophe JAILLET authored
      Call to 'pci_free_irq_vectors()' are missing both in the error handling
      path of the probe function, and in the remove function.
      Add them.
      
      Fixes: 19971f5e ("enetc: add PTP clock driver")
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd7078f0
    • Ryan M. Collins's avatar
      net: bcmgenet: use ethtool_op_get_ts_info() · dd1bf47a
      Ryan M. Collins authored
      This change enables the use of SW timestamping on the Raspberry Pi 4.
      
      bcmgenet's transmit function bcmgenet_xmit() implements software
      timestamping. However the SOF_TIMESTAMPING_TX_SOFTWARE capability was
      missing and only SOF_TIMESTAMPING_RX_SOFTWARE was announced. By using
      ethtool_ops bcmgenet_ethtool_ops() as get_ts_info(), the
      SOF_TIMESTAMPING_TX_SOFTWARE capability is announced.
      
      Similar to commit a8f5cb9e ("smsc95xx: use ethtool_op_get_ts_info()")
      Signed-off-by: default avatarRyan M. Collins <rmc032@bucknell.edu>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: default avatarDoug Berger <opendmb@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd1bf47a
    • Davide Caratti's avatar
      tc-testing: don't hardcode 'ip' in nsPlugin.py · 02a3f0d5
      Davide Caratti authored
      the following tdc test fails on Fedora:
      
       # ./tdc.py -e 2638
        -- ns/SubPlugin.__init__
       Test 2638: Add matchall and try to get it
       -----> prepare stage *** Could not execute: "$TC qdisc add dev $DEV1 clsact"
       -----> prepare stage *** Error message: "/bin/sh: ip: command not found"
       returncode 127; expected [0]
       -----> prepare stage *** Aborting test run.
      
      Let nsPlugin.py use the 'IP' variable introduced with commit 92c1a19e
      ("tc-tests: added path to ip command in tdc"), so that the path to 'ip' is
      correctly resolved to the value we have in tdc_config.py.
      
       # ./tdc.py -e 2638
        -- ns/SubPlugin.__init__
       Test 2638: Add matchall and try to get it
       All test results:
       1..1
       ok 1 2638 - Add matchall and try to get it
      
      Fixes: 489ce2f4 ("tc-testing: Restore original behaviour for namespaces in tdc")
      Reported-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: default avatarDavide Caratti <dcaratti@redhat.com>
      Acked-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02a3f0d5
    • David S. Miller's avatar
      Merge branch 'net-dsa-microchip-add-KSZ8563-support' · 3daa4183
      David S. Miller authored
      Razvan Stefanescu says:
      
      ====================
      net: dsa: microchip: add KSZ8563 support
      
      This patchset adds compatibility string for the KSZ8563 switch.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3daa4183
    • Razvan Stefanescu's avatar
      net: dsa: microchip: add KSZ8563 compatibility string · d9033ae9
      Razvan Stefanescu authored
      It is a 3-Port 10/100 Ethernet Switch with 1588v2 PTP.
      Signed-off-by: default avatarRazvan Stefanescu <razvan.stefanescu@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d9033ae9
    • Razvan Stefanescu's avatar
      dt-bindings: net: dsa: document additional Microchip KSZ8563 switch · de5eb9e0
      Razvan Stefanescu authored
      It is a 3-Port 10/100 Ethernet Switch with 1588v2 PTP.
      Signed-off-by: default avatarRazvan Stefanescu <razvan.stefanescu@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      de5eb9e0
    • David S. Miller's avatar
      Merge branch 'net-aquantia-fixes-on-vlan-filters-and-other-conditions' · 879c3808
      David S. Miller authored
      Igor Russkikh says:
      
      ====================
      net: aquantia: fixes on vlan filters and other conditions
      
      Here is a set of various bug fixes related to vlan filter offload and
      two other rare cases.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      879c3808
    • Dmitry Bogdanov's avatar
      net: aquantia: fix out of memory condition on rx side · be6cef69
      Dmitry Bogdanov authored
      On embedded environments with hard memory limits it is a normal although
      rare case when skb can't be allocated on rx part under high traffic.
      
      In such OOM cases napi_complete_done() was not called.
      So the napi object became in an invalid state like it is "scheduled".
      Kernel do not re-schedules the poll of that napi object.
      
      Consequently, kernel can not remove that object the system hangs on
      `ifconfig down` waiting for a poll.
      
      We are fixing this by gracefully closing napi poll routine with correct
      invocation of napi_complete_done.
      
      This was reproduced with artificially failing the allocation of skb to
      simulate an "out of memory" error case and check that traffic does
      not get stuck.
      
      Fixes: 970a2e98 ("net: ethernet: aquantia: Vector operations")
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be6cef69
    • Igor Russkikh's avatar
      net: aquantia: linkstate irq should be oneshot · 5c47e3ba
      Igor Russkikh authored
      Declaring threaded irq handler should also indicate the irq is
      oneshot. It is oneshot indeed, because HW implements irq automasking
      on trigger.
      
      Not declaring this causes some kernel configurations to fail
      on interface up, because request_threaded_irq returned an err code.
      
      The issue was originally hidden on normal x86_64 configuration with
      latest kernel, because depending on interrupt controller, irq driver
      added ONESHOT flag on its own.
      
      Issue was observed on older kernels (4.14) where no such logic exists.
      
      Fixes: 4c83f170 ("net: aquantia: link status irq handling")
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Reported-by: default avatarMichael Symolkin <Michael.Symolkin@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5c47e3ba
    • Dmitry Bogdanov's avatar
      net: aquantia: reapply vlan filters on up · c2ef057e
      Dmitry Bogdanov authored
      In case of device reconfiguration the driver may reset the device invisible
      for other modules, vlan module in particular. So vlans will not be
      removed&created and vlan filters will not be configured in the device.
      The patch reapplies the vlan filters at device start.
      
      Fixes: 7975d2af ("net: aquantia: add support of rx-vlan-filter offload")
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c2ef057e
    • Dmitry Bogdanov's avatar
      net: aquantia: fix limit of vlan filters · 392349f6
      Dmitry Bogdanov authored
      Fix a limit condition of vlans on the interface before setting vlan
      promiscuous mode
      
      Fixes: 48dd73d0 ("net: aquantia: fix vlans not working over bridged network")
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      392349f6
    • Dmitry Bogdanov's avatar
      net: aquantia: fix removal of vlan 0 · 6fdc060d
      Dmitry Bogdanov authored
      Due to absence of checking against the rx flow rule when vlan 0 is being
      removed, the other rule could be removed instead of the rule with vlan 0
      
      Fixes: 7975d2af ("net: aquantia: add support of rx-vlan-filter offload")
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6fdc060d
    • David S. Miller's avatar
      Merge branch 'Fix-issues-in-tc-taprio-and-tc-cbs' · 154f4fb7
      David S. Miller authored
      Vladimir Oltean says:
      
      ====================
      Fix issues in tc-taprio and tc-cbs
      
      This series fixes one panic and one WARN_ON found in the tc-taprio
      qdisc, while trying to apply it:
      
      - On an interface which is not multi-queue
      - On an interface which has no carrier
      
      The tc-cbs was also visually found to suffer of the same issue as
      tc-taprio, and the fix was only compile-tested in that case.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      154f4fb7
    • Vladimir Oltean's avatar
      net/sched: cbs: Set default link speed to 10 Mbps in cbs_set_port_rate · 1c6c09a0
      Vladimir Oltean authored
      The discussion to be made is absolutely the same as in the case of
      previous patch ("taprio: Set default link speed to 10 Mbps in
      taprio_set_picos_per_byte"). Nothing is lost when setting a default.
      
      Cc: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
      Fixes: e0a7683d ("net/sched: cbs: fix port_rate miscalculation")
      Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1c6c09a0
    • Vladimir Oltean's avatar
      taprio: Set default link speed to 10 Mbps in taprio_set_picos_per_byte · f04b514c
      Vladimir Oltean authored
      The taprio budget needs to be adapted at runtime according to interface
      link speed. But that handling is problematic.
      
      For one thing, installing a qdisc on an interface that doesn't have
      carrier is not illegal. But taprio prints the following stack trace:
      
      [   31.851373] ------------[ cut here ]------------
      [   31.856024] WARNING: CPU: 1 PID: 207 at net/sched/sch_taprio.c:481 taprio_dequeue+0x1a8/0x2d4
      [   31.864566] taprio: dequeue() called with unknown picos per byte.
      [   31.864570] Modules linked in:
      [   31.873701] CPU: 1 PID: 207 Comm: tc Not tainted 5.3.0-rc5-01199-g8838fe023cd6 #1689
      [   31.881398] Hardware name: Freescale LS1021A
      [   31.885661] [<c03133a4>] (unwind_backtrace) from [<c030d8cc>] (show_stack+0x10/0x14)
      [   31.893368] [<c030d8cc>] (show_stack) from [<c10ac958>] (dump_stack+0xb4/0xc8)
      [   31.900555] [<c10ac958>] (dump_stack) from [<c0349d04>] (__warn+0xe0/0xf8)
      [   31.907395] [<c0349d04>] (__warn) from [<c0349d64>] (warn_slowpath_fmt+0x48/0x6c)
      [   31.914841] [<c0349d64>] (warn_slowpath_fmt) from [<c0f38db4>] (taprio_dequeue+0x1a8/0x2d4)
      [   31.923150] [<c0f38db4>] (taprio_dequeue) from [<c0f227b0>] (__qdisc_run+0x90/0x61c)
      [   31.930856] [<c0f227b0>] (__qdisc_run) from [<c0ec82ac>] (net_tx_action+0x12c/0x2bc)
      [   31.938560] [<c0ec82ac>] (net_tx_action) from [<c0302298>] (__do_softirq+0x130/0x3c8)
      [   31.946350] [<c0302298>] (__do_softirq) from [<c03502a0>] (irq_exit+0xbc/0xd8)
      [   31.953536] [<c03502a0>] (irq_exit) from [<c03a4808>] (__handle_domain_irq+0x60/0xb4)
      [   31.961328] [<c03a4808>] (__handle_domain_irq) from [<c0754478>] (gic_handle_irq+0x58/0x9c)
      [   31.969638] [<c0754478>] (gic_handle_irq) from [<c0301a8c>] (__irq_svc+0x6c/0x90)
      [   31.977076] Exception stack(0xe8167b20 to 0xe8167b68)
      [   31.982100] 7b20: e9d4bd80 00000cc0 000000cf 00000000 e9d4bd80 c1f38958 00000cc0 c1f38960
      [   31.990234] 7b40: 00000001 000000cf 00000004 e9dc0800 00000000 e8167b70 c0f478ec c0f46d94
      [   31.998363] 7b60: 60070013 ffffffff
      [   32.001833] [<c0301a8c>] (__irq_svc) from [<c0f46d94>] (netlink_trim+0x18/0xd8)
      [   32.009104] [<c0f46d94>] (netlink_trim) from [<c0f478ec>] (netlink_broadcast_filtered+0x34/0x414)
      [   32.017930] [<c0f478ec>] (netlink_broadcast_filtered) from [<c0f47cec>] (netlink_broadcast+0x20/0x28)
      [   32.027102] [<c0f47cec>] (netlink_broadcast) from [<c0eea378>] (rtnetlink_send+0x34/0x88)
      [   32.035238] [<c0eea378>] (rtnetlink_send) from [<c0f25890>] (notify_and_destroy+0x2c/0x44)
      [   32.043461] [<c0f25890>] (notify_and_destroy) from [<c0f25e08>] (qdisc_graft+0x398/0x470)
      [   32.051595] [<c0f25e08>] (qdisc_graft) from [<c0f27a00>] (tc_modify_qdisc+0x3a4/0x724)
      [   32.059470] [<c0f27a00>] (tc_modify_qdisc) from [<c0ee4c84>] (rtnetlink_rcv_msg+0x260/0x2ec)
      [   32.067864] [<c0ee4c84>] (rtnetlink_rcv_msg) from [<c0f4a988>] (netlink_rcv_skb+0xb8/0x110)
      [   32.076172] [<c0f4a988>] (netlink_rcv_skb) from [<c0f4a170>] (netlink_unicast+0x1b4/0x22c)
      [   32.084392] [<c0f4a170>] (netlink_unicast) from [<c0f4a5e4>] (netlink_sendmsg+0x33c/0x380)
      [   32.092614] [<c0f4a5e4>] (netlink_sendmsg) from [<c0ea9f40>] (sock_sendmsg+0x14/0x24)
      [   32.100403] [<c0ea9f40>] (sock_sendmsg) from [<c0eaa780>] (___sys_sendmsg+0x214/0x228)
      [   32.108279] [<c0eaa780>] (___sys_sendmsg) from [<c0eabad0>] (__sys_sendmsg+0x50/0x8c)
      [   32.116068] [<c0eabad0>] (__sys_sendmsg) from [<c0301000>] (ret_fast_syscall+0x0/0x54)
      [   32.123938] Exception stack(0xe8167fa8 to 0xe8167ff0)
      [   32.128960] 7fa0:                   b6fa68c8 000000f8 00000003 bea142d0 00000000 00000000
      [   32.137093] 7fc0: b6fa68c8 000000f8 0052154c 00000128 5d6468a2 00000000 00000028 00558c9c
      [   32.145224] 7fe0: 00000070 bea14278 00530d64 b6e17e64
      [   32.150659] ---[ end trace 2139c9827c3e5177 ]---
      
      This happens because the qdisc ->dequeue callback gets called. Which
      again is not illegal, the qdisc will dequeue even when the interface is
      up but doesn't have carrier (and hence SPEED_UNKNOWN), and the frames
      will be dropped further down the stack in dev_direct_xmit().
      
      And, at the end of the day, for what? For calculating the initial budget
      of an interface which is non-operational at the moment and where frames
      will get dropped anyway.
      
      So if we can't figure out the link speed, default to SPEED_10 and move
      along. We can also remove the runtime check now.
      
      Cc: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
      Fixes: 7b9eba7b ("net/sched: taprio: fix picos_per_byte miscalculation")
      Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f04b514c
    • Vladimir Oltean's avatar
      taprio: Fix kernel panic in taprio_destroy · efb55222
      Vladimir Oltean authored
      taprio_init may fail earlier than this line:
      
      	list_add(&q->taprio_list, &taprio_list);
      
      i.e. due to the net device not being multi queue.
      
      Attempting to remove q from the global taprio_list when it is not part
      of it will result in a kernel panic.
      
      Fix it by matching list_add and list_del better to one another in the
      order of operations. This way we can keep the deletion unconditional
      and with lower complexity - O(1).
      
      Cc: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
      Fixes: 7b9eba7b ("net/sched: taprio: fix picos_per_byte miscalculation")
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efb55222
  9. 31 Aug, 2019 3 commits