01 Nov, 2018

2 commits

  • …l/git/palmer/riscv-linux

    Pull more RISC-V updates from Palmer Dabbelt:
    "This contains the follow-on patches I'd like to target for the 4.20
    merge window. I'm being somewhat conservative here, as while there are
    a few patches on the mailing list that were posted early in the merge
    window I'd like to let those bake for another round -- this was a
    fairly big release as far as RISC-V is concerened, and we need to walk
    before we can run.

    As far as the patches that made it go:

    - A patch to ignore offline CPUs when calculating AT_HWCAP. This
    should fix GDB on the HiFive unleashed, which has an embedded core
    for hart 0 which is exposed to Linux as an offline CPU.

    - A move of EM_RISCV to elf-em.h, which is where it should have been
    to begin with.

    - I've also removed the 64-bit divide routines. I know I'm not really
    playing by my own rules here because I posted the patches this
    morning, but since they shouldn't be in the kernel I think it's
    better to err on the side of going too fast here.

    I don't anticipate any more patch sets for the merge window"

    * tag 'riscv-for-linus-4.20-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux:
    Move EM_RISCV into elf-em.h
    RISC-V: properly determine hardware caps
    Revert "lib: Add umoddi3 and udivmoddi4 of GCC library routines"
    Revert "RISC-V: Select GENERIC_LIB_UMODDI3 on RV32"

    Linus Torvalds
     
  • We don't want 64-bit divide in the kernel.

    This reverts commit 6315730e9eab7de5fa9864bb13a352713f48aef1.

    Signed-off-by: Palmer Dabbelt

    Palmer Dabbelt
     

29 Oct, 2018

2 commits

  • Pull VLA removal from Kees Cook:
    "Globally warn on VLA use.

    This turns on "-Wvla" globally now that the last few trees with their
    VLA removals have landed (crypto, block, net, and powerpc).

    Arnd mentioned that there may be a couple more VLAs hiding in
    hard-to-find randconfigs, but nothing big has shaken out in the last
    month or so in linux-next.

    We should be basically VLA-free now! Wheee. :)

    Summary:

    - Remove unused fallback for BUILD_BUG_ON (which technically contains
    a VLA)

    - Lift -Wvla to the top-level Makefile"

    * tag 'vla-v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    Makefile: Globally enable VLA warning
    compiler.h: give up __compiletime_assert_fallback()

    Linus Torvalds
     
  • Pull XArray conversion from Matthew Wilcox:
    "The XArray provides an improved interface to the radix tree data
    structure, providing locking as part of the API, specifying GFP flags
    at allocation time, eliminating preloading, less re-walking the tree,
    more efficient iterations and not exposing RCU-protected pointers to
    its users.

    This patch set

    1. Introduces the XArray implementation

    2. Converts the pagecache to use it

    3. Converts memremap to use it

    The page cache is the most complex and important user of the radix
    tree, so converting it was most important. Converting the memremap
    code removes the only other user of the multiorder code, which allows
    us to remove the radix tree code that supported it.

    I have 40+ followup patches to convert many other users of the radix
    tree over to the XArray, but I'd like to get this part in first. The
    other conversions haven't been in linux-next and aren't suitable for
    applying yet, but you can see them in the xarray-conv branch if you're
    interested"

    * 'xarray' of git://git.infradead.org/users/willy/linux-dax: (90 commits)
    radix tree: Remove multiorder support
    radix tree test: Convert multiorder tests to XArray
    radix tree tests: Convert item_delete_rcu to XArray
    radix tree tests: Convert item_kill_tree to XArray
    radix tree tests: Move item_insert_order
    radix tree test suite: Remove multiorder benchmarking
    radix tree test suite: Remove __item_insert
    memremap: Convert to XArray
    xarray: Add range store functionality
    xarray: Move multiorder_check to in-kernel tests
    xarray: Move multiorder_shrink to kernel tests
    xarray: Move multiorder account test in-kernel
    radix tree test suite: Convert iteration test to XArray
    radix tree test suite: Convert tag_tagged_items to XArray
    radix tree: Remove radix_tree_clear_tags
    radix tree: Remove radix_tree_maybe_preload_order
    radix tree: Remove split/join code
    radix tree: Remove radix_tree_update_node_t
    page cache: Finish XArray conversion
    dax: Convert page fault handlers to XArray
    ...

    Linus Torvalds
     

27 Oct, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big set of char/misc patches for 4.20-rc1.

    Loads of things here, we have new code in all of these driver
    subsystems:
    - fpga
    - stm
    - extcon
    - nvmem
    - eeprom
    - hyper-v
    - gsmi
    - coresight
    - thunderbolt
    - vmw_balloon
    - goldfish
    - soundwire
    along with lots of fixes and minor changes to other small drivers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (245 commits)
    Documentation/security-bugs: Clarify treatment of embargoed information
    lib: Fix ia64 bootloader linkage
    MAINTAINERS: Clarify UIO vs UIOVEC maintainer
    docs/uio: fix a grammar nitpick
    docs: fpga: document programming fpgas using regions
    fpga: add devm_fpga_region_create
    fpga: bridge: add devm_fpga_bridge_create
    fpga: mgr: add devm_fpga_mgr_create
    hv_balloon: Replace spin_is_locked() with lockdep
    sgi-xp: Replace spin_is_locked() with lockdep
    eeprom: New ee1004 driver for DDR4 memory
    eeprom: at25: remove unneeded 'at25_remove'
    w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size).
    misc: mic: scif: remove set but not used variables 'src_dma_addr, dst_dma_addr'
    misc: mic: fix a DMA pool free failure
    platform: goldfish: pipe: Add a blank line to separate varibles and code
    platform: goldfish: pipe: Remove redundant casting
    platform: goldfish: pipe: Call misc_deregister if init fails
    platform: goldfish: pipe: Move the file-scope goldfish_pipe_dev variable into the driver state
    platform: goldfish: pipe: Move the file-scope goldfish_pipe_miscdev variable into the driver state
    ...

    Linus Torvalds
     

23 Oct, 2018

1 commit

  • Add umoddi3 and udivmoddi4 support for 32-bit.

    The RV32 need the umoddi3 to do modulo when the operands are long long
    type, like other libraries implementation such as ucmpdi2, lshrdi3 and
    so on.

    I encounter the undefined reference 'umoddi3' when I use the in
    house dma driver, although it is in house driver, but I think that
    umoddi3 is a common function for RV32.

    The udivmoddi4 and umoddi3 are copies from libgcc in gcc. There are other
    functions use the udivmoddi4 in libgcc, so I separate the umoddi3 and
    udivmoddi4 for flexible extension in the future.

    Signed-off-by: Zong Li
    Signed-off-by: Palmer Dabbelt

    Zong Li
     

21 Oct, 2018

2 commits

  • The xa_load function brings with it a lot of infrastructure; xa_empty(),
    xa_is_err(), and large chunks of the XArray advanced API that are used
    to implement xa_load.

    As the test-suite demonstrates, it is possible to use the XArray functions
    on a radix tree. The radix tree functions depend on the GFP flags being
    stored in the root of the tree, so it's not possible to use the radix
    tree functions on an XArray.

    Signed-off-by: Matthew Wilcox

    Matthew Wilcox
     
  • This is a direct replacement for struct radix_tree_root. Some of the
    struct members have changed name; convert those, and use a #define so
    that radix_tree users continue to work without change.

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Josef Bacik

    Matthew Wilcox
     

16 Oct, 2018

1 commit

  • kbuild robot reports that since commit ce76d938dd98 ("lib: Add memcat_p():
    paste 2 pointer arrays together") the ia64/hp/sim/boot fails to link:

    > LD arch/ia64/hp/sim/boot/bootloader
    > lib/string.o: In function `__memcat_p':
    > string.c:(.text+0x1f22): undefined reference to `__kmalloc'
    > string.c:(.text+0x1ff2): undefined reference to `__kmalloc'
    > make[1]: *** [arch/ia64/hp/sim/boot/Makefile:37: arch/ia64/hp/sim/boot/bootloader] Error 1

    The reason is, the above commit, via __memcat_p(), adds a call to
    __kmalloc to string.o, which happens to be used in the bootloader, but
    there's no kmalloc or slab or anything.

    Since the linker would only pull in objects that contain referenced
    symbols, moving __memcat_p() to a different compilation unit solves the
    problem.

    Fixes: ce76d938dd98 ("lib: Add memcat_p(): paste 2 pointer arrays together")
    Signed-off-by: Alexander Shishkin
    Reported-by: kbuild test robot
    Cc: Fenghua Yu
    Cc: Tony Luck
    Cc: Joe Perches
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

12 Oct, 2018

1 commit

  • The previous patch introduced very large kernel stack usage and a Makefile
    change to hide the warning about it.

    From what I can tell, a number of things went wrong here:

    - The BCH_MAX_T constant was set to the maximum value for 'n',
    not the maximum for 't', which is much smaller.

    - The stack usage is actually larger than the entire kernel stack
    on some architectures that can use 4KB stacks (m68k, sh, c6x), which
    leads to an immediate overrun.

    - The justification in the patch description claimed that nothing
    changed, however that is not the case even without the two points above:
    the configuration is machine specific, and most boards never use the
    maximum BCH_ECC_WORDS() length but instead have something much smaller.
    That maximum would only apply to machines that use both the maximum
    block size and the maximum ECC strength.

    The largest value for 't' that I could find is '32', which in turn leads
    to a 60 byte array instead of 2048 bytes. Making it '64' for future
    extension seems also worthwhile, with 120 bytes for the array. Anything
    larger won't fit into the OOB area on NAND flash.

    With that changed, the warning can be enabled again.

    Only linux-4.19+ contains the breakage, so this is only needed
    as a stable backport if it does not make it into the release.

    Fixes: 02361bc77888 ("lib/bch: Remove VLA usage")
    Reported-by: Ard Biesheuvel
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Boris Brezillon

    Arnd Bergmann
     

11 Oct, 2018

2 commits

  • Now that Variable Length Arrays (VLAs) have been entirely removed[1]
    from the kernel, enable the VLA warning globally. The only exceptions
    to this are the KASan an UBSan tests which are explicitly checking that
    VLAs trigger their respective tests.

    [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

    Cc: Masahiro Yamada
    Cc: Andrew Morton
    Cc: David Airlie
    Cc: linux-kbuild@vger.kernel.org
    Cc: intel-gfx@lists.freedesktop.org
    Cc: dri-devel@lists.freedesktop.org
    Signed-off-by: Kees Cook

    Kees Cook
     
  • This adds a helper to paste 2 pointer arrays together, useful for merging
    various types of attribute arrays. There are a few places in the kernel
    tree where this is open coded, and I just added one more in the STM class.

    The naming is inspired by memset_p() and memcat(), and partial credit for
    it goes to Andy Shevchenko.

    This patch adds the function wrapped in a type-enforcing macro and a test
    module.

    Signed-off-by: Alexander Shishkin
    Reviewed-by: Andy Shevchenko
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

27 Aug, 2018

1 commit

  • Pull IDA updates from Matthew Wilcox:
    "A better IDA API:

    id = ida_alloc(ida, GFP_xxx);
    ida_free(ida, id);

    rather than the cumbersome ida_simple_get(), ida_simple_remove().

    The new IDA API is similar to ida_simple_get() but better named. The
    internal restructuring of the IDA code removes the bitmap
    preallocation nonsense.

    I hope the net -200 lines of code is convincing"

    * 'ida-4.19' of git://git.infradead.org/users/willy/linux-dax: (29 commits)
    ida: Change ida_get_new_above to return the id
    ida: Remove old API
    test_ida: check_ida_destroy and check_ida_alloc
    test_ida: Convert check_ida_conv to new API
    test_ida: Move ida_check_max
    test_ida: Move ida_check_leaf
    idr-test: Convert ida_check_nomem to new API
    ida: Start new test_ida module
    target/iscsi: Allocate session IDs from an IDA
    iscsi target: fix session creation failure handling
    drm/vmwgfx: Convert to new IDA API
    dmaengine: Convert to new IDA API
    ppc: Convert vas ID allocation to new IDA API
    media: Convert entity ID allocation to new IDA API
    ppc: Convert mmu context allocation to new IDA API
    Convert net_namespace to new IDA API
    cb710: Convert to new IDA API
    rsxx: Convert to new IDA API
    osd: Convert to new IDA API
    sd: Convert to new IDA API
    ...

    Linus Torvalds
     

23 Aug, 2018

1 commit

  • Patch series "add crc64 calculation as kernel library", v5.

    This patchset adds basic implementation of crc64 calculation as a Linux
    kernel library. Since bcache already does crc64 by itself, this patchset
    also modifies bcache code to use the new crc64 library routine.

    Currently bcache is the only user of crc64 calculation, another potential
    user is bcachefs which is on the way to be in mainline kernel. Therefore
    it makes sense to make crc64 calculation to be a public library.

    bcache uses crc64 as storage checksum, if a change of crc lib routines
    results an inconsistent result, the unmatched checksum may make bcache
    'think' the on-disk is corrupted, such a change should be avoided or
    detected as early as possible. Therefore a patch is being prepared which
    adds a crc test framework, to check consistency of different calculations.

    This patch (of 2):

    Add the re-write crc64 calculation routines for Linux kernel. The CRC64
    polynomical arithmetic follows ECMA-182 specification, inspired by CRC
    paper of Dr. Ross N. Williams (see
    http://www.ross.net/crc/download/crc_v3.txt) and other public domain
    implementations.

    All the changes work in this way,
    - When Linux kernel is built, host program lib/gen_crc64table.c will be
    compiled to lib/gen_crc64table and executed.
    - The output of gen_crc64table execution is an array called as lookup
    table (a.k.a POLY 0x42f0e1eba9ea369) which contain 256 64-bit long
    numbers, this table is dumped into header file lib/crc64table.h.
    - Then the header file is included by lib/crc64.c for normal 64bit crc
    calculation.
    - Function declaration of the crc64 calculation routines is placed in
    include/linux/crc64.h

    Currently bcache is the only user of crc64_be(), another potential user is
    bcachefs which is on the way to be in mainline kernel. Therefore it makes
    sense to move crc64 calculation into lib/crc64.c as public code.

    [colyli@suse.de: fix review comments from v4]
    Link: http://lkml.kernel.org/r/20180726053352.2781-2-colyli@suse.de
    Link: http://lkml.kernel.org/r/20180718165545.1622-2-colyli@suse.de
    Signed-off-by: Coly Li
    Co-developed-by: Andy Shevchenko
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Hannes Reinecke
    Cc: Greg Kroah-Hartman
    Cc: Andy Shevchenko
    Cc: Michael Lyle
    Cc: Kent Overstreet
    Cc: Thomas Gleixner
    Cc: Kate Stewart
    Cc: Eric Biggers
    Cc: Randy Dunlap
    Cc: Noah Massey
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Coly Li
     

22 Aug, 2018

1 commit


16 Aug, 2018

2 commits

  • Pull SCSI updates from James Bottomley:
    "This is mostly updates to the usual drivers: mpt3sas, lpfc, qla2xxx,
    hisi_sas, smartpqi, megaraid_sas, arcmsr.

    In addition, with the continuing absence of Nic we have target updates
    for tcmu and target core (all with reviews and acks).

    The biggest observable change is going to be that we're (again) trying
    to switch to mulitqueue as the default (a user can still override the
    setting on the kernel command line).

    Other major core stuff is the removal of the remaining Microchannel
    drivers, an update of the internal timers and some reworks of
    completion and result handling"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (203 commits)
    scsi: core: use blk_mq_run_hw_queues in scsi_kick_queue
    scsi: ufs: remove unnecessary query(DM) UPIU trace
    scsi: qla2xxx: Fix issue reported by static checker for qla2x00_els_dcmd2_sp_done()
    scsi: aacraid: Spelling fix in comment
    scsi: mpt3sas: Fix calltrace observed while running IO & reset
    scsi: aic94xx: fix an error code in aic94xx_init()
    scsi: st: remove redundant pointer STbuffer
    scsi: qla2xxx: Update driver version to 10.00.00.08-k
    scsi: qla2xxx: Migrate NVME N2N handling into state machine
    scsi: qla2xxx: Save frame payload size from ICB
    scsi: qla2xxx: Fix stalled relogin
    scsi: qla2xxx: Fix race between switch cmd completion and timeout
    scsi: qla2xxx: Fix Management Server NPort handle reservation logic
    scsi: qla2xxx: Flush mailbox commands on chip reset
    scsi: qla2xxx: Fix unintended Logout
    scsi: qla2xxx: Fix session state stuck in Get Port DB
    scsi: qla2xxx: Fix redundant fc_rport registration
    scsi: qla2xxx: Silent erroneous message
    scsi: qla2xxx: Prevent sysfs access when chip is down
    scsi: qla2xxx: Add longer window for chip reset
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    - Gustavo A. R. Silva keeps working on the implicit switch fallthru
    changes.

    - Support 802.11ax High-Efficiency wireless in cfg80211 et al, From
    Luca Coelho.

    - Re-enable ASPM in r8169, from Kai-Heng Feng.

    - Add virtual XFRM interfaces, which avoids all of the limitations of
    existing IPSEC tunnels. From Steffen Klassert.

    - Convert GRO over to use a hash table, so that when we have many
    flows active we don't traverse a long list during accumluation.

    - Many new self tests for routing, TC, tunnels, etc. Too many
    contributors to mention them all, but I'm really happy to keep
    seeing this stuff.

    - Hardware timestamping support for dpaa_eth/fsl-fman from Yangbo Lu.

    - Lots of cleanups and fixes in L2TP code from Guillaume Nault.

    - Add IPSEC offload support to netdevsim, from Shannon Nelson.

    - Add support for slotting with non-uniform distribution to netem
    packet scheduler, from Yousuk Seung.

    - Add UDP GSO support to mlx5e, from Boris Pismenny.

    - Support offloading of Team LAG in NFP, from John Hurley.

    - Allow to configure TX queue selection based upon RX queue, from
    Amritha Nambiar.

    - Support ethtool ring size configuration in aquantia, from Anton
    Mikaev.

    - Support DSCP and flowlabel per-transport in SCTP, from Xin Long.

    - Support list based batching and stack traversal of SKBs, this is
    very exciting work. From Edward Cree.

    - Busyloop optimizations in vhost_net, from Toshiaki Makita.

    - Introduce the ETF qdisc, which allows time based transmissions. IGB
    can offload this in hardware. From Vinicius Costa Gomes.

    - Add parameter support to devlink, from Moshe Shemesh.

    - Several multiplication and division optimizations for BPF JIT in
    nfp driver, from Jiong Wang.

    - Lots of prepatory work to make more of the packet scheduler layer
    lockless, when possible, from Vlad Buslov.

    - Add ACK filter and NAT awareness to sch_cake packet scheduler, from
    Toke Høiland-Jørgensen.

    - Support regions and region snapshots in devlink, from Alex Vesker.

    - Allow to attach XDP programs to both HW and SW at the same time on
    a given device, with initial support in nfp. From Jakub Kicinski.

    - Add TLS RX offload and support in mlx5, from Ilya Lesokhin.

    - Use PHYLIB in r8169 driver, from Heiner Kallweit.

    - All sorts of changes to support Spectrum 2 in mlxsw driver, from
    Ido Schimmel.

    - PTP support in mv88e6xxx DSA driver, from Andrew Lunn.

    - Make TCP_USER_TIMEOUT socket option more accurate, from Jon
    Maxwell.

    - Support for templates in packet scheduler classifier, from Jiri
    Pirko.

    - IPV6 support in RDS, from Ka-Cheong Poon.

    - Native tproxy support in nf_tables, from Máté Eckl.

    - Maintain IP fragment queue in an rbtree, but optimize properly for
    in-order frags. From Peter Oskolkov.

    - Improvde handling of ACKs on hole repairs, from Yuchung Cheng"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1996 commits)
    bpf: test: fix spelling mistake "REUSEEPORT" -> "REUSEPORT"
    hv/netvsc: Fix NULL dereference at single queue mode fallback
    net: filter: mark expected switch fall-through
    xen-netfront: fix warn message as irq device name has '/'
    cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0
    net: dsa: mv88e6xxx: missing unlock on error path
    rds: fix building with IPV6=m
    inet/connection_sock: prefer _THIS_IP_ to current_text_addr
    net: dsa: mv88e6xxx: bitwise vs logical bug
    net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
    ieee802154: hwsim: using right kind of iteration
    net: hns3: Add vlan filter setting by ethtool command -K
    net: hns3: Set tx ring' tc info when netdev is up
    net: hns3: Remove tx ring BD len register in hns3_enet
    net: hns3: Fix desc num set to default when setting channel
    net: hns3: Fix for phy link issue when using marvell phy driver
    net: hns3: Fix for information of phydev lost problem when down/up
    net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero
    net: hns3: Add support for serdes loopback selftest
    bnxt_en: take coredump_record structure off stack
    ...

    Linus Torvalds
     

11 Aug, 2018

1 commit

  • Pull NAND updates from Miquel Raynal:

    "
    NAND core changes:
    - Add the SPI-NAND framework.
    - Create a helper to find the best ECC configuration.
    - Create NAND controller operations.
    - Allocate dynamically ONFI parameters structure.
    - Add defines for ONFI version bits.
    - Add manufacturer fixup for ONFI parameter page.
    - Add an option to specify NAND chip as a boot device.
    - Add Reed-Solomon error correction algorithm.
    - Better name for the controller structure.
    - Remove unused caller_is_module() definition.
    - Make subop helpers return unsigned values.
    - Expose _notsupp() helpers for raw page accessors.
    - Add default values for dynamic timings.
    - Kill the chip->scan_bbt() hook.
    - Rename nand_default_bbt() into nand_create_bbt().
    - Start to clean the nand_chip structure.
    - Remove stale prototype from rawnand.h.

    Raw NAND controllers drivers changes:
    - Qcom: structuring cleanup.
    - Denali: use core helper to find the best ECC configuration.
    - Possible build of almost all drivers by adding a dependency on
    COMPILE_TEST for almost all of them in Kconfig, implies various
    fixes, Kconfig cleanup, GPIO headers inclusion cleanup, and even
    changes in sparc64 and ia64 architectures.
    - Clean the ->probe() functions error path of a lot of drivers.
    - Migrate all drivers to use nand_scan() instead of
    nand_scan_ident()/nand_scan_tail() pair.
    - Use mtd_device_register() where applicable to simplify the code.
    - Marvell:
    * Handle on-die ECC.
    * Better clocks handling.
    * Remove bogus comment.
    * Add suspend and resume support.
    - Tegra: add NAND controller driver.
    - Atmel:
    * Add module param to avoid using dma.
    * Drop Wenyou Yang from MAINTAINERS.
    - Denali: optimize timings handling.
    - FSMC: Stop using chip->read_buf().
    - FSL:
    * Switch to SPDX license tag identifiers.
    * Fix qualifiers in MXC init functions.

    Raw NAND chip drivers changes:
    - Micron:
    * Add fixup for ONFI revision.
    * Update ecc_stats.corrected.
    * Make ECC activation stateful.
    * Avoid enabling/disabling ECC when it can't be disabled.
    * Get the actual number of bitflips.
    * Allow forced on-die ECC.
    * Support 8/512 on-die ECC.
    * Fix on-die ECC detection logic.
    - Hynix:
    * Fix decoding the OOB size on H27UCG8T2BTR.
    * Use ->exec_op() in hynix_nand_reg_write_op().
    "

    Boris Brezillon
     

24 Jul, 2018

1 commit

  • …ub/scm/linux/kernel/git/kvalo/wireless-drivers-next

    Kalle Valo says:

    ====================
    wireless-drivers-next patches for 4.19

    The first set of patches for 4.19. Only smaller features and bug
    fixes, not really anything major. Also included are changes to
    include/linux/bitfield.h, we agreed with Johannes that it makes sense
    to apply them via wireless-drivers-next.

    Major changes:

    ath10k

    * support channel 173

    * fix spectral scan for QCA9984 and QCA9888 chipsets

    ath6kl

    * add support for Dell Wireless 1537

    ti wlcore

    * add support for runtime PM

    * enable runtime PM autosuspend support

    qtnfmac

    * support changing MAC address

    * enable source MAC address randomization support

    libertas

    * fix suspend and resume for SDIO cards

    mt76

    * add software DFS radar pattern detector for mt76x2 based devices
    ====================

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

    David S. Miller
     

27 Jun, 2018

1 commit

  • Add tests for the bitfield helpers. The constant ones will all
    be folded to nothing by the compiler (if everything is correct
    in the header file), and the variable ones do some tests against
    open-coding the necessary shifts.

    A few test cases that should fail/warn compilation are provided
    under ifdef.

    Suggested-by: Andy Shevchenko
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Johannes Berg
    Signed-off-by: Kalle Valo

    Johannes Berg
     

24 Jun, 2018

1 commit

  • Pull locking fixes from Thomas Gleixner:
    "A set of fixes and updates for the locking code:

    - Prevent lockdep from updating irq state within its own code and
    thereby confusing itself.

    - Buid fix for older GCCs which mistreat anonymous unions

    - Add a missing lockdep annotation in down_read_non_onwer() which
    causes up_read_non_owner() to emit a lockdep splat

    - Remove the custom alpha dec_and_lock() implementation which is
    incorrect in terms of ordering and use the generic one.

    The remaining two commits are not strictly fixes. They provide irqsave
    variants of atomic_dec_and_lock() and refcount_dec_and_lock(). These
    are required to merge the relevant updates and cleanups into different
    maintainer trees for 4.19, so routing them into mainline without
    actual users is the sanest approach.

    They should have been in -rc1, but last weekend I took the liberty to
    just avoid computers in order to regain some mental sanity"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/qspinlock: Fix build for anonymous union in older GCC compilers
    locking/lockdep: Do not record IRQ state within lockdep code
    locking/rwsem: Fix up_read_non_owner() warning with DEBUG_RWSEMS
    locking/refcounts: Implement refcount_dec_and_lock_irqsave()
    atomic: Add irqsave variant of atomic_dec_and_lock()
    alpha: Remove custom dec_and_lock() implementation

    Linus Torvalds
     

22 Jun, 2018

1 commit

  • In the quest to remove all stack VLA usage from the kernel[1], this
    allocates a fixed size stack array to cover the range needed for
    bch. This was done instead of a preallocation on the SLAB due to
    performance reasons, shown by Ivan Djelic:

    little-endian, type sizes: int=4 long=8 longlong=8
    cpu: Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz
    calibration: iter=4.9143µs niter=2034 nsamples=200 m=13 t=4

      Buffer allocation |  Encoding throughput (Mbit/s)
    ---------------------------------------------------
     on-stack, VLA      |   3988
     on-stack, fixed    |   4494
     kmalloc            |   1967

    So this change actually improves performance too, it seems.

    The resulting stack allocation can get rather large; without
    CONFIG_BCH_CONST_PARAMS, it will allocate 4096 bytes, which
    trips the stack size checking:

    lib/bch.c: In function ‘encode_bch’:
    lib/bch.c:261:1: warning: the frame size of 4432 bytes is larger than 2048 bytes [-Wframe-larger-than=]

    Even the default case for "allmodconfig" (with CONFIG_BCH_CONST_M=14 and
    CONFIG_BCH_CONST_T=4) would have started throwing a warning:

    lib/bch.c: In function ‘encode_bch’:
    lib/bch.c:261:1: warning: the frame size of 2288 bytes is larger than 2048 bytes [-Wframe-larger-than=]

    But this is how large it's always been; it was just hidden from
    the checker because it was a VLA. So the Makefile has been adjusted to
    silence this warning for anything smaller than 4500 bytes, which should
    provide room for normal cases, but still low enough to catch any future
    pathological situations.

    [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

    Signed-off-by: Kees Cook
    Reviewed-by: Ivan Djelic
    Tested-by: Ivan Djelic
    Acked-by: Boris Brezillon
    Signed-off-by: Boris Brezillon

    Kees Cook
     

20 Jun, 2018

1 commit


14 Jun, 2018

2 commits


13 Jun, 2018

2 commits

  • Alpha provides a custom implementation of dec_and_lock(). The functions
    is split into two parts:
    - atomic_add_unless() + return 0 (fast path in assembly)
    - remaining part including locking (slow path in C)

    Comparing the result of the alpha implementation with the generic
    implementation compiled by gcc it looks like the fast path is optimized
    by avoiding a stack frame (and reloading the GP), register store and all
    this. This is only done in the slowpath.
    After marking the slowpath (atomic_dec_and_lock_1()) as "noinline" and
    doing the slowpath in C (the atomic_add_unless(atomic, -1, 1) part) I
    noticed differences in the resulting assembly:
    - the GP is still reloaded
    - atomic_add_unless() adds more memory barriers compared to the custom
    assembly
    - the custom assembly here does "load, sub, beq" while
    atomic_add_unless() does "load, cmpeq, add, bne". This is okay because
    it compares against zero after subtraction while the generic code
    compares against 1 before.

    I'm not sure if avoiding the stack frame (and GP reloading) brings a lot
    in terms of performance. Regarding the different barriers, Peter
    Zijlstra says:

    |refcount decrement needs to be a RELEASE operation, such that all the
    |load/stores to the object happen before we decrement the refcount.
    |
    |Otherwise things like:
    |
    | obj->foo = 5;
    | refcnt_dec(&obj->ref);
    |
    |can be re-ordered, which then allows fun scenarios like:
    |
    | CPU0 CPU1
    |
    | refcnt_dec(&obj->ref);
    | if (dec_and_test(&obj->ref))
    | free(obj);
    | obj->foo = 5; // oops UaF
    |
    |
    |This means (for alpha) that there should be a memory barrier _before_
    |the decrement, however the dec_and_lock asm thing only has one _after_,
    |which, per the above, is too late.
    |
    |The generic version using add_unless will result in memory barrier
    |before and after (because that is the rule for atomic ops with a return
    |value) which is strictly too many barriers for the refcount story, but
    |who knows what other ordering requirements code has.

    Remove the custom alpha implementation of dec_and_lock() and if it is an
    issue (performance wise) then the fast path could still be inlined.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra (Intel)
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: linux-alpha@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180606115918.GG12198@hirez.programming.kicks-ass.net
    Link: https://lkml.kernel.org/r20180612161621.22645-2-bigeasy@linutronix.de

    Sebastian Andrzej Siewior
     
  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.18.

    Rough overview:

    - MAINTAINERS: Add Paul Burton as MIPS co-maintainer

    - Misc: Generic compiler intrinsics, Y2038 improvements, Perf+MT fixes

    - Platform support: Netgear WNR1000 V3, Microsemi Ocelot integrated
    switch, Ingenic watchdog cleanups

    More detailed summary:

    Maintainers:

    - Add Paul Burton as MIPS co-maintainer, as I soon won't have access
    to much MIPS hardware, nor enough time to properly maintain MIPS on
    my own.

    Miscellaneous:

    - Use generic GCC library routines from lib/
    - Add notrace to generic ucmpdi2 implementation
    - Rename compiler intrinsic selects to GENERIC_LIB_*
    - vmlinuz: Use generic ashldi3

    - y2038: Convert update/read_persistent_clock() to *_clock64()
    - sni: Remove read_persistent_clock()

    - perf: Fix perf with MT counting other threads
    - Probe for per-TC perf counters in cpu-probe.c
    - Use correct VPE ID for VPE tracing

    Minor cleanups:

    - Avoid unneeded built-in.a in DTS dirs

    - sc-debugfs: Re-use kstrtobool_from_user

    - memset.S: Reinstate delay slot indentation

    - VPE: Fix spelling "uneeded" -> "Unneeded"

    Platform support:

    BCM47xx:

    - Add support for Netgear WNR1000 V3

    - firmware: Support small NVRAM partitions

    - Use __initdata for LEDs platform data

    Ingenic:

    - Watchdog driver & platform code improvements:
    - Disable clock after stopping counter
    - Use devm_* functions
    - Drop module remove function
    - Move platform reset code to restart handler in driver
    - JZ4740: Convert watchdog instantiation to DT
    - JZ4780: Fix watchdog DT node
    - qi_lb60_defconfig: Enable watchdog driver

    Microsemi:

    - Ocelot: Add support for integrated switch
    - pcb123: Connect phys to ports"

    * tag 'mips_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (30 commits)
    MAINTAINERS: Add Paul Burton as MIPS co-maintainer
    MIPS: ptrace: Make FPU context layout comments match reality
    MIPS: memset.S: Reinstate delay slot indentation
    MIPS: perf: Fix perf with MT counting other threads
    MIPS: perf: Use correct VPE ID when setting up VPE tracing
    MIPS: perf: More robustly probe for the presence of per-tc counters
    MIPS: Probe for MIPS MT perf counters per TC
    MIPS: mscc: Connect phys to ports on ocelot_pcb123
    MIPS: mscc: Add switch to ocelot
    MIPS: JZ4740: Drop old platform reset code
    MIPS: qi_lb60: Enable the jz4740-wdt driver
    MIPS: JZ4780: dts: Fix watchdog node
    MIPS: JZ4740: dts: Add bindings for the jz4740-wdt driver
    watchdog: JZ4740: Drop module remove function
    watchdog: JZ4740: Register a restart handler
    watchdog: JZ4740: Use devm_* functions
    watchdog: JZ4740: Disable clock after stopping counter
    MIPS: VPE: Fix spelling mistake: "uneeded" -> "unneeded"
    MIPS: Re-use kstrtobool_from_user()
    MIPS: Convert update_persistent_clock() to update_persistent_clock64()
    ...

    Linus Torvalds
     

07 Jun, 2018

1 commit

  • Pull overflow updates from Kees Cook:
    "This adds the new overflow checking helpers and adds them to the
    2-factor argument allocators. And this adds the saturating size
    helpers and does a treewide replacement for the struct_size() usage.
    Additionally this adds the overflow testing modules to make sure
    everything works.

    I'm still working on the treewide replacements for allocators with
    "simple" multiplied arguments:

    *alloc(a * b, ...) -> *alloc_array(a, b, ...)

    and

    *zalloc(a * b, ...) -> *calloc(a, b, ...)

    as well as the more complex cases, but that's separable from this
    portion of the series. I expect to have the rest sent before -rc1
    closes; there are a lot of messy cases to clean up.

    Summary:

    - Introduce arithmetic overflow test helper functions (Rasmus)

    - Use overflow helpers in 2-factor allocators (Kees, Rasmus)

    - Introduce overflow test module (Rasmus, Kees)

    - Introduce saturating size helper functions (Matthew, Kees)

    - Treewide use of struct_size() for allocators (Kees)"

    * tag 'overflow-v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    treewide: Use struct_size() for devm_kmalloc() and friends
    treewide: Use struct_size() for vmalloc()-family
    treewide: Use struct_size() for kmalloc()-family
    device: Use overflow helpers for devm_kmalloc()
    mm: Use overflow helpers in kvmalloc()
    mm: Use overflow helpers in kmalloc_array*()
    test_overflow: Add memory allocation overflow tests
    overflow.h: Add allocation size calculation helpers
    test_overflow: Report test failures
    test_overflow: macrofy some more, do more tests for free
    lib: add runtime test of check_*_overflow functions
    compiler.h: enable builtin overflow checkers and add fallback code

    Linus Torvalds
     

06 Jun, 2018

1 commit

  • This adds a small module for testing that the check_*_overflow
    functions work as expected, whether implemented in C or using gcc
    builtins.

    Example output:

    test_overflow: u8 : 18 tests
    test_overflow: s8 : 19 tests
    test_overflow: u16: 17 tests
    test_overflow: s16: 17 tests
    test_overflow: u32: 17 tests
    test_overflow: s32: 17 tests
    test_overflow: u64: 17 tests
    test_overflow: s64: 21 tests

    Signed-off-by: Rasmus Villemoes
    [kees: add output to commit log, drop u64 tests on 32-bit]
    Signed-off-by: Kees Cook

    Rasmus Villemoes
     

19 May, 2018

1 commit

  • Add a new dma_map_ops implementation that uses dma-direct for the
    address mapping of streaming mappings, and which requires arch-specific
    implemenations of coherent allocate/free.

    Architectures have to provide flushing helpers to ownership trasnfers
    to the device and/or CPU, and can provide optional implementations of
    the coherent mmap functionality, and the cache_flush routines for
    non-coherent long term allocations.

    Signed-off-by: Christoph Hellwig
    Tested-by: Alexey Brodkin
    Acked-by: Vineet Gupta

    Christoph Hellwig
     

09 May, 2018

1 commit


23 Apr, 2018

1 commit

  • When these are included into arch Kconfig files, maintaining
    alphabetical ordering of the selects means these get split up. To allow
    for keeping things tidier and alphabetical, rename the selects to
    GENERIC_LIB_*

    Signed-off-by: Matt Redfearn
    Acked-by: Palmer Dabbelt
    Cc: Antony Pavlov
    Cc: Ralf Baechle
    Cc: linux-riscv@lists.infradead.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/19049/
    Signed-off-by: James Hogan

    Matt Redfearn
     

12 Apr, 2018

2 commits

  • This is a test module for UBSAN. It triggers all undefined behaviors
    that linux supports now, and detect them.

    All test-cases have passed by compiling with gcc-5.5.0.

    If use gcc-4.9.x, misaligned, out-of-bounds, object-size-mismatch will not
    be detected. Because gcc-4.9.x doesn't support them.

    Link: http://lkml.kernel.org/r/20180309102247.GA2944@pjb1027-Latitude-E5410
    Signed-off-by: Jinbum Park
    Cc: Andrey Ryabinin
    Cc: Dmitry Vyukov
    Cc: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jinbum Park
     
  • A compiler can optimize away memset calls by replacing them with mov
    instructions. There are KASAN tests that specifically test that KASAN
    correctly handles memset calls so we don't want this optimization to
    happen.

    The solution is to add -fno-builtin flag to test_kasan.ko

    Link: http://lkml.kernel.org/r/105ec9a308b2abedb1a0d1fdced0c22d765e4732.1519924383.git.andreyknvl@google.com
    Signed-off-by: Andrey Konovalov
    Acked-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Cc: Geert Uytterhoeven
    Cc: Nick Terrell
    Cc: Chris Mason
    Cc: Yury Norov
    Cc: Al Viro
    Cc: "Luis R . Rodriguez"
    Cc: Palmer Dabbelt
    Cc: "Paul E . McKenney"
    Cc: Jeff Layton
    Cc: "Jason A . Donenfeld"
    Cc: Kostya Serebryany
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Konovalov
     

07 Apr, 2018

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - move pci_uevent_ers() out of pci.h (Michael Ellerman)

    - skip ASPM common clock warning if BIOS already configured it (Sinan
    Kaya)

    - fix ASPM Coverity warning about threshold_ns (Gustavo A. R. Silva)

    - remove last user of pci_get_bus_and_slot() and the function itself
    (Sinan Kaya)

    - add decoding for 16 GT/s link speed (Jay Fang)

    - add interfaces to get max link speed and width (Tal Gilboa)

    - add pcie_bandwidth_capable() to compute max supported link bandwidth
    (Tal Gilboa)

    - add pcie_bandwidth_available() to compute bandwidth available to
    device (Tal Gilboa)

    - add pcie_print_link_status() to log link speed and whether it's
    limited (Tal Gilboa)

    - use PCI core interfaces to report when device performance may be
    limited by its slot instead of doing it in each driver (Tal Gilboa)

    - fix possible cpqphp NULL pointer dereference (Shawn Lin)

    - rescan more of the hierarchy on ACPI hotplug to fix Thunderbolt/xHCI
    hotplug (Mika Westerberg)

    - add support for PCI I/O port space that's neither directly accessible
    via CPU in/out instructions nor directly mapped into CPU physical
    memory space. This is fairly intrusive and includes minor changes to
    interfaces used for I/O space on most platforms (Zhichang Yuan, John
    Garry)

    - add support for HiSilicon Hip06/Hip07 LPC I/O space (Zhichang Yuan,
    John Garry)

    - use PCI_EXP_DEVCTL2_COMP_TIMEOUT in rapidio/tsi721 (Bjorn Helgaas)

    - remove possible NULL pointer dereference in of_pci_bus_find_domain_nr()
    (Shawn Lin)

    - report quirk timings with dev_info (Bjorn Helgaas)

    - report quirks that take longer than 10ms (Bjorn Helgaas)

    - add and use Altera Vendor ID (Johannes Thumshirn)

    - tidy Makefiles and comments (Bjorn Helgaas)

    - don't set up INTx if MSI or MSI-X is enabled to align cris, frv,
    ia64, and mn10300 with x86 (Bjorn Helgaas)

    - move pcieport_if.h to drivers/pci/pcie/ to encapsulate it (Frederick
    Lawler)

    - merge pcieport_if.h into portdrv.h (Bjorn Helgaas)

    - move workaround for BIOS PME issue from portdrv to PCI core (Bjorn
    Helgaas)

    - completely disable portdrv with "pcie_ports=compat" (Bjorn Helgaas)

    - remove portdrv link order dependency (Bjorn Helgaas)

    - remove support for unused VC portdrv service (Bjorn Helgaas)

    - simplify portdrv feature permission checking (Bjorn Helgaas)

    - remove "pcie_hp=nomsi" parameter (use "pci=nomsi" instead) (Bjorn
    Helgaas)

    - remove unnecessary "pcie_ports=auto" parameter (Bjorn Helgaas)

    - use cached AER capability offset (Frederick Lawler)

    - don't enable DPC if BIOS hasn't granted AER control (Mika Westerberg)

    - rename pcie-dpc.c to dpc.c (Bjorn Helgaas)

    - use generic pci_mmap_resource_range() instead of powerpc and xtensa
    arch-specific versions (David Woodhouse)

    - support arbitrary PCI host bridge offsets on sparc (Yinghai Lu)

    - remove System and Video ROM reservations on sparc (Bjorn Helgaas)

    - probe for device reset support during enumeration instead of runtime
    (Bjorn Helgaas)

    - add ACS quirk for Ampere (née APM) root ports (Feng Kan)

    - add function 1 DMA alias quirk for Marvell 88SE9220 (Thomas
    Vincent-Cross)

    - protect device restore with device lock (Sinan Kaya)

    - handle failure of FLR gracefully (Sinan Kaya)

    - handle CRS (config retry status) after device resets (Sinan Kaya)

    - skip various config reads for SR-IOV VFs as an optimization
    (KarimAllah Ahmed)

    - consolidate VPD code in vpd.c (Bjorn Helgaas)

    - add Tegra dependency on PCI_MSI_IRQ_DOMAIN (Arnd Bergmann)

    - add DT support for R-Car r8a7743 (Biju Das)

    - fix a PCI_EJECT vs PCI_BUS_RELATIONS race condition in Hyper-V host
    bridge driver that causes a general protection fault (Dexuan Cui)

    - fix Hyper-V host bridge hang in MSI setup on 1-vCPU VMs with SR-IOV
    (Dexuan Cui)

    - fix Hyper-V host bridge hang when ejecting a VF before setting up MSI
    (Dexuan Cui)

    - make several structures static (Fengguang Wu)

    - increase number of MSI IRQs supported by Synopsys DesignWare bridges
    from 32 to 256 (Gustavo Pimentel)

    - implemented multiplexed IRQ domain API and remove obsolete MSI IRQ
    API from DesignWare drivers (Gustavo Pimentel)

    - add Tegra power management support (Manikanta Maddireddy)

    - add Tegra loadable module support (Manikanta Maddireddy)

    - handle 64-bit BARs correctly in endpoint support (Niklas Cassel)

    - support optional regulator for HiSilicon STB (Shawn Guo)

    - use regulator bulk API for Qualcomm apq8064 (Srinivas Kandagatla)

    - support power supplies for Qualcomm msm8996 (Srinivas Kandagatla)

    * tag 'pci-v4.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (123 commits)
    MAINTAINERS: Add John Garry as maintainer for HiSilicon LPC driver
    HISI LPC: Add ACPI support
    ACPI / scan: Do not enumerate Indirect IO host children
    ACPI / scan: Rename acpi_is_serial_bus_slave() for more general use
    HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
    of: Add missing I/O range exception for indirect-IO devices
    PCI: Apply the new generic I/O management on PCI IO hosts
    PCI: Add fwnode handler as input param of pci_register_io_range()
    PCI: Remove __weak tag from pci_register_io_range()
    MAINTAINERS: Add missing /drivers/pci/cadence directory entry
    fm10k: Report PCIe link properties with pcie_print_link_status()
    net/mlx5e: Use pcie_bandwidth_available() to compute bandwidth
    net/mlx5: Report PCIe link properties with pcie_print_link_status()
    net/mlx4_core: Report PCIe link properties with pcie_print_link_status()
    PCI: Add pcie_print_link_status() to log link speed and whether it's limited
    PCI: Add pcie_bandwidth_available() to compute bandwidth available to device
    misc: pci_endpoint_test: Handle 64-bit BARs properly
    PCI: designware-ep: Make dw_pcie_ep_reset_bar() handle 64-bit BARs properly
    PCI: endpoint: Make sure that BAR_5 does not have 64-bit flag set when clearing
    PCI: endpoint: Make epc->ops->clear_bar()/pci_epc_clear_bar() take struct *epf_bar
    ...

    Linus Torvalds
     

06 Apr, 2018

1 commit

  • Pull printk updates from Petr Mladek:

    - Add info about loaded kdump kernel into the dump stack header

    - Move dump-stack related code from printk.c to lib/dump_stack.c

    - Write message about suspending consoles in KERN_INFO log level

    * 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
    printk: change message to pr_info
    printk: move dump stack related code to lib/dump_stack.c
    print kdump kernel loaded status in stack dump

    Linus Torvalds
     

22 Mar, 2018

1 commit

  • 41f8bba7f555 ("of/pci: Add pci_register_io_range() and
    pci_pio_to_address()") added support for PCI I/O space mapped into CPU
    physical memory space. With that support, the I/O ranges configured for
    PCI/PCIe hosts on some architectures can be mapped to logical PIO and
    converted easily between CPU address and the corresponding logical PIO.
    Based on this, PCI I/O port space can be accessed via in/out accessors that
    use memory read/write.

    But on some platforms, there are bus hosts that access I/O port space with
    host-local I/O port addresses rather than memory addresses.

    Add a more generic I/O mapping method to support those devices. With this
    patch, both the CPU addresses and the host-local port can be mapped into
    the logical PIO space with different logical/fake PIOs. After this, all
    the I/O accesses to either PCI MMIO devices or host-local I/O peripherals
    can be unified into the existing I/O accessors defined in asm-generic/io.h
    and be redirected to the right device-specific hooks based on the input
    logical PIO.

    Tested-by: dann frazier
    Signed-off-by: Zhichang Yuan
    Signed-off-by: Gabriele Paoloni
    Signed-off-by: John Garry
    [bhelgaas: remove -EFAULT return from logic_pio_register_range() per
    https://lkml.kernel.org/r/20180403143909.GA21171@ulmo, fix NULL pointer
    checking per https://lkml.kernel.org/r/20180403211505.GA29612@embeddedor.com]
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Andy Shevchenko

    Zhichang Yuan
     

15 Mar, 2018

1 commit

  • dump_stack related stuff should belong to lib/dump_stack.c thus move them
    there. Also conditionally compile lib/dump_stack.c since dump_stack code
    does not make sense if printk is disabled.

    Link: http://lkml.kernel.org/r/20180213072834.GA24784@dhcp-128-65.nay.redhat.com
    To: Steven Rostedt
    Cc: linux-kernel@vger.kernel.org
    Cc: akpm@linux-foundation.org
    Cc: Andi Kleen
    Signed-off-by: Dave Young
    Suggested-by: Steven Rostedt
    Suggested-by: Sergey Senozhatsky
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Dave Young
     

07 Feb, 2018

1 commit

  • As suggested in review comments, rename test_find_bit.c to
    find_bit_benchmark.c.

    Link: http://lkml.kernel.org/r/20171124143040.a44jvhmnaiyedg2i@yury-thinkpad
    Signed-off-by: Yury Norov
    Tested-by: Geert Uytterhoeven
    Cc: Alexey Dobriyan
    Cc: Clement Courbet
    Cc: Matthew Wilcox
    Cc: Rasmus Villemoes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     

01 Feb, 2018

1 commit

  • Pull networking updates from David Miller:

    1) Significantly shrink the core networking routing structures. Result
    of http://vger.kernel.org/~davem/seoul2017_netdev_keynote.pdf

    2) Add netdevsim driver for testing various offloads, from Jakub
    Kicinski.

    3) Support cross-chip FDB operations in DSA, from Vivien Didelot.

    4) Add a 2nd listener hash table for TCP, similar to what was done for
    UDP. From Martin KaFai Lau.

    5) Add eBPF based queue selection to tun, from Jason Wang.

    6) Lockless qdisc support, from John Fastabend.

    7) SCTP stream interleave support, from Xin Long.

    8) Smoother TCP receive autotuning, from Eric Dumazet.

    9) Lots of erspan tunneling enhancements, from William Tu.

    10) Add true function call support to BPF, from Alexei Starovoitov.

    11) Add explicit support for GRO HW offloading, from Michael Chan.

    12) Support extack generation in more netlink subsystems. From Alexander
    Aring, Quentin Monnet, and Jakub Kicinski.

    13) Add 1000BaseX, flow control, and EEE support to mvneta driver. From
    Russell King.

    14) Add flow table abstraction to netfilter, from Pablo Neira Ayuso.

    15) Many improvements and simplifications to the NFP driver bpf JIT,
    from Jakub Kicinski.

    16) Support for ipv6 non-equal cost multipath routing, from Ido
    Schimmel.

    17) Add resource abstration to devlink, from Arkadi Sharshevsky.

    18) Packet scheduler classifier shared filter block support, from Jiri
    Pirko.

    19) Avoid locking in act_csum, from Davide Caratti.

    20) devinet_ioctl() simplifications from Al viro.

    21) More TCP bpf improvements from Lawrence Brakmo.

    22) Add support for onlink ipv6 route flag, similar to ipv4, from David
    Ahern.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1925 commits)
    tls: Add support for encryption using async offload accelerator
    ip6mr: fix stale iterator
    net/sched: kconfig: Remove blank help texts
    openvswitch: meter: Use 64-bit arithmetic instead of 32-bit
    tcp_nv: fix potential integer overflow in tcpnv_acked
    r8169: fix RTL8168EP take too long to complete driver initialization.
    qmi_wwan: Add support for Quectel EP06
    rtnetlink: enable IFLA_IF_NETNSID for RTM_NEWLINK
    ipmr: Fix ptrdiff_t print formatting
    ibmvnic: Wait for device response when changing MAC
    qlcnic: fix deadlock bug
    tcp: release sk_frag.page in tcp_disconnect
    ipv4: Get the address of interface correctly.
    net_sched: gen_estimator: fix lockdep splat
    net: macb: Handle HRESP error
    net/mlx5e: IPoIB, Fix copy-paste bug in flow steering refactoring
    ipv6: addrconf: break critical section in addrconf_verify_rtnl()
    ipv6: change route cache aging logic
    i40e/i40evf: Update DESC_NEEDED value to reflect larger value
    bnxt_en: cleanup DIM work on device shutdown
    ...

    Linus Torvalds