14 Nov, 2020

2 commits

  • Step 8 of:
    https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/BINUTILS_KERNEL_DEPRECATION.md

    Bug: 141693040
    Signed-off-by: Nick Desaulniers
    Change-Id: I9d1621f6484c0402a7518ffb12a3f8f3815f43a9

    Nick Desaulniers
     
  • clang-10 had a bug where it did not accept 64b GPR operands to LSL (not
    "logical shift left" but "load segment limit").

    It's common within the kernel to work around broken or missing assembler
    support by putting raw encodings inline. We can roughtly approximate
    register only operands with the macro:

    .macro LSL opd
    REG_TYPE lsl_opd_type \opd
    .if lsl_opd_type == REG_TYPE_R64
    R64_NUM lsl_opd \opd
    PFX_REX 0 0 1
    .else
    R32_NUM lsl_opd \opd
    .endif
    .byte 0x0f, 0x03
    MODRM 0xc0 lsl_opd 0x0
    .endm

    in arch/x86/asm/inst.h, but this doesn't handle memory operands. Since
    this macro is only ever expanded currently with %rax, hardcode the
    instruction encoding for now to unblock enabling LLVM_IAS=1 for x86.

    Once AOSP LLVM is upgraded to a point where it contains the fix, this
    should be reverted.

    Bug: 141693040
    Bug: 171348143
    Link: https://github.com/ClangBuiltLinux/linux/issues/1079
    Link: https://github.com/llvm/llvm-project/commit/3c2a56a857227b6bc39285747269f02cd7a9dbe5
    Signed-off-by: Nick Desaulniers
    Change-Id: I8c80f3e7883d4b0774dfd1642e31b0793c5f86ed

    Nick Desaulniers
     

13 Nov, 2020

20 commits

  • 1KB command line is insufficient to boot cuttlefish for ARM.

    Increase it to 2KB to match ARM64.

    Bug: 165410044
    Change-Id: Icc230926c1c01e4fe82944e1fe0f8c6f068110ea
    Signed-off-by: Alistair Delva

    Alistair Delva
     
  • Nothing seems to support booting uncompressed ARM 32-bit kernels, and
    everything supports zImage, so change the default on 32-bit to zImage.

    More information about this:
    http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html

    Bug: 165410044
    Test: booted zImage on cuttlefish
    Change-Id: I130d38737643dc092900e57e117ac268f6a9bd07
    Signed-off-by: Alistair Delva

    Alistair Delva
     
  • Allow variant function "prepare_command" to return error
    code. This is useful for vendors to halt or retry command
    execution if needed.

    Signed-off-by: Stanley Chu

    Bug: 172874931
    Change-Id: Ibe327ab39b83644a1c5a29d821f01c08eb7ea6f1
    Signed-off-by: Stanley Chu

    Stanley Chu
     
  • We have lba and length for unmap commands.

    Bug: 70910891
    Bug: 172970877
    Link: https://lore.kernel.org/linux-scsi/20201112165950.518952-1-jaegeuk@kernel.org/T/#u
    Signed-off-by: Leo Liou
    Change-Id: I8426785f41fa9d7771aa0c095cf43eb0d7f40253

    Leo Liou
     
  • …cm/fs/fscrypt/fscrypt") into android-mainline

    Steps on the way to 5.10-rc4

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I8554ba37704bee02192ff6117d4909fde568fca2

    Greg Kroah-Hartman
     
  • Pull fscrypt fix from Eric Biggers:
    "Fix a regression where new files weren't using inline encryption when
    they should be"

    * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    fscrypt: fix inline encryption not used on new files

    Linus Torvalds
     
  • Pull gfs2 fixes from Andreas Gruenbacher:
    "Fix jdata data corruption and glock reference leak"

    * tag 'gfs2-v5.10-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
    gfs2: Fix case in which ail writes are done to jdata holes
    Revert "gfs2: Ignore journal log writes for jdata holes"
    gfs2: fix possible reference leak in gfs2_check_blk_type

    Linus Torvalds
     
  • Pull networking fixes from Jakub Kicinski:
    "Current release - regressions:

    - arm64: dts: fsl-ls1028a-kontron-sl28: specify in-band mode for
    ENETC

    Current release - bugs in new features:

    - mptcp: provide rmem[0] limit offset to fix oops

    Previous release - regressions:

    - IPv6: Set SIT tunnel hard_header_len to zero to fix path MTU
    calculations

    - lan743x: correctly handle chips with internal PHY

    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE

    - mlx5e: Fix VXLAN port table synchronization after function reload

    Previous release - always broken:

    - bpf: Zero-fill re-used per-cpu map element

    - fix out-of-order UDP packets when forwarding with UDP GSO fraglists
    turned on:
    - fix UDP header access on Fast/frag0 UDP GRO
    - fix IP header access and skb lookup on Fast/frag0 UDP GRO

    - ethtool: netlink: add missing netdev_features_change() call

    - net: Update window_clamp if SOCK_RCVBUF is set

    - igc: Fix returning wrong statistics

    - ch_ktls: fix multiple leaks and corner cases in Chelsio TLS offload

    - tunnels: Fix off-by-one in lower MTU bounds for ICMP/ICMPv6 replies

    - r8169: disable hw csum for short packets on all chip versions

    - vrf: Fix fast path output packet handling with async Netfilter
    rules"

    * tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits)
    lan743x: fix use of uninitialized variable
    net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO
    net: udp: fix UDP header access on Fast/frag0 UDP GRO
    devlink: Avoid overwriting port attributes of registered port
    vrf: Fix fast path output packet handling with async Netfilter rules
    cosa: Add missing kfree in error path of cosa_write
    net: switch to the kernel.org patchwork instance
    ch_ktls: stop the txq if reaches threshold
    ch_ktls: tcb update fails sometimes
    ch_ktls/cxgb4: handle partial tag alone SKBs
    ch_ktls: don't free skb before sending FIN
    ch_ktls: packet handling prior to start marker
    ch_ktls: Correction in middle record handling
    ch_ktls: missing handling of header alone
    ch_ktls: Correction in trimmed_len calculation
    cxgb4/ch_ktls: creating skbs causes panic
    ch_ktls: Update cheksum information
    ch_ktls: Correction in finding correct length
    cxgb4/ch_ktls: decrypted bit is not enough
    net/x25: Fix null-ptr-deref in x25_connect
    ...

    Linus Torvalds
     
  • Pull NFS client bugfixes from Anna Schumaker:
    "Stable fixes:
    - Fix failure to unregister shrinker

    Other fixes:
    - Fix unnecessary locking to clear up some contention
    - Fix listxattr receive buffer size
    - Fix default mount options for nfsroot"

    * tag 'nfs-for-5.10-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
    NFS: Remove unnecessary inode lock in nfs_fsync_dir()
    NFS: Remove unnecessary inode locking in nfs_llseek_dir()
    NFS: Fix listxattr receive buffer size
    NFSv4.2: fix failure to unregister shrinker
    nfsroot: Default mount option should ask for built-in NFS version

    Linus Torvalds
     
  • Pull ACPI fixes from Rafael Wysocki:
    "These are mostly docmentation fixes and janitorial changes plus some
    new device IDs and a new quirk.

    Specifics:

    - Fix documentation regarding GPIO properties (Andy Shevchenko)

    - Fix spelling mistakes in ACPI documentation (Flavio Suligoi)

    - Fix white space inconsistencies in ACPI code (Maximilian Luz)

    - Fix string formatting in the ACPI Generic Event Device (GED) driver
    (Nick Desaulniers)

    - Add Intel Alder Lake device IDs to the ACPI drivers used by the
    Dynamic Platform and Thermal Framework (Srinivas Pandruvada)

    - Add lid-related DMI quirk for Medion Akoya E2228T to the ACPI
    button driver (Hans de Goede)"

    * tag 'acpi-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: DPTF: Support Alder Lake
    Documentation: ACPI: fix spelling mistakes
    ACPI: button: Add DMI quirk for Medion Akoya E2228T
    ACPI: GED: fix -Wformat
    ACPI: Fix whitespace inconsistencies
    ACPI: scan: Fix acpi_dma_configure_id() kerneldoc name
    Documentation: firmware-guide: gpio-properties: Clarify initial output state
    Documentation: firmware-guide: gpio-properties: active_low only for GpioIo()
    Documentation: firmware-guide: gpio-properties: Fix factual mistakes

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "Make the intel_pstate driver behave as expected when it operates in
    the passive mode with HWP enabled and the 'powersave' governor on top
    of it"

    * tag 'pm-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: intel_pstate: Take CPUFREQ_GOV_STRICT_TARGET into account
    cpufreq: Add strict_target to struct cpufreq_policy
    cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET
    cpufreq: Introduce governor flags

    Linus Torvalds
     
  • When no devicetree is present, the driver will use an
    uninitialized variable.

    Fix by initializing this variable.

    Fixes: 902a66e08cea ("lan743x: correctly handle chips with internal PHY")
    Reported-by: kernel test robot
    Signed-off-by: Sven Van Asbroeck
    Link: https://lore.kernel.org/r/20201112152513.1941-1-TheSven73@gmail.com
    Signed-off-by: Jakub Kicinski

    Sven Van Asbroeck
     
  • Alexander Lobakin says:

    ====================
    net: udp: fix Fast/frag0 UDP GRO

    While testing UDP GSO fraglists forwarding through driver that uses
    Fast GRO (via napi_gro_frags()), I was observing lots of out-of-order
    iperf packets:

    [ ID] Interval Transfer Bitrate Jitter
    [SUM] 0.0-40.0 sec 12106 datagrams received out-of-order

    Simple switch to napi_gro_receive() or any other method without frag0
    shortcut completely resolved them.

    I've found two incorrect header accesses in GRO receive callback(s):
    - udp_hdr() (instead of udp_gro_udphdr()) that always points to junk
    in "fast" mode and could probably do this in "regular".
    This was the actual bug that caused all out-of-order delivers;
    - udp{4,6}_lib_lookup_skb() -> ip{,v6}_hdr() (instead of
    skb_gro_network_header()) that potentionally might return odd
    pointers in both modes.

    Each patch addresses one of these two issues.

    This doesn't cover a support for nested tunnels as it's out of the
    subject and requires more invasive changes. It will be handled
    separately in net-next series.

    Credits:
    Cc: Eric Dumazet
    Cc: Jakub Kicinski
    Cc: Willem de Bruijn

    Since v4 [0]:
    - split the fix into two logical ones (Willem);
    - replace ternaries with plain ifs to beautify the code (Jakub);
    - drop p->data part to reintroduce it later in abovementioned set.

    Since v3 [1]:
    - restore the original {,__}udp{4,6}_lib_lookup_skb() and use
    private versions of them inside GRO code (Willem).

    Since v2 [2]:
    - dropped redundant check introduced in v2 as it's performed right
    before (thanks to Eric);
    - udp_hdr() switched to data + off for skbs from list (also Eric);
    - fixed possible malfunction of {,__}udp{4,6}_lib_lookup_skb() with
    Fast/frag0 due to ip{,v6}_hdr() usage (Willem).

    Since v1 [3]:
    - added a NULL pointer check for "uh" as suggested by Willem.

    [0] https://lore.kernel.org/netdev/Ha2hou5eJPcblo4abjAqxZRzIl1RaLs2Hy0oOAgFs@cp4-web-036.plabs.ch
    [1] https://lore.kernel.org/netdev/MgZce9htmEtCtHg7pmWxXXfdhmQ6AHrnltXC41zOoo@cp7-web-042.plabs.ch
    [2] https://lore.kernel.org/netdev/0eaG8xtbtKY1dEKCTKUBubGiC9QawGgB3tVZtNqVdY@cp4-web-030.plabs.ch
    [3] https://lore.kernel.org/netdev/YazU6GEzBdpyZMDMwJirxDX7B4sualpDG68ADZYvJI@cp4-web-034.plabs.ch
    ====================

    Link: https://lore.kernel.org/r/hjGOh0iCOYyo1FPiZh6TMXcx3YCgNs1T1eGKLrDz8@cp4-web-037.plabs.ch
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • udp{4,6}_lib_lookup_skb() use ip{,v6}_hdr() to get IP header of the
    packet. While it's probably OK for non-frag0 paths, this helpers
    will also point to junk on Fast/frag0 GRO when all headers are
    located in frags. As a result, sk/skb lookup may fail or give wrong
    results. To support both GRO modes, skb_gro_network_header() might
    be used. To not modify original functions, add private versions of
    udp{4,6}_lib_lookup_skb() only to perform correct sk lookups on GRO.

    Present since the introduction of "application-level" UDP GRO
    in 4.7-rc1.

    Misc: replace totally unneeded ternaries with plain ifs.

    Fixes: a6024562ffd7 ("udp: Add GRO functions to UDP socket")
    Suggested-by: Willem de Bruijn
    Cc: Eric Dumazet
    Signed-off-by: Alexander Lobakin
    Acked-by: Willem de Bruijn
    Signed-off-by: Jakub Kicinski

    Alexander Lobakin
     
  • UDP GRO uses udp_hdr(skb) in its .gro_receive() callback. While it's
    probably OK for non-frag0 paths (when all headers or even the entire
    frame are already in skb head), this inline points to junk when
    using Fast GRO (napi_gro_frags() or napi_gro_receive() with only
    Ethernet header in skb head and all the rest in the frags) and breaks
    GRO packet compilation and the packet flow itself.
    To support both modes, skb_gro_header_fast() + skb_gro_header_slow()
    are typically used. UDP even has an inline helper that makes use of
    them, udp_gro_udphdr(). Use that instead of troublemaking udp_hdr()
    to get rid of the out-of-order delivers.

    Present since the introduction of plain UDP GRO in 5.0-rc1.

    Fixes: e20cf8d3f1f7 ("udp: implement GRO for plain UDP sockets.")
    Cc: Eric Dumazet
    Signed-off-by: Alexander Lobakin
    Acked-by: Willem de Bruijn
    Signed-off-by: Jakub Kicinski

    Alexander Lobakin
     
  • Patch b2a846dbef4e ("gfs2: Ignore journal log writes for jdata holes")
    tried (unsuccessfully) to fix a case in which writes were done to jdata
    blocks, the blocks are sent to the ail list, then a punch_hole or truncate
    operation caused the blocks to be freed. In other words, the ail items
    are for jdata holes. Before b2a846dbef4e, the jdata hole caused function
    gfs2_block_map to return -EIO, which was eventually interpreted as an
    IO error to the journal, and then withdraw.

    This patch changes function gfs2_get_block_noalloc, which is only used
    for jdata writes, so it returns -ENODATA rather than -EIO, and when
    -ENODATA is returned to gfs2_ail1_start_one, the error is ignored.
    We can safely ignore it because gfs2_ail1_start_one is only called
    when the jdata pages have already been written and truncated, so the
    ail1 content no longer applies.

    Signed-off-by: Bob Peterson
    Signed-off-by: Andreas Gruenbacher

    Bob Peterson
     
  • This reverts commit b2a846dbef4ef54ef032f0f5ee188c609a0278a7.

    That commit changed the behavior of function gfs2_block_map to return
    -ENODATA in cases where a hole (IOMAP_HOLE) is encountered and create is
    false. While that fixed the intended problem for jdata, it also broke
    other callers of gfs2_block_map such as some jdata block reads. Before
    the patch, an encountered hole would be skipped and the buffer seen as
    unmapped by the caller. The patch changed the behavior to return
    -ENODATA, which is interpreted as an error by the caller.

    The -ENODATA return code should be restricted to the specific case where
    jdata holes are encountered during ail1 writes. That will be done in a
    later patch.

    Signed-off-by: Bob Peterson
    Signed-off-by: Andreas Gruenbacher

    Bob Peterson
     
  • The FUSE_PASSTHROUGH flag has a conflict with linux-next, in which this id
    has been reserved for other purposes.
    Update FUSE_PASSTHROUGH bit id to one that has not been reserved upstream
    yet.

    Bug: 168023149
    Fixes: 314603f83de1 ("FROMLIST: fuse: Definitions and ioctl() for passthrough")
    Link: https://lore.kernel.org/lkml/20201026125016.1905945-2-balsini@android.com/
    Signed-off-by: Alessio Balsini
    Change-Id: Ida0097fd2f9adee3bc85526dc6c78c7a87ac8f13

    Alessio Balsini
     
  • Tony Nguyen says:

    ====================
    Intel Wired LAN Driver Updates 2020-11-10

    This series contains updates to i40e and igc drivers and the MAINTAINERS
    file.

    Slawomir fixes updating VF MAC addresses to fix various issues related
    to reporting and setting of these addresses for i40e.

    Dan Carpenter fixes a possible used before being initialized issue for
    i40e.

    Vinicius fixes reporting of netdev stats for igc.

    Tony updates repositories for Intel Ethernet Drivers.

    * '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
    MAINTAINERS: Update repositories for Intel Ethernet Drivers
    igc: Fix returning wrong statistics
    i40e, xsk: uninitialized variable in i40e_clean_rx_irq_zc()
    i40e: Fix MAC address setting for a VF via Host/VM
    ====================

    Link: https://lore.kernel.org/r/20201111001955.533210-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • Cited commit in fixes tag overwrites the port attributes for the
    registered port.

    Avoid such error by checking registered flag before setting attributes.

    Fixes: 71ad8d55f8e5 ("devlink: Replace devlink_port_attrs_set parameters with a struct")
    Signed-off-by: Parav Pandit
    Reviewed-by: Jiri Pirko
    Link: https://lore.kernel.org/r/20201111034744.35554-1-parav@nvidia.com
    Signed-off-by: Jakub Kicinski

    Parav Pandit
     

12 Nov, 2020

18 commits

  • VRF devices use an optimized direct path on output if a default qdisc
    is involved, calling Netfilter hooks directly. This path, however, does
    not consider Netfilter rules completing asynchronously, such as with
    NFQUEUE. The Netfilter okfn() is called for asynchronously accepted
    packets, but the VRF never passes that packet down the stack to send
    it out over the slave device. Using the slower redirect path for this
    seems not feasible, as we do not know beforehand if a Netfilter hook
    has asynchronously completing rules.

    Fix the use of asynchronously completing Netfilter rules in OUTPUT and
    POSTROUTING by using a special completion function that additionally
    calls dst_output() to pass the packet down the stack. Also, slightly
    adjust the use of nf_reset_ct() so that is called in the asynchronous
    case, too.

    Fixes: dcdd43c41e60 ("net: vrf: performance improvements for IPv4")
    Fixes: a9ec54d1b0cd ("net: vrf: performance improvements for IPv6")
    Signed-off-by: Martin Willi
    Link: https://lore.kernel.org/r/20201106073030.3974927-1-martin@strongswan.org
    Signed-off-by: Jakub Kicinski

    Martin Willi
     
  • nfs_inc_stats() is already thread-safe, and there are no other reasons
    to hold the inode lock here.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Remove the contentious inode lock, and instead provide thread safety
    using the file->f_lock spinlock.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Certain NFSv4.2/RDMA tests fail with v5.9-rc1.

    rpcrdma_convert_kvec() runs off the end of the rl_segments array
    because rq_rcv_buf.tail[0].iov_len holds a very large positive
    value. The resultant kernel memory corruption is enough to crash
    the client system.

    Callers of rpc_prepare_reply_pages() must reserve an extra XDR_UNIT
    in the maximum decode size for a possible XDR pad of the contents
    of the xdr_buf's pages. That guarantees the allocated receive buffer
    will be large enough to accommodate the usual contents plus that XDR
    pad word.

    encode_op_hdr() cannot add that extra word. If it does,
    xdr_inline_pages() underruns the length of the tail iovec.

    Fixes: 3e1f02123fba ("NFSv4.2: add client side XDR handling for extended attributes")
    Signed-off-by: Chuck Lever
    Signed-off-by: Anna Schumaker

    Chuck Lever
     
  • We forgot to unregister the nfs4_xattr_large_entry_shrinker.

    That leaves the global list of shrinkers corrupted after unload of the
    nfs module, after which possibly unrelated code that calls
    register_shrinker() or unregister_shrinker() gets a BUG() with
    "supervisor write access in kernel mode".

    And similarly for the nfs4_xattr_large_entry_lru.

    Reported-by: Kris Karas
    Tested-By: Kris Karas
    Fixes: 95ad37f90c33 "NFSv4.2: add client side xattr caching."
    Signed-off-by: J. Bruce Fields
    CC: stable@vger.kernel.org
    Signed-off-by: Anna Schumaker

    J. Bruce Fields
     
  • * acpi-scan:
    ACPI: scan: Fix acpi_dma_configure_id() kerneldoc name

    * acpi-misc:
    ACPI: GED: fix -Wformat
    ACPI: Fix whitespace inconsistencies

    * acpi-button:
    ACPI: button: Add DMI quirk for Medion Akoya E2228T

    * acpi-dptf:
    ACPI: DPTF: Support Alder Lake

    Rafael J. Wysocki
     
  • In the fail path of gfs2_check_blk_type, forgetting to call
    gfs2_glock_dq_uninit will result in rgd_gh reference leak.

    Signed-off-by: Zhang Qilong
    Signed-off-by: Andreas Gruenbacher

    Zhang Qilong
     
  • …l.org/pub/scm/linux/kernel/git/konrad/swiotlb") into android-mainline

    Steps on the way to 5.10-rc4

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I74d7b93742dce6256e2d4fe636d7b0ad93d90467

    Greg Kroah-Hartman
     
  • …kernel/git/viro/vfs") into android-mainline

    Steps on the way to 5.10-rc4

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I9e0fa89c0f6f306fe802ae95c8d01d9ba558e111

    Greg Kroah-Hartman
     
  • The new helper function fscrypt_prepare_new_inode() runs before
    S_ENCRYPTED has been set on the new inode. This accidentally made
    fscrypt_select_encryption_impl() never enable inline encryption on newly
    created files, due to its use of fscrypt_needs_contents_encryption()
    which only returns true when S_ENCRYPTED is set.

    Fix this by using S_ISREG() directly instead of
    fscrypt_needs_contents_encryption(), analogous to what
    select_encryption_mode() does.

    I didn't notice this earlier because by design, the user-visible
    behavior is the same (other than performance, potentially) regardless of
    whether inline encryption is used or not.

    Fixes: a992b20cd4ee ("fscrypt: add fscrypt_prepare_new_inode() and fscrypt_set_context()")
    Reviewed-by: Satya Tangirala
    Link: https://lore.kernel.org/r/20201111015224.303073-1-ebiggers@kernel.org
    Signed-off-by: Eric Biggers

    Eric Biggers
     
  • Add vendor hook for affinity settings to GIC v3 irqchip
    driver.

    Bug: 172637074
    Change-Id: I65ec8bedcb88c680ba1d6fcd2ffc5944c5a8a89c
    Signed-off-by: Neeraj Upadhyay
    Signed-off-by: Prasad Sodagudi

    Neeraj Upadhyay
     
  • If memory allocation for 'kbuf' succeed, cosa_write() doesn't have a
    corresponding kfree() in exception handling. Thus add kfree() for this
    function implementation.

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: Hulk Robot
    Signed-off-by: Wang Hai
    Acked-by: Jan "Yenya" Kasprzak
    Link: https://lore.kernel.org/r/20201110144614.43194-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski

    Wang Hai
     
  • Move to the kernel.org patchwork instance, it has significantly
    lower latency for accessing from Europe and the US. Other quirks
    include the reply bot.

    Link: https://lore.kernel.org/r/20201110035120.642746-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • By default, enabling RANDOMIZE_BASE on arm64 randomizes not just the
    kernel base address, but also the module region independently from the
    kernel, over a 4GiB range. As a consequence, modules can be out of
    reach for direct branches from/to the kernel, hence creating the need to
    resolve function calls via veneers in the module PLT.

    While this is good for security, this also introduces a non-negligible
    overhead in some benchmarks when parts of the scheduler policy is
    factored out in modules, as is the cases with GKI 2.0 on some devices.

    To get the performance back, disable RANDOMIZE_MODULE_REGION_FULL, which
    limits the range of randomization for the module area to remain within
    reach of direct branches. This is clearly a security trade-off as the
    module and kernel addresses have a stronger correlation, but this still
    remains preferable over the alternative which is no-GKI and having all
    drivers compiled into the kernel itself, as Android used to be in
    previous generations.

    Bug: 168521642
    Signed-off-by: Quentin Perret
    Change-Id: I8f4e05fbd308f99f38a4a2b33802ef1e195666e3

    Quentin Perret
     
  • Rohit Maheshwari says:

    ====================
    cxgb4/ch_ktls: Fixes in nic tls code

    This series helps in fixing multiple nic ktls issues. Series is broken
    into 12 patches.

    Patch 1 avoids deciding tls packet based on decrypted bit. If its a
    retransmit packet which has tls handshake and finish (for encryption),
    decrypted bit won't be set there, and so we can't rely on decrypted
    bit.

    Patch 2 helps supporting linear skb. SKBs were assumed non-linear.
    Corrected the length extraction.

    Patch 3 fixes the checksum offload update in WR.

    Patch 4 fixes kernel panic happening due to creating new skb for each
    record. As part of fix driver will use same skb to send out one tls
    record (partial data) of the same SKB.

    Patch 5 fixes the problem of skb data length smaller than remaining data
    of the record.

    Patch 6 fixes the handling of SKBs which has tls header alone pkt, but
    not starting from beginning.

    Patch 7 avoids sending extra data which is used to make a record 16 byte
    aligned. We don't need to retransmit those extra few bytes.

    Patch 8 handles the cases where retransmit packet has tls starting
    exchanges which are prior to tls start marker.

    Patch 9 fixes the problem os skb free before HW knows about tcp FIN.

    Patch 10 handles the small packet case which has partial TAG bytes only.
    HW can't handle those, hence using sw crypto for such pkts.

    Patch 11 corrects the potential tcb update problem.

    Patch 12 stops the queue if queue reaches threshold value.

    v1->v2:
    - Corrected fixes tag issue.
    - Marked chcr_ktls_sw_fallback() static.

    v2->v3:
    - Replaced GFP_KERNEL with GFP_ATOMIC.
    - Removed mixed fixes.

    v3->v4:
    - Corrected fixes tag issue.

    v4->v5:
    - Separated mixed fixes from patch 4.

    v5-v6:
    - Fixes tag should be at the end.
    ====================

    Link: https://lore.kernel.org/r/20201109105142.15398-1-rohitm@chelsio.com
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • Stop the queue and ask for the credits if queue reaches to
    threashold.

    Fixes: 5a4b9fe7fece ("cxgb4/chcr: complete record tx handling")
    Signed-off-by: Rohit Maheshwari
    Signed-off-by: Jakub Kicinski

    Rohit Maheshwari
     
  • context id and port id should be filled while sending tcb update.

    Fixes: 5a4b9fe7fece ("cxgb4/chcr: complete record tx handling")
    Signed-off-by: Rohit Maheshwari
    Signed-off-by: Jakub Kicinski

    Rohit Maheshwari
     
  • If TCP congestion caused a very small packets which only has some
    part fo the TAG, and that too is not till the end. HW can't handle
    such case, so falling back to sw crypto in such cases.

    v1->v2:
    - Marked chcr_ktls_sw_fallback() static.

    Fixes: dc05f3df8fac ("chcr: Handle first or middle part of record")
    Signed-off-by: Rohit Maheshwari
    Signed-off-by: Jakub Kicinski

    Rohit Maheshwari