04 Sep, 2019

14 commits

  • In addition to unlocking the OS lock, etm4_os_unlock will also
    set the os_unlock flag. Therefore let's avoid unnecessarily
    setting os_unlock flag outside of this function.

    Signed-off-by: Andrew Murray
    Reviewed-by: Suzuki K Poulose
    [Fixed capital letter for "remove" in the title]
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-10-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Andrew Murray
     
  • The ACPI bindings for CoreSight has been updated to add the device
    id for non-programmable CoreSight funnels (aka static funnels) as of
    v1.1 [0]. Add the ACPI id for static funnels in the driver.

    [0] https://static.docs.arm.com/den0067/a/DEN0067_CoreSight_ACPI_1.1.pdf

    Signed-off-by: Suzuki K Poulose
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-9-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     
  • We warn the users of obsolete bindings in the DT for coresight replicator
    and funnel drivers. However we use pr_warn_once() which doesn't give a clue
    about which device it is bound to. Let us use dev_warn_once() to give the
    context.

    Cc: Mathieu Poirier
    Signed-off-by: Suzuki K Poulose
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-8-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     
  • CoreSight TMC-ETR must have the non-secure invasive debug access
    enabled for use by self-hosted tracing. Without it, there is no
    point in enabling the ETR. So, let us check it in the TMC_AUTHSTATUS
    register and fail the probe if it is disabled.

    Cc: Mathieu Poirier
    Signed-off-by: Suzuki K Poulose
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-7-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     
  • We have so far ignored the memory errors, assuming that we have perfect
    hardware and driver. Let us handle the memory errors reported by the
    TMC ETR in status and truncate the buffer.

    Cc: Mathieu Poirier
    Signed-off-by: Suzuki K Poulose
    [Removed ASCII smiley face from changelog]
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-6-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     
  • We now use refcounts for the etr_buf users. Let us initialize it
    while we allocate it.

    Cc: Mathieu Poirier
    Signed-off-by: Suzuki K Poulose
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-5-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     
  • Add support for coresight CPU debug module on Qualcomm
    Kryo CPUs. This patch adds the UCI entries for Kryo CPUs
    found on MSM8996 which shares the same PIDs as ETMs.

    Without this, below error is observed on MSM8996:

    [ 5.429867] OF: graph: no port node found in /soc/debug@3810000
    [ 5.429938] coresight-etm4x: probe of 3810000.debug failed with error -22
    [ 5.435415] coresight-cpu-debug 3810000.debug: Coresight debug-CPU0 initialized
    [ 5.446474] OF: graph: no port node found in /soc/debug@3910000
    [ 5.448927] coresight-etm4x: probe of 3910000.debug failed with error -22
    [ 5.454681] coresight-cpu-debug 3910000.debug: Coresight debug-CPU1 initialized
    [ 5.487765] OF: graph: no port node found in /soc/debug@3a10000
    [ 5.488007] coresight-etm4x: probe of 3a10000.debug failed with error -22
    [ 5.493024] coresight-cpu-debug 3a10000.debug: Coresight debug-CPU2 initialized
    [ 5.501802] OF: graph: no port node found in /soc/debug@3b10000
    [ 5.512901] coresight-etm4x: probe of 3b10000.debug failed with error -22
    [ 5.513192] coresight-cpu-debug 3b10000.debug: Coresight debug-CPU3 initialized

    Signed-off-by: Sai Prakash Ranjan
    Tested-by: Leo Yan
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-4-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Sai Prakash Ranjan
     
  • Instead of overriding the peripheral id(PID) check in AMBA
    by hardcoding them in DT, add the PIDs to the ETM4x driver.
    Here we use Unique Component Identifier(UCI) for MSM8996
    since the ETM and CPU debug module shares the same PIDs.
    SDM845 does not support CPU debug module.

    Signed-off-by: Sai Prakash Ranjan
    Reviewed-by: Suzuki K Poulose
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-3-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Sai Prakash Ranjan
     
  • Avoid an extra function call in two function implementations
    by using a ternary operator instead of a conditional statement.

    This issue was detected by using the Coccinelle software.

    Signed-off-by: Markus Elfring
    Signed-off-by: Mathieu Poirier
    Link: https://lore.kernel.org/r/20190829202842.580-2-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Markus Elfring
     
  • …f/linux-fpga into char-misc-next

    Moritz writes:

    FPGA Manager changes for 5.4-rc1

    Here is the second set of changes for the 5.4 merge window.

    This patchset adds support for the v2 revision of Intel (Altera)'s CVP
    parts including the Stratix 10.

    All of this patches have been reviewed and been in the last few
    linux-next releases without issues.

    Signed-off-by: Moritz Fischer <mdf@kernel.org>

    * tag 'fpga-cvp-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga:
    fpga: altera-cvp: Add Stratix10 (V2) Support
    fpga: altera-cvp: Preparation for V2 parts.
    fpga: altera-cvp: Discover Vendor Specific offset

    Greg Kroah-Hartman
     
  • …t/westeri/thunderbolt into char-misc-next

    Mika writes:

    thunderbolt: Changes for v5.4 merge window

    The biggest change is the addition of Intel Ice Lake integrated
    Thunderbolt support. There are also a couple of smaller changes like
    converting the driver to use better device property interface and use
    correct format string in service key attribute.

    * tag 'thunderbolt-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt:
    ACPI / property: Add two new Thunderbolt property GUIDs to the list
    thunderbolt: Add support for Intel Ice Lake
    thunderbolt: Expose active parts of NVM even if upgrade is not supported
    thunderbolt: Hide switch attributes that are not set
    thunderbolt: Do not fail adding switch if some port is not implemented
    thunderbolt: Use 32-bit writes when writing ring producer/consumer
    thunderbolt: Move NVM upgrade support flag to struct icm
    thunderbolt: Correct path indices for PCIe tunnel
    thunderbolt: Show key using %*pE not %*pEp
    thunderbolt: Switch to use device_property_count_uXX()

    Greg Kroah-Hartman
     
  • …linux-phy into char-misc-next

    Kishon writes:

    phy: for 5.4

    *) Add a new PHY driver for Lantiq VRX200/ARX300 PCIe PHY
    *) Add missing of_node_put() to a bunch of drivers using
    for_each_available_child_of_node()
    *) Add RXAUI/PCIe/SATA/USB3 support in Marvell's Armada
    CP110 COMPHY
    *) Other misc fixes and cleanup

    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>

    * tag 'phy-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy: (30 commits)
    phy: marvell: phy-mvebu-cp110-comphy: rename instances of DLT
    phy: marvell: phy-mvebu-cp110-comphy: implement RXAUI support
    dt-bindings: pci: add PHY properties to Armada 7K/8K controller bindings
    dt-bindings: phy: Add Marvell COMPHY clocks
    phy: mvebu-cp110-comphy: Update comment about powering off all lanes at boot
    phy: mvebu-cp110-comphy: Add PCIe support
    phy: mvebu-cp110-comphy: Cosmetic change in a helper
    phy: mvebu-cp110-comphy: Add SATA support
    phy: mvebu-cp110-comphy: Add USB3 host/device support
    phy: mvebu-cp110-comphy: Allow non-Ethernet modes to be configured
    phy: mvebu-cp110-comphy: Rename the macro handling only Ethernet modes
    phy: mvebu-cp110-comphy: Add RXAUI support
    phy: mvebu-cp110-comphy: List already supported Ethernet modes
    phy: mvebu-cp110-comphy: Add SMC call support
    phy: mvebu-cp110-comphy: Explicitly initialize the lane submode
    phy: mvebu-cp110-comphy: Add clocks support
    phy-rockchip-inno-hdmi: Fix RK3328_TERM_RESISTOR_CALIB_SPEED_7_0's third value
    phy: qcom-qmp: Correct ready status, again
    phy: qualcomm: phy-qcom-qmp: Add of_node_put() before return
    phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
    ...

    Greg Kroah-Hartman
     
  • Georgi writes:

    interconnect patches for 5.4

    Here are the interconnect driver updates for the 5.4-rc1 merge window.

    - New feature is the path tagging support that helps with grouping and
    aggregating the bandwidth requests into separate buckets based on a tag.
    - The first user of the path tagging is the Qualcomm sdm845 driver that
    now implements support for wake/sleep sets. This allows consumer drivers
    to express their bandwidth needs for the different CPU power states.
    - New interconnect driver for the qcs404 platforms and a driver that
    communicates bandwidth requests with remote processor over shared memory.
    - Cleanups and fixes.

    Signed-off-by: Georgi Djakov

    * tag 'icc-5.4-rc1' of https://git.linaro.org/people/georgi.djakov/linux:
    drivers: qcom: Add BCM vote macro to header
    interconnect: qcom: remove COMPILE_TEST from CONFIG_INTERCONNECT_QCOM_QCS404
    interconnect: qcom: Add QCS404 interconnect provider driver
    interconnect: qcom: Add interconnect RPM over SMD driver
    dt-bindings: interconnect: Add Qualcomm QCS404 DT bindings
    interconnect: qcom: Add tagging and wake/sleep support for sdm845
    interconnect: Add pre_aggregate() callback
    interconnect: Add support for path tags

    Greg Kroah-Hartman
     
  • …/chanwoo/extcon into char-misc-next

    Chanwoo writes:

    Update extcon for 5.4

    Detailed description for this pull request:
    1. Clean up the and fix the minor issue of extcon provider driver
    - extcon-arizona/max77843 replace the helper function
    with more correct helper function without operation changes.
    - extcon-fsa9480 supports the FSA880 variant by adding the compatible name.
    - extcon-arizona updates the dt-binding file for the readability.
    - extcon-gpio initializes the interrupt flags according to active-low state.
    - Clean up extcon-sm5502/axp288/adc-jack

    * tag 'extcon-next-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon:
    extcon: adc-jack: Remove dev_err() usage after platform_get_irq()
    extcon: axp288: Use for_each_set_bit() in axp288_extcon_log_rsi()
    extcon: axp288: Add missed error check
    extcon: sm5502: Add IRQ_ONESHOT
    extcon: gpio: Request reasonable interrupts
    extcon: arizona: Update binding example to use available defines
    extcon: fsa9480: Support the FSA880 variant
    extcon: extcon-max77843: convert to i2c_new_dummy_device
    extcon: arizona: Switch to use device_property_count_u32()

    Greg Kroah-Hartman
     

03 Sep, 2019

4 commits

  • We need the fixes in here as well for testing and merges

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     

02 Sep, 2019

5 commits

  • 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
    ...

    Linus Torvalds
     
  • In commit 99cd149efe82 ("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: 99cd149efe82 ("sgiseeq: replace use of dma_cache_wback_inv")
    Signed-off-by: Christophe JAILLET
    Reviewed-by: Thomas Bogendoerfer
    Signed-off-by: David S. Miller

    Christophe JAILLET
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     

01 Sep, 2019

17 commits

  • 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: 19971f5ea0ab ("enetc: add PTP clock driver")
    Signed-off-by: Christophe JAILLET
    Signed-off-by: David S. Miller

    Christophe JAILLET
     
  • 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 a8f5cb9e7991 ("smsc95xx: use ethtool_op_get_ts_info()")

    Signed-off-by: Ryan M. Collins
    Acked-by: Florian Fainelli
    Acked-by: Doug Berger
    Signed-off-by: David S. Miller

    Ryan M. Collins
     
  • 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 92c1a19e2fb9
    ("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: 489ce2f42514 ("tc-testing: Restore original behaviour for namespaces in tdc")
    Reported-by: Hangbin Liu
    Signed-off-by: Davide Caratti
    Acked-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    Davide Caratti
     
  • Razvan Stefanescu says:

    ====================
    net: dsa: microchip: add KSZ8563 support

    This patchset adds compatibility string for the KSZ8563 switch.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • It is a 3-Port 10/100 Ethernet Switch with 1588v2 PTP.

    Signed-off-by: Razvan Stefanescu
    Signed-off-by: David S. Miller

    Razvan Stefanescu
     
  • It is a 3-Port 10/100 Ethernet Switch with 1588v2 PTP.

    Signed-off-by: Razvan Stefanescu
    Signed-off-by: David S. Miller

    Razvan Stefanescu
     
  • 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: David S. Miller

    David S. Miller
     
  • 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: 970a2e9864b0 ("net: ethernet: aquantia: Vector operations")
    Signed-off-by: Igor Russkikh
    Signed-off-by: Dmitry Bogdanov
    Signed-off-by: David S. Miller

    Dmitry Bogdanov
     
  • 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: 4c83f170b3ac ("net: aquantia: link status irq handling")
    Signed-off-by: Igor Russkikh
    Reported-by: Michael Symolkin
    Signed-off-by: David S. Miller

    Igor Russkikh
     
  • 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: 7975d2aff5afb ("net: aquantia: add support of rx-vlan-filter offload")
    Signed-off-by: Dmitry Bogdanov
    Signed-off-by: Igor Russkikh
    Signed-off-by: David S. Miller

    Dmitry Bogdanov
     
  • Fix a limit condition of vlans on the interface before setting vlan
    promiscuous mode

    Fixes: 48dd73d08d4dd ("net: aquantia: fix vlans not working over bridged network")
    Signed-off-by: Dmitry Bogdanov
    Signed-off-by: Igor Russkikh
    Signed-off-by: David S. Miller

    Dmitry Bogdanov
     
  • 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: 7975d2aff5afb ("net: aquantia: add support of rx-vlan-filter offload")
    Signed-off-by: Dmitry Bogdanov
    Signed-off-by: Igor Russkikh
    Signed-off-by: David S. Miller

    Dmitry Bogdanov
     
  • 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: David S. Miller

    David S. Miller
     
  • 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
    Fixes: e0a7683d30e9 ("net/sched: cbs: fix port_rate miscalculation")
    Acked-by: Vinicius Costa Gomes
    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • 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] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [ 31.893368] [] (show_stack) from [] (dump_stack+0xb4/0xc8)
    [ 31.900555] [] (dump_stack) from [] (__warn+0xe0/0xf8)
    [ 31.907395] [] (__warn) from [] (warn_slowpath_fmt+0x48/0x6c)
    [ 31.914841] [] (warn_slowpath_fmt) from [] (taprio_dequeue+0x1a8/0x2d4)
    [ 31.923150] [] (taprio_dequeue) from [] (__qdisc_run+0x90/0x61c)
    [ 31.930856] [] (__qdisc_run) from [] (net_tx_action+0x12c/0x2bc)
    [ 31.938560] [] (net_tx_action) from [] (__do_softirq+0x130/0x3c8)
    [ 31.946350] [] (__do_softirq) from [] (irq_exit+0xbc/0xd8)
    [ 31.953536] [] (irq_exit) from [] (__handle_domain_irq+0x60/0xb4)
    [ 31.961328] [] (__handle_domain_irq) from [] (gic_handle_irq+0x58/0x9c)
    [ 31.969638] [] (gic_handle_irq) from [] (__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] [] (__irq_svc) from [] (netlink_trim+0x18/0xd8)
    [ 32.009104] [] (netlink_trim) from [] (netlink_broadcast_filtered+0x34/0x414)
    [ 32.017930] [] (netlink_broadcast_filtered) from [] (netlink_broadcast+0x20/0x28)
    [ 32.027102] [] (netlink_broadcast) from [] (rtnetlink_send+0x34/0x88)
    [ 32.035238] [] (rtnetlink_send) from [] (notify_and_destroy+0x2c/0x44)
    [ 32.043461] [] (notify_and_destroy) from [] (qdisc_graft+0x398/0x470)
    [ 32.051595] [] (qdisc_graft) from [] (tc_modify_qdisc+0x3a4/0x724)
    [ 32.059470] [] (tc_modify_qdisc) from [] (rtnetlink_rcv_msg+0x260/0x2ec)
    [ 32.067864] [] (rtnetlink_rcv_msg) from [] (netlink_rcv_skb+0xb8/0x110)
    [ 32.076172] [] (netlink_rcv_skb) from [] (netlink_unicast+0x1b4/0x22c)
    [ 32.084392] [] (netlink_unicast) from [] (netlink_sendmsg+0x33c/0x380)
    [ 32.092614] [] (netlink_sendmsg) from [] (sock_sendmsg+0x14/0x24)
    [ 32.100403] [] (sock_sendmsg) from [] (___sys_sendmsg+0x214/0x228)
    [ 32.108279] [] (___sys_sendmsg) from [] (__sys_sendmsg+0x50/0x8c)
    [ 32.116068] [] (__sys_sendmsg) from [] (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
    Fixes: 7b9eba7ba0c1 ("net/sched: taprio: fix picos_per_byte miscalculation")
    Acked-by: Vinicius Costa Gomes
    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • 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
    Fixes: 7b9eba7ba0c1 ("net/sched: taprio: fix picos_per_byte miscalculation")
    Signed-off-by: Vladimir Oltean
    Acked-by: Vinicius Costa Gomes
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • Use the register value width as the regmap_config name to prevent the
    following error when the second and third regmap_configs are
    initialized.
    "debugfs: Directory '${bus-id}' with parent 'regmap' already present!"

    Signed-off-by: George McCollister
    Reviewed-by: Marek Vasut
    Signed-off-by: David S. Miller

    George McCollister