Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

-Wsection in net/rds/ib_stats.c #114

Closed
tpimh opened this issue Sep 19, 2018 · 4 comments
Closed

-Wsection in net/rds/ib_stats.c #114

tpimh opened this issue Sep 19, 2018 · 4 comments
Labels
-Wsection [BUG] linux A bug that should be fixed in the mainline kernel. [FIXED][LINUX] 4.19 This bug was fixed in Linux 4.19

Comments

@tpimh
Copy link

tpimh commented Sep 19, 2018

net/rds/ib_stats.c:40:1: warning: section does not match previous declaration [-Wsection]
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:144:2: note: expanded from macro 'DEFINE_PER_CPU_SHARED_ALIGNED'
        DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
        ^
./include/linux/percpu-defs.h:93:9: note: expanded from macro 'DEFINE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name;                 \
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))     \
                                ^
net/rds/ib.h:446:1: note: previous attribute is here
DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:113:2: note: expanded from macro 'DECLARE_PER_CPU'
        DECLARE_PER_CPU_SECTION(type, name, "")
        ^
./include/linux/percpu-defs.h:87:9: note: expanded from macro 'DECLARE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))     \
                                ^
1 warning generated.
@tpimh tpimh added [BUG] linux A bug that should be fixed in the mainline kernel. low priority This bug is not critical and not a priority labels Sep 19, 2018
@nickdesaulniers nickdesaulniers added the good first issue Good for newcomers label Sep 19, 2018
@nathanchance nathanchance self-assigned this Sep 21, 2018
@nathanchance
Copy link
Member

@nathanchance nathanchance added the [PATCH] Submitted A patch has been submitted for review label Sep 21, 2018
fengguang pushed a commit to 0day-ci/linux that referenced this issue Sep 22, 2018
Clang warns when two declarations' section attributes don't match.

net/rds/ib_stats.c:40:1: warning: section does not match previous
declaration [-Wsection]
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:142:2: note: expanded from macro
'DEFINE_PER_CPU_SHARED_ALIGNED'
        DEFINE_PER_CPU_SECTION(type, name,
PER_CPU_SHARED_ALIGNED_SECTION) \
        ^
./include/linux/percpu-defs.h:93:9: note: expanded from macro
'DEFINE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name;
\
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
net/rds/ib.h:446:1: note: previous attribute is here
DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:111:2: note: expanded from macro
'DECLARE_PER_CPU'
        DECLARE_PER_CPU_SECTION(type, name, "")
        ^
./include/linux/percpu-defs.h:87:9: note: expanded from macro
'DECLARE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
1 warning generated.

The initial definition was added in commit ec16227 ("RDS/IB:
Infiniband transport") and the cache aligned definition was added in
commit e6babe4 ("RDS/IB: Stats and sysctls") right after. The
definition probably should have been updated in net/rds/ib.h, which is
what this patch does.

Link: ClangBuiltLinux#114
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
@nathanchance
Copy link
Member

fengguang pushed a commit to 0day-ci/linux that referenced this issue Sep 23, 2018
Clang warns when two declarations' section attributes don't match.

net/rds/ib_stats.c:40:1: warning: section does not match previous
declaration [-Wsection]
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:142:2: note: expanded from macro
'DEFINE_PER_CPU_SHARED_ALIGNED'
        DEFINE_PER_CPU_SECTION(type, name,
PER_CPU_SHARED_ALIGNED_SECTION) \
        ^
./include/linux/percpu-defs.h:93:9: note: expanded from macro
'DEFINE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name;
\
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
net/rds/ib.h:446:1: note: previous attribute is here
DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:111:2: note: expanded from macro
'DECLARE_PER_CPU'
        DECLARE_PER_CPU_SECTION(type, name, "")
        ^
./include/linux/percpu-defs.h:87:9: note: expanded from macro
'DECLARE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
1 warning generated.

The initial definition was added in commit ec16227 ("RDS/IB:
Infiniband transport") and the cache aligned definition was added in
commit e6babe4 ("RDS/IB: Stats and sysctls") right after. The
definition probably should have been updated in net/rds/ib.h, which is
what this patch does.

Link: ClangBuiltLinux#114
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
fengguang pushed a commit to 0day-ci/linux that referenced this issue Sep 23, 2018
Clang warns when two declarations' section attributes don't match.

net/rds/ib_stats.c:40:1: warning: section does not match previous
declaration [-Wsection]
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:142:2: note: expanded from macro
'DEFINE_PER_CPU_SHARED_ALIGNED'
        DEFINE_PER_CPU_SECTION(type, name,
PER_CPU_SHARED_ALIGNED_SECTION) \
        ^
./include/linux/percpu-defs.h:93:9: note: expanded from macro
'DEFINE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name;
\
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
net/rds/ib.h:446:1: note: previous attribute is here
DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:111:2: note: expanded from macro
'DECLARE_PER_CPU'
        DECLARE_PER_CPU_SECTION(type, name, "")
        ^
./include/linux/percpu-defs.h:87:9: note: expanded from macro
'DECLARE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
1 warning generated.

The initial definition was added in commit ec16227 ("RDS/IB:
Infiniband transport") and the cache aligned definition was added in
commit e6babe4 ("RDS/IB: Stats and sysctls") right after. The
definition probably should have been updated in net/rds/ib.h, which is
what this patch does.

Link: ClangBuiltLinux#114
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
@nathanchance nathanchance added [PATCH] Accepted A submitted patch has been accepted upstream and removed [PATCH] Submitted A patch has been submitted for review labels Sep 23, 2018
@tpimh tpimh removed the good first issue Good for newcomers label Sep 25, 2018
@nathanchance
Copy link
Member

@nathanchance nathanchance added [FIXED][LINUX] 4.19 This bug was fixed in Linux 4.19 and removed [PATCH] Accepted A submitted patch has been accepted upstream labels Sep 25, 2018
@tpimh tpimh removed the low priority This bug is not critical and not a priority label Sep 25, 2018
jic23 pushed a commit to hisilicon/kernel-dev that referenced this issue Sep 26, 2018
GIT cad990f2f1d7bfb227d80838055247dd30a5313b

commit 12ba7e1045521ec9f251c93ae0a6735cc3f42337
Author: Petr Machata <petrm@mellanox.com>
Date:   Sun Sep 23 17:48:55 2018 +0300

    mlxsw: Make MLXSW_SP1_FWREV_MINOR a hard requirement
    
    Up until now, mlxsw tolerated firmware versions that weren't exactly
    matching the required version, if the branch number matched. That
    allowed the users to test various firmware versions as long as they were
    on the right branch.
    
    On the other hand, it made it impossible for mlxsw to put a hard lower
    bound on a version that fixes all problems known to date. If a user had
    a somewhat older FW version installed, mlxsw would start up just fine,
    possibly performing non-optimally as it would use features that trigger
    problematic behavior.
    
    Therefore tweak the check to accept any FW version that is:
    
    - on the same branch as the preferred version, and
    - the same as or newer than the preferred version.
    
    Signed-off-by: Petr Machata <petrm@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 16fdf8ba98391650ce4bc4f3f71629d8a413bc21
Author: David S. Miller <davem@davemloft.net>
Date:   Sun Sep 23 12:25:15 2018 -0700

    rds: Fix build regression.
    
    Use DECLARE_* not DEFINE_*
    
    Fixes: 8360ed6745df ("RDS: IB: Use DEFINE_PER_CPU_SHARED_ALIGNED for rds_ib_stats")
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b3c30054dba87a79ff1ea0d091d51ef4820b6932
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Sep 13 17:59:50 2018 +0200

    parisc64: change __kernel_suseconds_t to match glibc
    
    There are only two 64-bit architecture ports that have a 32-bit
    suseconds_t: sparc64 and parisc64. I've encountered a number of problems
    with this, while trying to get a proper 64-bit time_t working on 32-bit
    architectures. Having a 32-bit suseconds_t combined with a 64-bit time_t
    means that we get extra padding in data structures that may leak kernel
    stack data to user space, and it breaks all code that assumes that
    timespec and timeval have the same layout.
    
    While we can't change sparc64, it seems that glibc on parisc64 has always
    set suseconds_t to 'long', and the current version would give incorrect
    results for gettimeofday() and many other interfaces: timestamps passed
    from user space into the kernel result in tv_usec being always zero
    (the lower bits contain the intended value but are ignored) while data
    passed from the kernel to user space contains either zeroes or random
    data in tv_usec.
    
    Based on that, it seems best to change the user API in the kernel in
    an incompatible way to match what glibc expects.
    
    Note that the distros I could find (gentoo and debian) all just
    have 32-bit user space, which does not suffer from this problem.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>

commit bb1e7fe643bb6c4e9925286f56032117f201a440
Author: John David Anglin <dave.anglin@bell.net>
Date:   Sun Sep 23 11:20:34 2018 -0400

    parisc: Reorder TLB flush timing calculation
    
    On boot (mostly reboot), my c8000 sometimes crashes after it prints the
    TLB flush threshold.  The lockup is hard.  The front LED flashes red and
    the box must be unplugged to reset the error.
    
    I noticed that when the crash occurs the TLB flush threshold is about
    one quarter what it is on a successful boot.  If I disabled the calculation,
    the crash didn't occur.  There also seemed to be a timing dependency
    affecting the crash.  I finally realized that the flush_tlb_all() timing
    test runs just after the secondary CPUs are started.  There seems to be
    a problem with running flush_tlb_all() too soon after the CPUs are started.
    
    The timing for the range test always seemed okay.  So, I reversed the
    order of the two timing tests and I haven't had a crash at this point so
    far.
    
    I added a couple of information messages which I have left to help with
    diagnosis if the problem should appear on another machine.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>

commit 3a016ae8b7a0400deba40c79d972bc2f2121417b
Author: John David Anglin <dave.anglin@bell.net>
Date:   Sun Sep 23 10:55:18 2018 -0400

    parisc: Remove PTE load and fault check from L2_ptep macro
    
    This change removes the PTE load and present check from the L2_ptep
    macro.  The load and check for kernel pages is now done in the tlb_lock
    macro.  This avoids a double load and check for user pages.  The load
    and check for user pages is now done inside the lock so the fault
    handler can't be called while the entry is being updated.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>

commit af701cc5901afc476494dcde78e0ac05e362575d
Author: John David Anglin <dave.anglin@bell.net>
Date:   Thu Sep 20 22:31:48 2018 -0400

    parisc: Purge TLB entries after updating page table entry and set page accessed flag in TLB handler
    
    This patch may resolve some races in TLB handling.  Hopefully, TLB
    inserts are accesses and protected by spin lock.
    
    If not, we may need to IPI calls and do local purges on PA 2.0.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>

commit 38907f69a6c6a9dfdb7278cebcc35647b6709f77
Author: Olof Johansson <olof@lixom.net>
Date:   Sun Sep 23 06:57:07 2018 -0700

    ARM: Document merges

commit 827f847b631ce23439e7ad2f575e897f43d5de12
Author: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Date:   Fri Sep 21 16:29:03 2018 +0200

    MAINTAINERS: Update stm32 entry
    
    Add mailing list for stm32 architecture.
    Add "stm" pattern to not miss some drivers/directories when asking for maintainers.
    
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>

commit d9c8d8cc8023826733b882a25869457c84775e08
Author: Olof Johansson <olof@lixom.net>
Date:   Sun Sep 23 06:53:51 2018 -0700

    ARM: Document merges

commit a4986b08287e0868fad6dd1b6e8ed840b2f1003f
Author: Antoine Tenart <antoine.tenart@bootlin.com>
Date:   Wed Sep 19 08:58:02 2018 +0200

    MAINTAINERS: update the Annapurna Labs maintainer email
    
    Free Electrons became Bootlin. Update my email accordingly.
    
    Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>

commit 40667c037a3d60b9086b0279a7eb0e181e2bc915
Author: Boris Brezillon <boris.brezillon@bootlin.com>
Date:   Tue Sep 4 16:23:28 2018 +0200

    mtd: rawnand: Allow selection of ECC byte ordering at runtime
    
    Currently, the selection of ECC byte ordering for software hamming is
    done at compilation time, which doesn't make sense when ECC byte
    calculation is done in hardware and byte ordering is forced by the
    hardware engine.
    In this case, only the correction is done in software and we want to
    force the byte-ordering no matter the value of CONFIG_MTD_NAND_ECC_SMC.
    
    This is typically the case for the FSMC (Smart Media ordering), TMIO and
    TXX9NDFMC (regular byte ordering) blocks.
    
    For all other use cases (pure software implementation, SM FTL and
    nandecctest), we keep selecting the byte ordering based on the
    CONFIG_MTD_NAND_ECC_SMC value. It might not be ideal for SM FTL (I'd
    expect Smart Media ordering to be employed by the Smart Media FTL), but
    this option doesn't seem to be enabled in the existing _defconfig, so
    I can't tell setting sm_order to true is the right choice.
    
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit 92485ef21202fe77d8dbb35a14885b1ad15b75d2
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Sep 20 16:30:25 2018 -0700

    mtd: rawnand: sh_flctl: Use proper enum for flctl_dma_fifo0_transfer
    
    Clang warns when one enumerated type is converted implicitly to another:
    
    drivers/mtd/nand/raw/sh_flctl.c:483:46: warning: implicit conversion
    from enumeration type 'enum dma_transfer_direction' to different
    enumeration type 'enum dma_data_direction' [-Wenum-conversion]
                    flctl_dma_fifo0_transfer(flctl, buf, rlen, DMA_DEV_TO_MEM) > 0)
                    ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
    drivers/mtd/nand/raw/sh_flctl.c:542:46: warning: implicit conversion
    from enumeration type 'enum dma_transfer_direction' to different
    enumeration type 'enum dma_data_direction' [-Wenum-conversion]
                    flctl_dma_fifo0_transfer(flctl, buf, rlen, DMA_MEM_TO_DEV) > 0)
                    ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
    2 warnings generated.
    
    Use the proper enums from dma_data_direction to satisfy Clang.
    
    DMA_MEM_TO_DEV = DMA_TO_DEVICE = 1
    DMA_DEV_TO_MEM = DMA_FROM_DEVICE = 2
    
    Reported-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit 7ff9b8633c1d2b7a651ac441c9d9a302c365f200
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Thu Sep 20 00:52:55 2018 +0200

    mtd: rawnand: ams-delta: Set port direction when needed
    
    In its current shape, the driver sets data port direction before each
    byte read/write operation, even during multi-byte transfers.  Improve
    performance of the driver by setting the port direction only when
    needed.
    
    This optimisation will become particularly important as soon as
    planned conversion of the driver to GPIO API for data I/O will be
    implemented.
    
    Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit a9e465047826290f798984c0c0683f41cb800b85
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Thu Sep 20 00:52:54 2018 +0200

    mtd: rawnand: ams-delta: Use private structure
    
    Introduce a driver private structure and allocate it on device probe.
    Use it for storing nand_chip structure, GPIO descriptors prevoiusly
    stored in static variables as well as io_base pointer previously passed
    as nand controller data or platform driver data.  Subsequent patches
    may populate the structure with more members as needed.
    
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit 044507bdaab8b06bf057c12521bbe3a447a6fcd0
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Thu Sep 20 00:52:53 2018 +0200

    mtd: rawnand: ams-delta: show parent device in sysfs
    
    Fix a bug where parent device symlinks aren't shown in sysfs.
    
    While at it, make use of the default owner set by mtdcore.
    
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit 123e10a24f5f3a4e1b033878d048f5a938705fd2
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Thu Sep 20 00:17:29 2018 +0200

    mtd: rawnand: ams-delta: use GPIO lookup table
    
    Now as Amstrad Delta board - the only user of this driver - provides
    GPIO lookup tables, switch from GPIO numbers to GPIO descriptors and
    use the table to locate required GPIO pins.
    
    Declare static variables for storing GPIO descriptors and replace
    gpio_ function calls with their gpiod_ equivalents.
    
    Pin naming used by the driver should be followed while respective GPIO
    lookup table is initialized by a board init code.
    
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Acked-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

commit f1951c22562a4f5a5c8ba82672352f7f6e5736b2
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Fri Sep 21 18:20:37 2018 +0000

    hv_netvsc: Update document for LRO/RSC support
    
    Update document for LRO/RSC support, and the command line info to
    change the setting.
    
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d6792a5a07479d27147c01ff22041409d5e4ce4c
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Fri Sep 21 18:20:36 2018 +0000

    hv_netvsc: Add handler for LRO setting change
    
    This patch adds the handler for LRO setting change, so that a user
    can use ethtool command to enable / disable LRO feature.
    
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c8e4eff4675f22ad1110141ed9e62102d4d77e1c
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Fri Sep 21 18:20:35 2018 +0000

    hv_netvsc: Add support for LRO/RSC in the vSwitch
    
    LRO/RSC in the vSwitch is a feature available in Windows Server 2019
    hosts and later. It reduces the per packet processing overhead by
    coalescing multiple TCP segments when possible. This patch adds netvsc
    driver support for this feature.
    
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 474ff2600889e16280dbc6ada8bfecb216169a70
Author: Maciej Żenczykowski <maze@google.com>
Date:   Sat Sep 22 01:34:01 2018 -0700

    net-ethtool: ETHTOOL_GUFO did not and should not require CAP_NET_ADMIN
    
    So it should not fail with EPERM even though it is no longer implemented...
    
    This is a fix for:
      (userns)$ egrep ^Cap /proc/self/status
      CapInh: 0000003fffffffff
      CapPrm: 0000003fffffffff
      CapEff: 0000003fffffffff
      CapBnd: 0000003fffffffff
      CapAmb: 0000003fffffffff
    
      (userns)$ tcpdump -i usb_rndis0
      tcpdump: WARNING: usb_rndis0: SIOCETHTOOL(ETHTOOL_GUFO) ioctl failed: Operation not permitted
      Warning: Kernel filter failed: Bad file descriptor
      tcpdump: can't remove kernel filter: Bad file descriptor
    
    With this change it returns EOPNOTSUPP instead of EPERM.
    
    See also https://github.com/the-tcpdump-group/libpcap/issues/689
    
    Fixes: 08a00fea6de2 "net: Remove references to NETIF_F_UFO from ethtool."
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Maciej Żenczykowski <maze@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 067517513ae437c2845bc593dbf99a142bdc9250
Author: Andreas Färber <afaerber@suse.de>
Date:   Sun Jun 24 15:46:30 2018 +0200

    soc: actions: Update SPS help text for S700
    
    Commit 3ad85b08f7789d51e6aad0f535296d1c31e319b9 (soc: actions: sps: Add S700)
    added S700 support to the SPS driver but forget to update Kconfig help.
    
    Add missing S700 mention, in preparation for further SoCs.
    
    Fixes: 3ad85b08f778 ("soc: actions: sps: Add S700")
    Reported-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit 2fe8ea39c9a8489799cf86bb377fc80492b5b3bf
Author: Dengcheng Zhu <dzhu@wavecomp.com>
Date:   Tue Sep 11 14:49:24 2018 -0700

    MIPS: kexec: Use prepare method from Generic for UHI platforms
    
    Out-of-tree platforms may not be based on Generic as shown in customer
    communication. Share the prepare method with all using UHI boot protocol,
    and put into machine_kexec.c.
    
    The benefit is that, when having kexec_args related problems, developers
    will naturally look into machine_kexec.c, where "CONFIG_UHI_BOOT" will be
    found, prompting them to add "select UHI_BOOT" to the platform Kconfig. It
    would otherwise require a lot debugging or online searching to be aware
    that the solution is in Generic code.
    
    Tested-by: Rachel Mozes <rachel.mozes@intel.com>
    Reported-by: Rachel Mozes <rachel.mozes@intel.com>
    Signed-off-by: Dengcheng Zhu <dzhu@wavecomp.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20569/
    Cc: pburton@wavecomp.com
    Cc: ralf@linux-mips.org
    Cc: linux-mips@linux-mips.org

commit a6da4d6fdf8bd512c98d3ac7f1d16bc4bb282919
Author: Dengcheng Zhu <dzhu@wavecomp.com>
Date:   Tue Sep 11 14:49:23 2018 -0700

    MIPS: kexec: Relax memory restriction
    
    We can rely on the system kernel and the dump capture kernel themselves in
    memory usage.
    
    Being restrictive with 512MB limit may cause kexec tool failure on some
    platforms.
    
    Tested-by: Rachel Mozes <rachel.mozes@intel.com>
    Reported-by: Rachel Mozes <rachel.mozes@intel.com>
    Signed-off-by: Dengcheng Zhu <dzhu@wavecomp.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20568/
    Cc: pburton@wavecomp.com
    Cc: ralf@linux-mips.org
    Cc: linux-mips@linux-mips.org

commit 1447864bee4cd9ea96fe793ea8fb49a8ea784412
Author: Dengcheng Zhu <dzhu@wavecomp.com>
Date:   Tue Sep 11 14:49:22 2018 -0700

    MIPS: kexec: CPS systems to halt nonboot CPUs
    
    Share code between play_dead() and cps_kexec_nonboot_cpu(). Register the
    latter to mp_ops for kexec.
    
    Signed-off-by: Dengcheng Zhu <dzhu@wavecomp.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20567/
    Cc: pburton@wavecomp.com
    Cc: ralf@linux-mips.org
    Cc: linux-mips@linux-mips.org
    Cc: rachel.mozes@intel.com

commit 62cac480f33f8f9413d609cb1601b0ee521a86b8
Author: Dengcheng Zhu <dzhu@wavecomp.com>
Date:   Tue Sep 11 14:49:21 2018 -0700

    MIPS: kexec: Make a framework for both jumping and halting on nonboot CPUs
    
    The existing implementation lets machine_kexec() CPU jump to reboot code
    buffer, whereas other CPUs to relocated_kexec_smp_wait. The natural way to
    bring up an SMP new kernel would be to let CPU0 do it while others being
    halted. For those failing to do so, fall back to the jumping method.
    
    Signed-off-by: Dengcheng Zhu <dzhu@wavecomp.com>
    [paul.burton@mips.com: Guard kexec_nonboot_cpu_jump with CONFIG_SMP]
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20570/
    Cc: pburton@wavecomp.com
    Cc: ralf@linux-mips.org
    Cc: linux-mips@linux-mips.org
    Cc: rachel.mozes@intel.com

commit c798c88f3962ddff89c7aa818986caeecd46ab4c
Author: Fan Wu <wufan@codeaurora.org>
Date:   Wed Sep 19 01:59:00 2018 +0000

    EDAC, ghes: Use CPER module handles to locate DIMMs
    
    Use SMBIOS module handle type 17, on platforms which provide valid
    ones, to locate the corresponding DIMM and thus have per-DIMM error
    counter updates.
    
    Signed-off-by: Fan Wu <wufan@codeaurora.org>
    [ Massage commit message. ]
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Tyler Baicar <baicar.tyler@gmail.com>
    Reviewed-by: James Morse <james.morse@arm.com>
    Tested-by: Toshi Kani <toshi.kani@hpe.com>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: baicar.tyler@gmail.com
    Cc: john.garry@huawei.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: shiju.jose@huawei.com
    Cc: tanxiaofei@huawei.com
    Cc: wanghuiqiang@huawei.com
    Link: http://lkml.kernel.org/r/1537322340-1860-1-git-send-email-wufan@codeaurora.org

commit 31f97dbd8d7de4d1bd6e581d85cd0a3c552cc332
Author: Steve French <stfrench@microsoft.com>
Date:   Sat Sep 22 11:25:04 2018 -0500

    smb3: Add debug message later in smb2/smb3 reconnect path
    
    As we reset credits later in the reconnect path, useful
    to have optional (cifsFYI) debug message.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>

commit f3b73a1da174c584373ed14495ec3be59db8b3f7
Author: Aurelien Aptel <aaptel@suse.com>
Date:   Thu Sep 20 18:10:25 2018 -0700

    CIFS: make 'nodfs' mount opt a superblock flag
    
    tcon->Flags is only used by SMB1 code and changing it is not permanent
    (you lose the setting on tcon reconnect).
    
    * Move the setting to superblock flags (per mount-points).
    * Make automount callback exit early when flag present
    * Make dfs resolving happening in mount syscall exit early if flag present
    
    Signed-off-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Acked-by: Pavel Shilovsky <pshilov@microsoft.com>

commit 107f6722247da2b220c3efa6020aebcaf102410c
Author: Steve French <stfrench@microsoft.com>
Date:   Wed Sep 19 02:38:17 2018 -0500

    smb3: track the instance of each session for debugging
    
    Each time we reconnect to the same server, bump an instance
    counter (and display in /proc/fs/cifs/DebugData) to make it
    easier to debug.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>

commit 6f6da136046294a1e8d2944336eb97412751f653
Author: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Date:   Tue Sep 18 17:34:33 2018 -0700

    EDAC: Correct DIMM capacity unit symbol
    
    The {i3200|i7core|sb|skx}_edac drivers show DIMM capacity using the
    wrong unit symbol: 'Mb' - megabit. Fix them by replacing 'Mb' with
    'MiB' - mebibyte.
    
    [Tony: These are all "edac_dbg()" messages, so this won't break scripts
           that parse console logs.]
    
    Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Aristeu Rozanski <aris@redhat.com>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: linux-edac@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180919003433.16475-1-tony.luck@intel.com

commit 41c9b1be335b5afc3b5fb71c5d16f9d5939cd13f
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Mon Sep 10 16:18:29 2018 -0700

    device-dax: Add missing address_space_operations
    
    With address_space_operations missing for device dax, namely the
    .set_page_dirty, we hit a kernel warning when running destructive
    ndctl unit test: make TESTS=device-dax check
    
    WARNING: CPU: 3 PID: 7380 at fs/buffer.c:581 __set_page_dirty+0xb1/0xc0
    
    Setting address_space_operations to noop_set_page_dirty and
    noop_invalidatepage for device dax to prevent fallback to
    __set_page_dirty_buffers() and block_invalidatepage() respectively.
    
    Fixes: 2232c6382a ("device-dax: Enable page_mapping()")
    
    Acked-by: Jeff Moyer <jmoyer@redhat.com>
    Reported-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 81aa283c692401ce82795fb0da68ead413055360
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Thu May 31 15:17:34 2018 +0530

    MAINTAINERS: Add Actions Semi S900 clk entries
    
    Add S900 clk entries under ARCH_ACTIONS.
    
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Acked-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit f039e50f3c5a31bade2008409097bfbfbf1479aa
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Wed Apr 4 22:52:57 2018 +0530

    MAINTAINERS: Add reviewer for ACTIONS platforms
    
    Since I'll be working on improving support for ACTIONS platforms, adding
    myself as the reviewer.
    
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit 73c1f74a7d507827e86c7f33d451e754b2232935
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Fri Feb 9 22:54:37 2018 +0530

    arm64: dts: actions: Source CMU clock for UART5
    
    Remove fixed clock and source CMU (Clock Management Unit) clock for
    UART5 driver in Actions Semi S900 SoC.
    
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit 640455acfc0ff341ccf1dce19fffa4487a693d3c
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Tue Nov 7 01:15:51 2017 +0530

    arm64: dts: actions: Add S900 clock management unit nodes
    
    Add Actions Semi S900 Clock Management Unit (CMU) nodes.
    
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit f220d3ebba8343dcbd8c83e4bb4fa6fbcfc616c6
Author: Andreas Färber <afaerber@suse.de>
Date:   Sun Jan 21 17:12:31 2018 +0100

    arm64: dts: actions: Convert to new-style SPDX license identifiers
    
    Move SPDX-License-Identifier to the top and add one for the Makefile.
    
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit 54f884cfce079d656af586037c42b58a84e1dae9
Author: Andreas Färber <afaerber@suse.de>
Date:   Sun Jan 21 17:31:36 2018 +0100

    ARM: dts: owl: Convert to new-style SPDX license identifiers
    
    Move the SPDX-License-Identifier lines to the top.
    
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit afe518272d474b27d1ace50bf325106794a33b82
Author: Andreas Färber <afaerber@suse.de>
Date:   Sun Jan 21 17:50:33 2018 +0100

    soc: actions: Convert to SPDX license identifiers
    
    Replace textual license notices with SPDX-License-Identifier lines.
    Add an SPDX-License-Identifier for the Makefile.
    
    Signed-off-by: Andreas Färber <afaerber@suse.de>

commit 2893cc8ff892fa74972d8dc0e1d0dc65116daaa3
Author: Matthew Whitehead <tedheadster@gmail.com>
Date:   Fri Sep 21 17:20:41 2018 -0400

    x86/CPU: Change query logic so CPUID is enabled before testing
    
    Presently we check first if CPUID is enabled. If it is not already
    enabled, then we next call identify_cpu_without_cpuid() and clear
    X86_FEATURE_CPUID.
    
    Unfortunately, identify_cpu_without_cpuid() is the function where CPUID
    becomes _enabled_ on Cyrix 6x86/6x86L CPUs.
    
    Reverse the calling sequence so that CPUID is first enabled, and then
    check a second time to see if the feature has now been activated.
    
    [ bp: Massage commit message and remove trailing whitespace. ]
    
    Suggested-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: Matthew Whitehead <tedheadster@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Andy Lutomirski <luto@amacapital.net>
    Cc: David Woodhouse <dwmw@amazon.co.uk>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20180921212041.13096-3-tedheadster@gmail.com

commit 03b099bdcdf7125d4a63dc9ddeefdd454e05123d
Author: Matthew Whitehead <tedheadster@gmail.com>
Date:   Fri Sep 21 17:20:40 2018 -0400

    x86/CPU: Use correct macros for Cyrix calls
    
    There are comments in processor-cyrix.h advising you to _not_ make calls
    using the deprecated macros in this style:
    
      setCx86_old(CX86_CCR4, getCx86_old(CX86_CCR4) | 0x80);
    
    This is because it expands the macro into a non-functioning calling
    sequence. The calling order must be:
    
      outb(CX86_CCR2, 0x22);
      inb(0x23);
    
    From the comments:
    
     * When using the old macros a line like
     *   setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);
     * gets expanded to:
     *  do {
     *    outb((CX86_CCR2), 0x22);
     *    outb((({
     *        outb((CX86_CCR2), 0x22);
     *        inb(0x23);
     *    }) | 0x88), 0x23);
     *  } while (0);
    
    The new macros fix this problem, so use them instead.
    
    Signed-off-by: Matthew Whitehead <tedheadster@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jia Zhang <qianyue.zj@alibaba-inc.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Philippe Ombredanne <pombredanne@nexb.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20180921212041.13096-2-tedheadster@gmail.com

commit 420d34306e96468136b04ec8c5266b1bd24da32d
Author: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date:   Sat Sep 22 01:22:34 2018 +0200

    rtc: lib: correct documentation typo
    
    rtc_time64_to_tm has not been called rtc_time_to_tm64
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

commit 55a4d2eac327fca4b22544f98d86d6e7b7981913
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Sep 21 16:43:59 2018 -0700

    net: dsa: b53: Also include SGMII for mac_config and mac_link_state
    
    In both 802.3z and SGMII modes we need to configure the MAC accordingly
    to flip between Fiber and SGMII modes, and we need to read the MAC
    status from the SGMII in-band control word.
    
    Fixes: 0e01491de646 ("net: dsa: b53: Add SerDes support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2cae8c07cb8c03a98aecbb8c7fb14c1922772adb
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Sep 21 16:43:58 2018 -0700

    net: dsa: b53: Fix B53_SERDES_DIGITAL_CONTROL offset
    
    Maths went wrong, to get 0x20, we need to do 0x1e + (x) * 2, not 0x18,
    fix that offset so we access the correct registers. This would make us
    not access the correct SerDes Digital control words, status would be
    fine and so we would not be correctly flipping between Fiber and SGMII
    modes resulting in incorrect status words being pulled into the SerDes
    digital status register.
    
    Fixes: 0e01491de646 ("net: dsa: b53: Add SerDes support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e24cf6b3891ca9f3f2ed2387adeda95e8364bf3e
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Sep 21 15:30:05 2018 -0700

    net: dsa: b53: Don't assign autonegotiation enabled
    
    PHYLINK takes care of filing the right information into
    state->an_enabled, get rid of the read from the SerDes's BMCR register.
    
    Fixes: 0e01491de646 ("net: dsa: b53: Add SerDes support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5b9b0a80aa1aefecb0273563652fb373288a21cb
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Fri Sep 21 12:30:34 2018 -0700

    decnet: Remove unnecessary check for dev->name
    
    Clang warns that the address of a pointer will always evaluated as true
    in a boolean context.
    
    net/decnet/dn_dev.c:1366:10: warning: address of array 'dev->name' will
    always evaluate to 'true' [-Wpointer-bool-conversion]
                                    dev->name ? dev->name : "???",
                                    ~~~~~^~~~ ~
    1 warning generated.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/116
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bccc17118bcf3c62c947361d51760334f6602f43
Author: Peter Oskolkov <posk@google.com>
Date:   Fri Sep 21 11:17:17 2018 -0700

    selftests/net: add ipv6 tests to ip_defrag selftest
    
    This patch adds ipv6 defragmentation tests to ip_defrag selftest,
    to complement existing ipv4 tests.
    
    Signed-off-by: Peter Oskolkov <posk@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 83619623929815a76fa7af49309d2cdfcf024fd3
Author: Peter Oskolkov <posk@google.com>
Date:   Fri Sep 21 11:17:16 2018 -0700

    net/ipfrag: let ip[6]frag_high_thresh in ns be higher than in init_net
    
    Currently, ip[6]frag_high_thresh sysctl values in new namespaces are
    hard-limited to those of the root/init ns.
    
    There are at least two use cases when it would be desirable to
    set the high_thresh values higher in a child namespace vs the global hard
    limit:
    
    - a security/ddos protection policy may lower the thresholds in the
      root/init ns but allow for a special exception in a child namespace
    - testing: a test running in a namespace may want to set these
      thresholds higher in its namespace than what is in the root/init ns
    
    The new behavior:
    
     # ip netns add testns
     # ip netns exec testns bash
    
     # sysctl -w net.ipv4.ipfrag_high_thresh=9000000
     net.ipv4.ipfrag_high_thresh = 9000000
    
     # sysctl net.ipv4.ipfrag_high_thresh
     net.ipv4.ipfrag_high_thresh = 9000000
    
     # sysctl -w net.ipv6.ip6frag_high_thresh=9000000
     net.ipv6.ip6frag_high_thresh = 9000000
    
     # sysctl net.ipv6.ip6frag_high_thresh
     net.ipv6.ip6frag_high_thresh = 9000000
    
    The old behavior:
    
     # ip netns add testns
     # ip netns exec testns bash
    
     # sysctl -w net.ipv4.ipfrag_high_thresh=9000000
     net.ipv4.ipfrag_high_thresh = 9000000
    
     # sysctl net.ipv4.ipfrag_high_thresh
     net.ipv4.ipfrag_high_thresh = 4194304
    
     # sysctl -w net.ipv6.ip6frag_high_thresh=9000000
     net.ipv6.ip6frag_high_thresh = 9000000
    
     # sysctl net.ipv6.ip6frag_high_thresh
     net.ipv6.ip6frag_high_thresh = 4194304
    
    Signed-off-by: Peter Oskolkov <posk@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2475f59c618ea58e9f72ae5ded2db392ee47810d
Author: Peter Oskolkov <posk@google.com>
Date:   Fri Sep 21 11:17:15 2018 -0700

    ipv6: discard IP frag queue on more errors
    
    This is similar to how ipv4 now behaves:
    commit 0ff89efb5246 ("ip: fail fast on IP defrag errors").
    
    Signed-off-by: Peter Oskolkov <posk@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8360ed6745df6de2d8ddff8e2116789258fe5890
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Fri Sep 21 11:04:51 2018 -0700

    RDS: IB: Use DEFINE_PER_CPU_SHARED_ALIGNED for rds_ib_stats
    
    Clang warns when two declarations' section attributes don't match.
    
    net/rds/ib_stats.c:40:1: warning: section does not match previous
    declaration [-Wsection]
    DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
    ^
    ./include/linux/percpu-defs.h:142:2: note: expanded from macro
    'DEFINE_PER_CPU_SHARED_ALIGNED'
            DEFINE_PER_CPU_SECTION(type, name,
    PER_CPU_SHARED_ALIGNED_SECTION) \
            ^
    ./include/linux/percpu-defs.h:93:9: note: expanded from macro
    'DEFINE_PER_CPU_SECTION'
            extern __PCPU_ATTRS(sec) __typeof__(type) name;
    \
                   ^
    ./include/linux/percpu-defs.h:49:26: note: expanded from macro
    '__PCPU_ATTRS'
            __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
    \
                                    ^
    net/rds/ib.h:446:1: note: previous attribute is here
    DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
    ^
    ./include/linux/percpu-defs.h:111:2: note: expanded from macro
    'DECLARE_PER_CPU'
            DECLARE_PER_CPU_SECTION(type, name, "")
            ^
    ./include/linux/percpu-defs.h:87:9: note: expanded from macro
    'DECLARE_PER_CPU_SECTION'
            extern __PCPU_ATTRS(sec) __typeof__(type) name
                   ^
    ./include/linux/percpu-defs.h:49:26: note: expanded from macro
    '__PCPU_ATTRS'
            __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
    \
                                    ^
    1 warning generated.
    
    The initial definition was added in commit ec16227e1414 ("RDS/IB:
    Infiniband transport") and the cache aligned definition was added in
    commit e6babe4cc4ce ("RDS/IB: Stats and sysctls") right after. The
    definition probably should have been updated in net/rds/ib.h, which is
    what this patch does.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/114
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 075e264fa33e7838680802ba514a8d67433e48d1
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 10:58:07 2018 -0700

    net/ipv4: avoid compile error in fib_info_nh_uses_dev
    
    net/ipv4/fib_frontend.c: In function 'fib_info_nh_uses_dev':
    net/ipv4/fib_frontend.c:322:6: error: unused variable 'ret' [-Werror=unused-variable]
    cc1: all warnings being treated as errors
    
    Fixes: 78f2756c5fc0 ("net/ipv4: Move device validation to helper")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: David Ahern <dsahern@gmail.com>
    Reviewed-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 90caf67b01fabdd51b6cdeeb23b29bf73901df90
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:54 2018 -0700

    net_sched: sch_fq: remove dead code dealing with retransmits
    
    With the earliest departure time model, we no longer plan
    special casing TCP retransmits. We therefore remove dead
    code (since most compilers understood skb_is_retransmit()
    was false)
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c092dd5f4a7f4e4dbbcc8cf2e50b516bf07e432f
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:53 2018 -0700

    tcp: switch tcp_internal_pacing() to tcp_wstamp_ns
    
    Now TCP keeps track of tcp_wstamp_ns, recording the earliest
    departure time of next packet, we can remove duplicate code
    from tcp_internal_pacing()
    
    This removes one ktime_get_tai_ns() call, and a divide.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ab408b6dc7449c0f791e9e5f8de72fa7428584f2
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:52 2018 -0700

    tcp: switch tcp and sch_fq to new earliest departure time model
    
    TCP keeps track of tcp_wstamp_ns by itself, meaning sch_fq
    no longer has to do it.
    
    Thanks to this model, TCP can get more accurate RTT samples,
    since pacing no longer inflates them.
    
    This has the nice effect of removing some delays caused by FQ
    quantum mechanism, causing inflated max/P99 latencies.
    
    Also we might relax TCP Small Queue tight limits in the future,
    since this new model allow TCP to build bigger batches, since
    sch_fq (or a device with earliest departure time offload) ensure
    these packets will be delivered on time.
    
    Note that other protocols are not converted (they will probably
    never be) so sch_fq has still support for SO_MAX_PACING_RATE
    
    Tested:
    
    Test showing FQ pacing quantum artifact for low-rate flows,
    adding unexpected throttles for RPC flows, inflating max and P99 latencies.
    
    The parameters chosen here are to show what happens typically when
    a TCP flow has a reduced pacing rate (this can be caused by a reduced
    cwin after few losses, or/and rtt above few ms)
    
    MIBS="MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY,P99_LATENCY,STDDEV_LATENCY"
    Before :
    $ netperf -H 10.246.7.133 -t TCP_RR -Cc -T6,6 -- -q 2000000 -r 100,100 -o $MIBS
    MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.246.7.133 () port 0 AF_INET : first burst 0 : cpu bind
     Minimum Latency Microseconds,Mean Latency Microseconds,Maximum Latency Microseconds,99th Percentile Latency Microseconds,Stddev Latency Microseconds
    19,82.78,5279,3825,482.02
    
    After :
    $ netperf -H 10.246.7.133 -t TCP_RR -Cc -T6,6 -- -q 2000000 -r 100,100 -o $MIBS
    MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.246.7.133 () port 0 AF_INET : first burst 0 : cpu bind
    Minimum Latency Microseconds,Mean Latency Microseconds,Maximum Latency Microseconds,99th Percentile Latency Microseconds,Stddev Latency Microseconds
    20,49.94,128,63,3.18
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fd2bca2aa7893586887b2370e90e85bd0abc805e
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:51 2018 -0700

    tcp: switch internal pacing timer to CLOCK_TAI
    
    Next patch will use tcp_wstamp_ns to feed internal
    TCP pacing timer, so switch to CLOCK_TAI to share same base.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d3edd06ea8ea9e03de6567fda80b8be57e21a537
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:50 2018 -0700

    tcp: provide earliest departure time in skb->tstamp
    
    Switch internal TCP skb->skb_mstamp to skb->skb_mstamp_ns,
    from usec units to nsec units.
    
    Do not clear skb->tstamp before entering IP stacks in TX,
    so that qdisc or devices can implement pacing based on the
    earliest departure time instead of socket sk->sk_pacing_rate
    
    Packets are fed with tcp_wstamp_ns, and following patch
    will update tcp_wstamp_ns when both TCP and sch_fq switch to
    the earliest departure time mechanism.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9799ccb0e984a5c1311b22a212e7ff96e8b736de
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:49 2018 -0700

    tcp: add tcp_wstamp_ns socket field
    
    TCP will soon provide earliest departure time on TX skbs.
    It needs to track this in a new variable.
    
    tcp_mstamp_refresh() needs to update this variable, and
    became too big to stay an inline.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 142537e419234c396890a22806b8644dce21b132
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:48 2018 -0700

    net_sched: sch_fq: switch to CLOCK_TAI
    
    TCP will soon provide per skb->tstamp with earliest departure time,
    so that sch_fq does not have to determine departure time by looking
    at socket sk_pacing_rate.
    
    We chose in linux-4.19 CLOCK_TAI as the clock base for transports,
    qdiscs, and NIC offloads.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2fd66ffba50716fc5ab481c48db643af3bda2276
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:47 2018 -0700

    tcp: introduce tcp_skb_timestamp_us() helper
    
    There are few places where TCP reads skb->skb_mstamp expecting
    a value in usec unit.
    
    skb->tstamp (aka skb->skb_mstamp) will soon store CLOCK_TAI nsec value.
    
    Add tcp_skb_timestamp_us() to provide proper conversion when needed.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 72b0094f918294e6cb8cf5c3b4520d928fbb1a57
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 21 08:51:46 2018 -0700

    tcp: switch tcp_clock_ns() to CLOCK_TAI base
    
    TCP pacing is either implemented in sch_fq or internally.
    We have the goal of being able to offload pacing on the NICS.
    
    TCP will soon provide per skb skb->tstamp as early departure time.
    
    Like ETF in commit 25db26a91364 ("net/sched: Introduce the ETF Qdisc")
    we chose CLOCK_T as the clock base, so that TCP and pacers can share
    a common clock, to get better RTT samples (without pacing artificially
    inflating these samples).
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c7b1bf5cca76a31845a7d9e58cec7ff8f1cb0d4d
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Sep 21 13:34:46 2018 -0700

    blk-mq: Document the functions that iterate over requests
    
    Make it easier to understand the purpose of the functions that iterate
    over requests by documenting their purpose. Fix several minor spelling
    and grammer mistakes in comments in these functions.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: Jianchao Wang <jianchao.w.wang@oracle.com>
    Cc: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit ebfefb8aa792c74efaefe5e01f5f0bf9aae39e2d
Author: Peng Li <lipeng321@huawei.com>
Date:   Fri Sep 21 16:41:48 2018 +0100

    net: hns3: Remove redundant hclge_get_port_type()
    
    This patch removes hclge_get_port_type which is redundant.
    
    Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5f373b1585234bb15c7377076d01af2aed62d0a2
Author: Fuyun Liang <liangfuyun1@huawei.com>
Date:   Fri Sep 21 16:41:47 2018 +0100

    net: hns3: Fix speed/duplex information loss problem when executing ethtool ethx cmd of VF
    
    Our VF has not implemented the ops for get_port_type. So when we executing
    ethtool ethx cmd of VF, hns3_get_link_ksettings will return directly. And
    we can not query anything.
    
    To support get_link_ksettings for VF, this patch replaces get_port_type
    with get_media_type. If the media type is HNAE3_MEDIA_TYPE_NONE,
    hns3_get_link_ksettings will return link information of VF.
    
    Fixes: 12f46bc1d447 ("net: hns3: Refine hns3_get_link_ksettings()")
    Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c136b88425890030d7ba09a8e62abc29ed9b98da
Author: Peng Li <lipeng321@huawei.com>
Date:   Fri Sep 21 16:41:46 2018 +0100

    net: hns3: Add get_media_type ops support for VF
    
    This patch adds the ops of get_media_type support for VF.
    
    Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 75e98535182df92908e469bdbe4e84e983c1113c
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:45 2018 +0100

    net: hns3: Remove print messages for error packet
    
    There are already multiple types packets statistics for error packets,
    it's unnecessary to print them, which may affect the rx performance if
    print too many.
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2211f4e1955f11df5fe8df24f5eeda5a5bbe6748
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:44 2018 +0100

    net: hns3: Add unlikely for dma_mapping_error check
    
    For dma_mapping_error is unlikely happened, this patch adds unlikely for
    dma_mapping_error check.
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7a8101109dd37837f587cd56f3111d4fc17a07f5
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:43 2018 +0100

    net: hns3: Add nic state check before calling netif_tx_wake_queue
    
    When nic down, it firstly calls netif_tx_stop_all_queues(), then calls
    napi_disable(). But napi_disable() will wait current napi_poll finish,
    it may call netif_tx_wake_queue(). This patch fixes it by add nic state
    checking.
    
    Fixes: 424eb834a9be ("net: hns3: Unified HNS3 {VF|PF} Ethernet Driver for hip08 SoC")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fa7a4bd564ccca06f17f5f509ab020ee973b4c72
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:42 2018 +0100

    net: hns3: Add handle for default case
    
    There are a few "switch-case" codes missed handle for default case. For
    some abnormal case, it should return error code instead of return 0.
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6cee6fc38402fe49f1488ad7fab91309d9908da6
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:41 2018 +0100

    net: hns3: Unify the prefix of vf functions
    
    The prefix of most functions for vf are hclgevf. This patch renames the
    function with inconsistent prefix.
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b4f1d30327c831c4582a4e4672a06162ddfd3854
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:40 2018 +0100

    net: hns3: Fix tqp array traversal condition for vf
    
    There are two tqp_num variables "hdev->tqp_num" and "kinfo->tqp_num"
    used in VF. "hdev->tqp_num" is the total tqp number allocated to the
    VF, and "kinfo->tqp_num" indicates the tqp number being used by the
    VF. Usually the two variables are equal. But for the case hdev->tqp_num
    larger than rss_size_max, and num_tc is 1, "kinfo->tqp_num" will be
    less than "hdev->tqp_num".
    
    In original codes, "hdev->tqp_num" is always used to traverse the
    tqp array of kinfo. It may cause null pointer error when "hdev->tqp_num"
    is larger than "kinfo->tqp_num"
    
    Fixes: e2cb1dec9779 ("net: hns3: Add HNS3 VF HCL(Hardware Compatibility Layer) Support")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0c218123028f70f97e8419ed8b355fbc5a89b91c
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:39 2018 +0100

    net: hns3: Adjust prefix of tx/rx statistic names
    
    Some prefix of tx/rx statistic names are redundant, this patch modifies
    these names.
    
    The new prefix looks like below:
    rxq#1_ -> rxq1_
    txq#1_ -> txq1_
    tx_dropped -> dropped
    tx_wake -> wake
    tx_busy -> busy
    rx_dropped -> dropped
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d0d72bac023937b5194b4739136940d2bdf53001
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:38 2018 +0100

    net: hns3: Unify the type convert for desc.data
    
    For desc.data is already point to the address of struct member "data[6]",
    it's unnecessary to use '&' to get its address. This patch unifies all
    the type convert for dest.data, using "req = (struct name *)dest.data".
    
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit adefc0a2ff465f4ac4a88450fe69d336c8b074c5
Author: Jian Shen <shenjian15@huawei.com>
Date:   Fri Sep 21 16:41:37 2018 +0100

    net: hns3: Fix ets validate issue
    
    There is a defect in hclge_ets_validate(). If each member of tc_tsa is
    not IEEE_8021QAZ_TSA_ETS, the variable total_ets_bw won't be updated.
    In this case, the check for value of total_ets_bw will fail. This patch
    fixes it by checking total_ets_bw only after it has been updated.
    
    Fixes: cacde272dd00 ("net: hns3: Add hclge_dcb module for the support of DCB feature")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 101246ec02b54adf6a77180a01ccbe310add2c32
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:37 2018 -0400

    blkcg: rename blkg_try_get to blkg_tryget
    
    blkg reference counting now uses percpu_ref rather than atomic_t. Let's
    make this consistent with css_tryget. This renames blkg_try_get to
    blkg_tryget and now returns a bool rather than the blkg or NULL.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit b3b9f24f5fcc099c41f7dc1d02350635830888e5
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:36 2018 -0400

    blkcg: change blkg reference counting to use percpu_ref
    
    Now that every bio is associated with a blkg, this puts the use of
    blkg_get, blkg_try_get, and blkg_put on the hot path. This switches over
    the refcnt in blkg to use percpu_ref.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit e2b0989954ae7c80609f77e7ce203bea6d2c54e1
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:35 2018 -0400

    blkcg: cleanup and make blk_get_rl use blkg_lookup_create
    
    blk_get_rl is responsible for identifying which request_list a request
    should be allocated to. Try get logic was added earlier, but
    semantically the logic was not changed.
    
    This patch makes better use of the bio already having a reference to the
    blkg in the hot path. The cold path uses a better fallback of
    blkg_lookup_create rather than just blkg_lookup and then falling back to
    the q->root_rl. If lookup_create fails with anything but -ENODEV, it
    falls back to q->root_rl.
    
    A clarifying comment is added to explain why q->root_rl is used rather
    than the root blkg's rl.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit f0fcb3ec89f37167810e660b0595d9a6155d9807
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:34 2018 -0400

    blkcg: remove additional reference to the css
    
    The previous patch in this series removed carrying around a pointer to
    the css in blkg. However, the blkg association logic still relied on
    taking a reference on the css to ensure we wouldn't fail in getting a
    reference for the blkg.
    
    Here the implicit dependency on the css is removed. The association
    continues to rely on the tryget logic walking up the blkg tree. This
    streamlines the three ways that association can happen: normal, swap,
    and writeback.
    
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit c839e7a03f92bafd71fd145b470dcdc7f43f2d4c
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:33 2018 -0400

    blkcg: remove bio->bi_css and instead use bio->bi_blkg
    
    Prior patches ensured that all bios are now associated with some blkg.
    This now makes bio->bi_css unnecessary as blkg maintains a reference to
    the blkcg already.
    
    This patch removes the field bi_css and transfers corresponding uses to
    access via bi_blkg.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit bdc2491708c47601603918a9a20acddef6e1d814
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:32 2018 -0400

    blkcg: associate writeback bios with a blkg
    
    One of the goals of this series is to remove a separate reference to
    the css of the bio. This can and should be accessed via bio_blkcg. In
    this patch, the wbc_init_bio call is changed such that it must be called
    after a queue has been associated with the bio.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 74b7c02a9bc124ee3df0d77880ee26db0a325516
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:31 2018 -0400

    blkcg: associate a blkg for pages being evicted by swap
    
    A prior patch in this series added blkg association to bios issued by
    cgroups. There are two other paths that we want to attribute work back
    to the appropriate cgroup: swap and writeback. Here we modify the way
    swap tags bios to include the blkg. Writeback will be tackle in the next
    patch.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 5bf9a1f3b4efef7e463105dde8bba4d2397909c2
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:30 2018 -0400

    blkcg: consolidate bio_issue_init to be a part of core
    
    bio_issue_init among other things initializes the timestamp for an IO.
    Rather than have this logic handled by policies, this consolidates it to
    be on the init paths (normal, clone, bounce clone).
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Reviewed-by: Liu Bo <bo.liu@linux.alibaba.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit a7b39b4e961c4e2b3ed837803a7441a65c90ce33
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:29 2018 -0400

    blkcg: always associate a bio with a blkg
    
    Previously, blkg's were only assigned as needed by blk-iolatency and
    blk-throttle. bio->css was also always being associated while blkg was
    being looked up and then thrown away in blkcg_bio_issue_check.
    
    This patch begins the cleanup of bio->css and bio->bi_blkg by always
    associating a blkg in blkcg_bio_issue_check. This tries to create the
    blkg, but if it is not possible, falls back to using the root_blkg of
    the request_queue. Therefore, a bio will always be associated with a
    blkg. The duplicate association logic is removed from blk-throttle and
    blk-iolatency.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 07b05bcc3213ac9f8c28c9d835b4bf3d5798cc60
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:28 2018 -0400

    blkcg: convert blkg_lookup_create to find closest blkg
    
    There are several scenarios where blkg_lookup_create can fail. Examples
    include the blkcg dying, request_queue is dying, or simply being OOM. At
    the end of the day, most handle this by simply falling back to the
    q->root_blkg and calling it a day.
    
    This patch implements the notion of closest blkg. During
    blkg_lookup_create, if it fails to create, return the closest blkg
    found or the q->root_blkg. blkg_try_get_closest is introduced and used
    during association so a bio is always attached to a blkg.
    
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 49f4c2dc2b5066e9211101c59cc0828e81d41614
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:27 2018 -0400

    blkcg: update blkg_lookup_create to do locking
    
    To know when to create a blkg, the general pattern is to do a
    blkg_lookup and if that fails, lock and then do a lookup again and if
    that fails finally create. It doesn't make much sense for everyone who
    wants to do creation to write this themselves.
    
    This changes blkg_lookup_create to do locking and implement this
    pattern. The old blkg_lookup_create is renamed to __blkg_lookup_create.
    If a call site wants to do its own error handling or already owns the
    queue lock, they can use __blkg_lookup_create. This will be used in
    upcoming patches.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Reviewed-by: Liu Bo <bo.liu@linux.alibaba.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 27e6fa996c534c32702aa4d32db0ffa383acd050
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Tue Sep 11 14:41:26 2018 -0400

    blkcg: fix ref count issue with bio_blkcg using task_css
    
    The accessor function bio_blkcg either returns the blkcg associated with
    the bio or finds one in the current context. This can cause an issue
    when trying to associate a bio with a blkcg. Particularly, it's the
    third case that is problematic:
    
            return css_to_blkcg(task_css(current, io_cgrp_id));
    
    As the above may race against task migration and the cgroup exiting, it
    is not always ok to take a reference on the blkcg returned from
    bio_blkcg.
    
    This patch adds association ahead of calling bio_blkcg rather than
    after. This makes association a required and explicit step along the
    code paths for calling bio_blkcg. blk_get_rl is modified as well to get
    a reference to the blkcg it may use and blk_put_rl will always put the
    reference back. Association is also moved above the bio_blkcg call to
    ensure it will not return NULL in blk-iolatency.
    
    BFQ and CFQ utilize this flaw, but due to the complexity, I do not want
    to address this in this series. I've created a private version of the
    function with notes not to use it describing the flaw. Hopefully soon,
    that code can be cleaned up.
    
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit b1589924c046a5e774c6c74b195213555617bb78
Author: Biju Das <biju.das@bp.renesas.com>
Date:   Fri Sep 21 15:25:43 2018 +0100

    dt-bindings: net: ravb: Add support for r8a7744 SoC
    
    Document RZ/G1N (R8A7744) SoC bindings.
    
    Signed-off-by: Biju Das <biju.das@bp.renesas.com>
    Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
    Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 65c5877f64623dcb603082e7b3533a25a2601f1b
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Fri Sep 21 15:52:26 2018 +0200

    ravb: Disable Pause Advertisement
    
    The previous commit to ravb had the side effect of making the PHY
    advertise Pause and Asym Pause, which previously did not happen.  By
    default, phydev->supported has both forms of pause enabled, but
    phydev->advertising does not. The new phy_remove_link_mode() copies
    phydev->supported to phydev->advertising after removing the requested
    link mode. These Pause configuration bits appears it stops the PHY
    from completing Auto-Neg and the link remains down.  Be explicit and
    remove the Pause and Asym Pause modes, so restoring the old behavior.
    
    Fixes: 41124fa64d4b ("net: ethernet: Add helper to remove a supported link mode")
    Reported-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6a12709da354ea149fdf86c4c9aba5b5033e9cf2
Author: Håkon Bugge <Haakon.Bugge@oracle.com>
Date:   Fri Sep 21 12:39:30 2018 +0200

    net: if_arp: use define instead of hard-coded value
    
    uapi/linux/if_arp.h includes linux/netdevice.h, which uses
    IFNAMSIZ. Hence, use it instead of hard-coded value.
    
    Signed-off-by: H…
lshw pushed a commit to lshw/linux-stable-loongson3 that referenced this issue Mar 20, 2023
Clang warns when two declarations' section attributes don't match.

net/rds/ib_stats.c:40:1: warning: section does not match previous
declaration [-Wsection]
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:142:2: note: expanded from macro
'DEFINE_PER_CPU_SHARED_ALIGNED'
        DEFINE_PER_CPU_SECTION(type, name,
PER_CPU_SHARED_ALIGNED_SECTION) \
        ^
./include/linux/percpu-defs.h:93:9: note: expanded from macro
'DEFINE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name;
\
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
net/rds/ib.h:446:1: note: previous attribute is here
DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats);
^
./include/linux/percpu-defs.h:111:2: note: expanded from macro
'DECLARE_PER_CPU'
        DECLARE_PER_CPU_SECTION(type, name, "")
        ^
./include/linux/percpu-defs.h:87:9: note: expanded from macro
'DECLARE_PER_CPU_SECTION'
        extern __PCPU_ATTRS(sec) __typeof__(type) name
               ^
./include/linux/percpu-defs.h:49:26: note: expanded from macro
'__PCPU_ATTRS'
        __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))
\
                                ^
1 warning generated.

The initial definition was added in commit ec16227 ("RDS/IB:
Infiniband transport") and the cache aligned definition was added in
commit e6babe4 ("RDS/IB: Stats and sysctls") right after. The
definition probably should have been updated in net/rds/ib.h, which is
what this patch does.

Link: ClangBuiltLinux/linux#114
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Wsection [BUG] linux A bug that should be fixed in the mainline kernel. [FIXED][LINUX] 4.19 This bug was fixed in Linux 4.19
Projects
None yet
Development

No branches or pull requests

3 participants