17 Feb, 2020

2 commits

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertenly introduced[3] to the codebase from now on.

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Gustavo A. R. Silva
     
  • The alarm function hadn't been supported by PTP clock driver.
    The recommended solution PHC + phc2sys + nanosleep provides
    best performance. So drop the code of alarm in ptp_qoriq driver.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     

15 Feb, 2020

4 commits

  • Pull networking fixes from David Miller:

    1) Fix interrupt name truncation in mv88e6xxx dsa driver, from Andrew
    Lunn.

    2) Process generic XDP even if SKB is cloned, from Toke Høiland-Jørgensen.

    3) Fix leak of kernel memory to userspace in smc, from Eric Dumazet.

    4) Add some missing netlink attribute validation to matchall and
    flower, from Davide Caratti.

    5) Send icmp responses properly when NAT has been applied to the frame
    before we get to the tunnel emitting the icmp, from Jason Donenfeld.

    6) Make sure there is enough SKB headroom when adding dsa tags for qca
    and ar9331. From Per Forlin.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits)
    netdevice.h: fix all kernel-doc and Sphinx warnings
    net: dsa: tag_ar9331: Make sure there is headroom for tag
    net: dsa: tag_qca: Make sure there is headroom for tag
    net, ip6_tunnel: enhance tunnel locate with link check
    net/smc: no peer ID in CLC decline for SMCD
    net/smc: transfer fasync_list in case of fallback
    net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples()
    net: hns3: fix VF bandwidth does not take effect in some case
    net: hns3: add management table after IMP reset
    mac80211: fix wrong 160/80+80 MHz setting
    cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
    xfrm: interface: use icmp_ndo_send helper
    wireguard: device: use icmp_ndo_send helper
    sunvnet: use icmp_ndo_send helper
    gtp: use icmp_ndo_send helper
    icmp: introduce helper for nat'd source address in network device context
    net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
    net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
    net/flow_dissector: remove unexist field description
    page_pool: refill page when alloc.count of pool is zero
    ...

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "Fix three issues related to the handling of wakeup events signaled
    through the ACPI SCI while suspended to idle (Rafael Wysocki) and
    unexport an internal cpufreq variable (Yangtao Li)"

    * tag 'pm-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system
    ACPICA: Introduce acpi_any_gpe_status_set()
    ACPI: PM: s2idle: Avoid possible race related to the EC GPE
    ACPI: EC: Fix flushing of pending work
    cpufreq: Make cpufreq_global_kobject static

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "The only common change is the regression fix of the previous PCM fix
    patch for managed buffers while the rest are usual suspects, USB-audio
    and HD-audio device-specific quirks.

    The change for UAC2 clock validation workaround became a bit big, but
    the changes are fairly straightforward"

    * tag 'sound-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: Fix double hw_free calls
    ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000
    ALSA: hda/realtek - Fix silent output on MSI-GL73
    ALSA: hda/realtek - Add more codec supported Headset Button
    ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
    ALSA: usb-audio: Fix UAC2/3 effect unit parsing
    ALSA: usb-audio: Apply 48kHz fixed rate playback for Jabra Evolve 65 headset

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "The core has a build fix for edid code on certain compilers/arches/,
    one MST fix and one vgem fix. Regular amdgpu fixes, and a couple of
    small driver fixes.

    The i915 fixes are bit larger than normal for this stage, but they
    were having CI issues last week, and they hadn't sent any fixes last
    week due to this.

    core:
    - edid build fix

    mst:
    - fix NULL ptr deref

    vgem:
    - fix close after free

    msm:
    - better dma-api usage

    sun4i:
    - disable allow_fb_modifiers

    amdgpu:
    - Additional OD fixes for navi
    - Misc display fixes
    - VCN 2.5 DPG fix
    - Prevent build errors on PowerPC on some configs
    - GDS EDC fix

    i915:
    - dsi/acpi fixes
    - gvt locking and allocation fixes
    - gem/gt fixes
    - bios timing parameters fix"

    * tag 'drm-fixes-2020-02-14' of git://anongit.freedesktop.org/drm/drm: (50 commits)
    drm/i915: Mark the removal of the i915_request from the sched.link
    drm/i915/execlists: Reclaim the hanging virtual request
    drm/i915/execlists: Take a reference while capturing the guilty request
    drm/i915/execlists: Offline error capture
    drm/i915/gt: Allow temporary suspension of inflight requests
    drm/i915: Keep track of request among the scheduling lists
    drm/i915/gem: Tighten checks and acquiring the mmap object
    drm/i915: Fix preallocated barrier list append
    drm/i915/gt: Acquire ce->active before ce->pin_count/ce->pin_mutex
    drm/i915: Tighten atomicity of i915_active_acquire vs i915_active_release
    drm/i915: Stub out i915_gpu_coredump_put
    drm/amdgpu:/navi10: use the ODCAP enum to index the caps array
    drm/amdgpu: update smu_v11_0_pptable.h
    drm/amdgpu: correct comment to clear up the confusion
    drm/amd/display: DCN2.x Do not program DPPCLK if same value
    drm/amd/display: Don't map ATOM_ENABLE to ATOM_INIT
    drm/amdgpu/vcn2.5: fix warning
    drm/amdgpu: limit GDS clearing workaround in cold boot sequence
    drm/amdgpu: fix amdgpu pmu to use hwc->config instead of hwc->conf
    amdgpu: Prevent build errors regarding soft/hard-float FP ABI tags
    ...

    Linus Torvalds
     

14 Feb, 2020

34 commits

  • Eliminate all kernel-doc and Sphinx warnings in
    . Fixes these warnings:

    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'gso_partial_features' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'l3mdev_ops' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xfrmdev_ops' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'tlsdev_ops' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'name_assign_type' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'ieee802154_ptr' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'mpls_ptr' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xdp_prog' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'gro_flush_timeout' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xdp_bulkq' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xps_cpus_map' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xps_rxqs_map' not described in 'net_device'
    ../include/linux/netdevice.h:2100: warning: Function parameter or member 'qdisc_hash' not described in 'net_device'
    ../include/linux/netdevice.h:3552: WARNING: Inline emphasis start-string without end-string.
    ../include/linux/netdevice.h:3552: WARNING: Inline emphasis start-string without end-string.

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • Per Forlin says:

    ====================
    net: dsa: Make sure there is headroom for tag

    Sorry for re-posting yet another time....
    I manage to include multiple email-senders and forgot to include cover-letter.
    Let's hope everyhthing is in order this time.

    Fix two tag drivers to make sure there is headroom for the tag data.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Passing tag size to skb_cow_head will make sure
    there is enough headroom for the tag data.
    This change does not introduce any overhead in case there
    is already available headroom for tag.

    Signed-off-by: Per Forlin
    Reviewed-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Per Forlin
     
  • Passing tag size to skb_cow_head will make sure
    there is enough headroom for the tag data.
    This change does not introduce any overhead in case there
    is already available headroom for tag.

    Signed-off-by: Per Forlin
    Reviewed-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Per Forlin
     
  • With ipip, it is possible to create an extra interface explicitly
    attached to a given physical interface:

    # ip link show tunl0
    4: tunl0@NONE: mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
    # ip link add tunl1 type ipip dev eth0
    # ip link show tunl1
    6: tunl1@eth0: mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0

    But it is not possible with ip6tnl:

    # ip link show ip6tnl0
    5: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/tunnel6 :: brd ::
    # ip link add ip6tnl1 type ip6tnl dev eth0
    RTNETLINK answers: File exists

    This patch aims to make it possible by adding link comparaison in both
    tunnel locate and lookup functions; we also modify mtu calculation when
    attached to an interface with a lower mtu.

    This permits to make use of x-netns communication by moving the newly
    created tunnel in a given netns.

    Signed-off-by: William Dauchy
    Reviewed-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    William Dauchy
     
  • …rnel/git/jberg/mac80211

    Johannes Berg says:

    ====================
    Just a few fixes:
    * avoid running out of tracking space for frames that need
    to be reported to userspace by using more bits
    * fix beacon handling suppression by adding some relevant
    elements to the CRC calculation
    * fix quiet mode in action frames
    * fix crash in ethtool for virt_wifi and similar
    * add a missing policy entry
    * fix 160 & 80+80 bandwidth to take local capabilities into
    account
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • Karsten Graul says:

    ====================
    net/smc: fixes for -net

    Fix a syzbot finding and a problem with the CLC handshake content.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Just SMCR requires a CLC Peer ID, but not SMCD. The field should be
    zero for SMCD.

    Fixes: c758dfddc1b5 ("net/smc: add SMC-D support in CLC messages")
    Signed-off-by: Ursula Braun
    Signed-off-by: Karsten Graul
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • SMC does not work together with FASTOPEN. If sendmsg() is called with
    flag MSG_FASTOPEN in SMC_INIT state, the SMC-socket switches to
    fallback mode. To handle the previous ioctl FIOASYNC call correctly
    in this case, it is necessary to transfer the socket wait queue
    fasync_list to the internal TCP socket.

    Reported-by: syzbot+4b1fe8105f8044a26162@syzkaller.appspotmail.com
    Fixes: ee9dfbef02d18 ("net/smc: handle sockopts forcing fallback")
    Signed-off-by: Ursula Braun
    Signed-off-by: Karsten Graul
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Huazhong Tan says:

    ====================
    net: hns3: fixes for -net

    This series includes three bugfixes for the HNS3 ethernet driver.

    [patch 1] fixes a management table lost issue after IMP reset.
    [patch 2] fixes a VF bandwidth configuration not work problem.
    [patch 3] fixes a problem related to IPv6 address copying.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The IPv6 address defined in struct in6_addr is specified as
    big endian, but there is no specified endian in struct
    hclge_fd_rule_tuples, so it will cause a problem if directly
    use memcpy() to copy ipv6 address between these two structures
    since this field in struct hclge_fd_rule_tuples is little endian.

    This patch fixes this problem by using be32_to_cpu() to convert
    endian of IPv6 address of struct in6_addr before copying.

    Fixes: d93ed94fbeaf ("net: hns3: add aRFS support for PF")
    Signed-off-by: Guangbin Huang
    Signed-off-by: Huazhong Tan
    Signed-off-by: David S. Miller

    Guangbin Huang
     
  • When enabling 4 TC after setting the bandwidth of VF, the bandwidth
    of VF will resume to default value, because of the qset resources
    changed in this case.

    This patch fixes it by using a fixed VF's qset resources according to
    HNAE3_MAX_TC macro.

    Fixes: ee9e44248f52 ("net: hns3: add support for configuring bandwidth of VF on the host")
    Signed-off-by: Yonglong Liu
    Signed-off-by: Huazhong Tan
    Signed-off-by: David S. Miller

    Yonglong Liu
     
  • In the current process, the management table is missing after the
    IMP reset. This patch adds the management table to the reset process.

    Fixes: f5aac71c0327 ("net: hns3: add manager table initialization for hardware")
    Signed-off-by: Yufeng Mo
    Signed-off-by: Huazhong Tan
    Signed-off-by: David S. Miller

    Yufeng Mo
     
  • * pm-cpufreq:
    cpufreq: Make cpufreq_global_kobject static

    Rafael J. Wysocki
     
  • Before this patch, STA's would set new width of 160/80+80 MHz based on AP capability only.
    This is wrong because STA may not support > 80MHz BW.
    Fix is to verify STA has 160/80+80 MHz capability before increasing its width to > 80MHz.

    The "support_80_80" and "support_160" setting is based on:
    "Table 9-272 — Setting of the Supported Channel Width Set subfield and Extended NSS BW
    Support subfield at a STA transmitting the VHT Capabilities Information field"
    From "Draft P802.11REVmd_D3.0.pdf"

    Signed-off-by: Aviad Brikman
    Signed-off-by: Shay Bar
    Link: https://lore.kernel.org/r/20200210130728.23674-1-shay.bar@celeno.com
    Signed-off-by: Johannes Berg

    Shay Bar
     
  • The nl80211_policy is missing for NL80211_ATTR_STATUS_CODE attribute.
    As a result, for strictly validated commands, it's assumed to not be
    supported.

    Signed-off-by: Sergey Matyukevich
    Link: https://lore.kernel.org/r/20200213131608.10541-2-sergey.matyukevich.os@quantenna.com
    Signed-off-by: Johannes Berg

    Sergey Matyukevich
     
  • …/drm-intel into drm-fixes

    drm/i915 fixes for v5.6-rc2

    Most of these were aimed at a "next fixes" pull already during the merge
    window, but there were issues with the baseline I used, which resulted
    in a lot of issues in CI. I've regenerated this stuff piecemeal now,
    adding gradually to it, and it seems healthy now.

    Due to the issues this is much bigger than I'd like. But it was
    obviously necessary to take the time to ensure it's not garbage...

    Signed-off-by: Dave Airlie <airlied@redhat.com>

    From: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/878sl6yfrn.fsf@intel.com

    Dave Airlie
     
  • amd-drm-fixes-5.6-2020-02-12:

    amdgpu:
    - Additional OD fixes for navi
    - Misc display fixes
    - VCN 2.5 DPG fix
    - Prevent build errors on PowerPC on some configs
    - GDS EDC fix

    Signed-off-by: Dave Airlie
    From: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20200212224746.3992-1-alexander.deucher@amd.com

    Dave Airlie
     
  • …drm-misc into drm-fixes

    drm-misc-next fixes for v5.6:
    - Fix build error in drm/edid.
    - Plug close-after-free race in vgem_gem_create.
    - Handle CONFIG_DMA_API_DEBUG_SG better in drm/msm.

    Signed-off-by: Dave Airlie <airlied@redhat.com>

    From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/551b6183-a581-9d12-10a9-24cd929de425@linux.intel.com

    Dave Airlie
     
  • Fixes for v5.6:
    - Revert allow_fb_modifiers in sun4i, as it causes a regression for DE2 and DE3.
    - Fix null pointer deref in drm_dp_mst_process_up_req().

    Signed-off-by: Dave Airlie

    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/672810c3-4212-0a46-337b-2cb855573fd2@linux.intel.com

    Dave Airlie
     
  • Pull arm64 fixes from Will Deacon:
    "Summary below, but it's all reasonably straightforward. There are some
    more fixes on the horizon, but nothing disastrous yet.

    Summary:

    - Fix build when KASLR is enabled but CONFIG_ARCH_RANDOM is not set

    - Fix context-switching of SSBS state on systems that implement it

    - Fix spinlock compiler warning introduced during the merge window

    - Fix incorrect header inclusion (linux/clk-provider.h)

    - Use SYSCTL_{ZERO,ONE} instead of rolling our own static variables

    - Don't scream if optional SMMUv3 PMU irq is missing

    - Remove some unused function prototypes"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: time: Replace by
    arm64: Fix CONFIG_ARCH_RANDOM=n build
    perf/smmuv3: Use platform_get_irq_optional() for wired interrupt
    arm64/spinlock: fix a -Wunused-function warning
    arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
    arm64: use shared sysctl constants
    arm64: Drop do_el0_ia_bp_hardening() & do_sp_pc_abort() declarations

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:

    - Revert two patches to gpio_do_set_config() and implement the proper
    solution that works, also drop an unecessary call in set_config()

    - Fix up the lockdep class for hierarchical IRQ domains.

    - Remove some bridge code for line directions.

    - Fix a register access bug in the Xilinx driver.

    * tag 'gpio-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: sifive: fix static checker warning
    spmi: pmic-arb: Set lockdep class for hierarchical irq domains
    gpio: xilinx: Fix bug where the wrong GPIO register is written to
    gpiolib: remove unnecessary argument from set_config call
    gpio: bd71828: Remove unneeded defines for GPIO_LINE_DIRECTION_IN/OUT
    MAINTAINERS: Sort entries in database for GPIO
    gpiolib: fix gpio_do_set_config()
    Revert "gpiolib: remove set but not used variable 'config'"
    Revert "gpiolib: Remove duplicated function gpio_do_set_config()"

    Linus Torvalds
     
  • Jason A. Donenfeld says:

    ====================
    icmp: account for NAT when sending icmps from ndo layer

    The ICMP routines use the source address for two reasons:

    1. Rate-limiting ICMP transmissions based on source address, so
    that one source address cannot provoke a flood of replies. If
    the source address is wrong, the rate limiting will be
    incorrectly applied.

    2. Choosing the interface and hence new source address of the
    generated ICMP packet. If the original packet source address
    is wrong, ICMP replies will be sent from the wrong source
    address, resulting in either a misdelivery, infoleak, or just
    general network admin confusion.

    Most of the time, the icmp_send and icmpv6_send routines can just reach
    down into the skb's IP header to determine the saddr. However, if
    icmp_send or icmpv6_send is being called from a network device driver --
    there are a few in the tree -- then it's possible that by the time
    icmp_send or icmpv6_send looks at the packet, the packet's source
    address has already been transformed by SNAT or MASQUERADE or some other
    transformation that CONNTRACK knows about. In this case, the packet's
    source address is most certainly the *wrong* source address to be used
    for the purpose of ICMP replies.

    Rather, the source address we want to use for ICMP replies is the
    original one, from before the transformation occurred.

    Fortunately, it's very easy to just ask CONNTRACK if it knows about this
    packet, and if so, how to fix it up. The saddr is the only field in the
    header we need to fix up, for the purposes of the subsequent processing
    in the icmp_send and icmpv6_send functions, so we do the lookup very
    early on, so that the rest of the ICMP machinery can progress as usual.

    Changes v3->v4:
    - Add back the skb_shared checking, since the previous assumption isn't
    actually true [Eric]. This implies dropping the additional patches v3 had
    for removing skb_share_check from various drivers. We can revisit that
    general set of ideas later, but that's probably better suited as a net-next
    patchset rather than this stable one which is geared at fixing bugs. So,
    this implements things in the safe conservative way.

    Changes v2->v3:
    - Add selftest to ensure this actually does what we want and never regresses.
    - Check the size of the skb header before operating on it.
    - Use skb_ensure_writable to ensure we can modify the cloned skb [Florian].
    - Conditionalize this on IPS_SRC_NAT so we don't do anything unnecessarily
    [Florian].
    - It turns out that since we're calling these from the xmit path,
    skb_share_check isn't required, so remove that [Florian]. This simplifes the
    code a bit too. **The supposition here is that skbs passed to ndo_start_xmit
    are _never_ shared. If this is not correct NOW IS THE TIME TO PIPE UP, for
    doom awaits us later.**
    - While investigating the shared skb business, several drivers appeared to be
    calling it incorrectly in the xmit path, so this series also removes those
    unnecessary calls, based on the supposition mentioned in the previous point.

    Changes v1->v2:
    - icmpv6 takes subtly different types than icmpv4, like u32 instead of be32,
    u8 instead of int.
    - Since we're technically writing to the skb, we need to make sure it's not
    a shared one [Dave, 2017].
    - Restore the original skb data after icmp_send returns. All current users
    are freeing the packet right after, so it doesn't matter, but future users
    might not.
    - Remove superfluous route lookup in sunvnet [Dave].
    - Use NF_NAT instead of NF_CONNTRACK for condition [Florian].
    - Include this cover letter [Dave].
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Because xfrmi is calling icmp from network device context, it should use
    the ndo helper so that the rate limiting applies correctly.

    Signed-off-by: Jason A. Donenfeld
    Cc: Nicolas Dichtel
    Cc: Steffen Klassert
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     
  • Because wireguard is calling icmp from network device context, it should
    use the ndo helper so that the rate limiting applies correctly. This
    commit adds a small test to the wireguard test suite to ensure that the
    new functions continue doing the right thing in the context of
    wireguard. It does this by setting up a condition that will definately
    evoke an icmp error message from the driver, but along a nat'd path.

    Signed-off-by: Jason A. Donenfeld
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     
  • Because sunvnet is calling icmp from network device context, it should use
    the ndo helper so that the rate limiting applies correctly. While we're
    at it, doing the additional route lookup before calling icmp_ndo_send is
    superfluous, since this is the job of the icmp code in the first place.

    Signed-off-by: Jason A. Donenfeld
    Cc: Shannon Nelson
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     
  • Because gtp is calling icmp from network device context, it should use
    the ndo helper so that the rate limiting applies correctly.

    Signed-off-by: Jason A. Donenfeld
    Cc: Harald Welte
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     
  • This introduces a helper function to be called only by network drivers
    that wraps calls to icmp[v6]_send in a conntrack transformation, in case
    NAT has been used. We don't want to pollute the non-driver path, though,
    so we introduce this as a helper to be called by places that actually
    make use of this, as suggested by Florian.

    Signed-off-by: Jason A. Donenfeld
    Cc: Florian Westphal
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     
  • Pull crypto fix from Herbert Xu:
    "This fixes a Kconfig anomaly when lib/crypto is enabled without Crypto
    API"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: Kconfig - allow tests to be disabled when manager is disabled

    Linus Torvalds
     
  • Davide Caratti says:

    ====================
    add missing validation of 'skip_hw/skip_sw'

    ensure that all classifiers currently supporting HW offload
    validate the 'flags' parameter provided by user:

    - patch 1/2 fixes cls_matchall
    - patch 2/2 fixes cls_flower
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • unlike other classifiers that can be offloaded (i.e. users can set flags
    like 'skip_hw' and 'skip_sw'), 'cls_flower' doesn't validate the size of
    netlink attribute 'TCA_FLOWER_FLAGS' provided by user: add a proper entry
    to fl_policy.

    Fixes: 5b33f48842fa ("net/flower: Introduce hardware offload support")
    Signed-off-by: Davide Caratti
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Davide Caratti
     
  • unlike other classifiers that can be offloaded (i.e. users can set flags
    like 'skip_hw' and 'skip_sw'), 'cls_matchall' doesn't validate the size
    of netlink attribute 'TCA_MATCHALL_FLAGS' provided by user: add a proper
    entry to mall_policy.

    Fixes: b87f7936a932 ("net/sched: Add match-all classifier hw offloading.")
    Signed-off-by: Davide Caratti
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Davide Caratti
     
  • @thoff has moved to struct flow_dissector_key_control.

    Fixes: 42aecaa9bb2b ("net: Get skb hash over flow_keys structure")
    Signed-off-by: Hangbin Liu
    Signed-off-by: David S. Miller

    Hangbin Liu
     
  • "do {} while" in page_pool_refill_alloc_cache will always
    refill page once whether refill is true or false, and whether
    alloc.count of pool is less than PP_ALLOC_CACHE_REFILL or not
    this is wrong, and will cause overflow of pool->alloc.cache

    the caller of __page_pool_get_cached should provide guarantee
    that pool->alloc.cache is safe to access, so in_serving_softirq
    should be removed as suggested by Jesper Dangaard Brouer in
    https://patchwork.ozlabs.org/patch/1233713/

    so fix this issue by calling page_pool_refill_alloc_cache()
    only when pool->alloc.count is zero

    Fixes: 44768decb7c0 ("page_pool: handle page recycle for NUMA_NO_NODE condition")
    Signed-off-by: Li RongQing
    Suggested-by: Jesper Dangaard Brouer
    Acked-by: Jesper Dangaard Brouer
    Acked-by: Ilias Apalodimas
    Signed-off-by: David S. Miller

    Li RongQing