04 Aug, 2016

8 commits

  • We prefer to use the pr_* to print out the log now, this patch converts
    the printk to pr_info. In the error path, use the pr_err to replace the
    printk.

    Link: http://lkml.kernel.org/r/1464143083-3877-1-git-send-email-shijie.huang@arm.com
    Signed-off-by: Huang Shijie
    Cc: Petr Mladek
    Cc: Steve Capper
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Masami Hiramatsu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Shijie
     
  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • The local variable dma_attrs is set but never read.

    Link: http://lkml.kernel.org/r/1468399300-5399-1-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • Remove two unneeded `else's.

    Cc: David Hildenbrand
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The use of config_enabled() against config options is ambiguous. In
    practical terms, config_enabled() is equivalent to IS_BUILTIN(), but the
    author might have used it for the meaning of IS_ENABLED(). Using
    IS_ENABLED(), IS_BUILTIN(), IS_MODULE() etc. makes the intention
    clearer.

    This commit replaces config_enabled() with IS_ENABLED() where possible.
    This commit is only touching bool config options.

    I noticed two cases where config_enabled() is used against a tristate
    option:

    - config_enabled(CONFIG_HWMON)
    [ drivers/net/wireless/ath/ath10k/thermal.c ]

    - config_enabled(CONFIG_BACKLIGHT_CLASS_DEVICE)
    [ drivers/gpu/drm/gma500/opregion.c ]

    I did not touch them because they should be converted to IS_BUILTIN()
    in order to keep the logic, but I was not sure it was the authors'
    intention.

    Link: http://lkml.kernel.org/r/1465215656-20569-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook
    Cc: Stas Sergeev
    Cc: Matt Redfearn
    Cc: Joshua Kinard
    Cc: Jiri Slaby
    Cc: Bjorn Helgaas
    Cc: Borislav Petkov
    Cc: Markos Chandras
    Cc: "Dmitry V. Levin"
    Cc: yu-cheng yu
    Cc: James Hogan
    Cc: Brian Gerst
    Cc: Johannes Berg
    Cc: Peter Zijlstra
    Cc: Al Viro
    Cc: Will Drewry
    Cc: Nikolay Martynov
    Cc: Huacai Chen
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Daniel Borkmann
    Cc: Leonid Yegoshin
    Cc: Rafal Milecki
    Cc: James Cowgill
    Cc: Greg Kroah-Hartman
    Cc: Ralf Baechle
    Cc: Alex Smith
    Cc: Adam Buchbinder
    Cc: Qais Yousef
    Cc: Jiang Liu
    Cc: Mikko Rapeli
    Cc: Paul Gortmaker
    Cc: Denys Vlasenko
    Cc: Brian Norris
    Cc: Hidehiro Kawai
    Cc: "Luis R. Rodriguez"
    Cc: Andy Lutomirski
    Cc: Ingo Molnar
    Cc: Dave Hansen
    Cc: "Kirill A. Shutemov"
    Cc: Roland McGrath
    Cc: Paul Burton
    Cc: Kalle Valo
    Cc: Viresh Kumar
    Cc: Tony Wu
    Cc: Huaitong Han
    Cc: Sumit Semwal
    Cc: Alexei Starovoitov
    Cc: Juergen Gross
    Cc: Jason Cooper
    Cc: "David S. Miller"
    Cc: Oleg Nesterov
    Cc: Andrea Gelmini
    Cc: David Woodhouse
    Cc: Marc Zyngier
    Cc: Rabin Vincent
    Cc: "Maciej W. Rozycki"
    Cc: David Daney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • While building m32r allmodconfig the build is failing with the error:

    ERROR: "bad_dma_ops" [drivers/fpga/zynq-fpga.ko] undefined!

    Xilinx Zynq FPGA is using DMA but there was no dependency while
    building.

    Link: http://lkml.kernel.org/r/1464346526-13913-1-git-send-email-sudipm.mukherjee@gmail.com
    Signed-off-by: Sudip Mukherjee
    Acked-by: Moritz Fischer
    Cc: Alan Tull
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sudip Mukherjee
     
  • Pull tracing fixes from Steven Rostedt:
    "A few updates and fixes:

    - move the suppressing of the __builtin_return_address >0 warning to
    the tracing directory only.

    - metag recordmcount fix for newer glibc's

    - two tracing histogram fixes that were reported by KASAN"

    * tag 'trace-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Fix use-after-free in hist_register_trigger()
    tracing: Fix use-after-free in hist_unreg_all/hist_enable_unreg_all
    Makefile: Mute warning for __builtin_return_address(>0) for tracing only
    ftrace/recordmcount: Work around for addition of metag magic but not relocations

    Linus Torvalds
     
  • With gcc < 4.2 (e.g. 4.1.2):

    CC fs/proc/task_mmu.o
    cc1: error: unrecognized command line option "-Wno-override-init"

    To fix this, only enable the compiler option when it is actually
    supported by the compiler.

    Fixes: ca52953f5f24 ("fs/proc/task_mmu.c: suppress compilation warnings with W=1")
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Valdis Kletnieks
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

03 Aug, 2016

32 commits

  • Pull networking fixes from David Miller:

    1) Fix several cases of missing of_node_put() calls in various
    networking drivers. From Peter Chen.

    2) Don't try to remove unconfigured VLANs in qed driver, from Yuval
    Mintz.

    3) Unbalanced locking in TIPC error handling, from Wei Yongjun.

    4) Fix lockups in CPDMA driver, from Grygorii Strashko.

    5) More MACSEC refcount et al fixes, from Sabrina Dubroca.

    6) Fix MAC address setting in r8169 during runtime suspend, from
    Chun-Hao Lin.

    7) Various printf format specifier fixes, from Heinrich Schuchardt.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
    qed: Fail driver load in 100g MSI mode.
    ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle
    ethernet: stmicro: stmmac: add missing of_node_put after calling of_parse_phandle
    ethernet: stmicro: stmmac: dwmac-socfpga: add missing of_node_put after calling of_parse_phandle
    ethernet: renesas: sh_eth: add missing of_node_put after calling of_parse_phandle
    ethernet: renesas: ravb_main: add missing of_node_put after calling of_parse_phandle
    ethernet: marvell: pxa168_eth: add missing of_node_put after calling of_parse_phandle
    ethernet: marvell: mvpp2: add missing of_node_put after calling of_parse_phandle
    ethernet: marvell: mvneta: add missing of_node_put after calling of_parse_phandle
    ethernet: hisilicon: hns: hns_dsaf_main: add missing of_node_put after calling of_parse_phandle
    ethernet: hisilicon: hns: hns_dsaf_mac: add missing of_node_put after calling of_parse_phandle
    ethernet: cavium: octeon: add missing of_node_put after calling of_parse_phandle
    ethernet: aurora: nb8800: add missing of_node_put after calling of_parse_phandle
    ethernet: arc: emac_main: add missing of_node_put after calling of_parse_phandle
    ethernet: apm: xgene: add missing of_node_put after calling of_parse_phandle
    ethernet: altera: add missing of_node_put
    8139too: fix system hang when there is a tx timeout event.
    qed: Fix error return code in qed_resc_alloc()
    net: qlcnic: avoid superfluous assignement
    dsa: b53: remove redundant if
    ...

    Linus Torvalds
     
  • Merge yet more updates from Andrew Morton:

    - the rest of ocfs2

    - various hotfixes, mainly MM

    - quite a bit of misc stuff - drivers, fork, exec, signals, etc.

    - printk updates

    - firmware

    - checkpatch

    - nilfs2

    - more kexec stuff than usual

    - rapidio updates

    - w1 things

    * emailed patches from Andrew Morton : (111 commits)
    ipc: delete "nr_ipc_ns"
    kcov: allow more fine-grained coverage instrumentation
    init/Kconfig: add clarification for out-of-tree modules
    config: add android config fragments
    init/Kconfig: ban CONFIG_LOCALVERSION_AUTO with allmodconfig
    relay: add global mode support for buffer-only channels
    init: allow blacklisting of module_init functions
    w1:omap_hdq: fix regression
    w1: add helper macro module_w1_family
    w1: remove need for ida and use PLATFORM_DEVID_AUTO
    rapidio/switches: add driver for IDT gen3 switches
    powerpc/fsl_rio: apply changes for RIO spec rev 3
    rapidio: modify for rev.3 specification changes
    rapidio: change inbound window size type to u64
    rapidio/idt_gen2: fix locking warning
    rapidio: fix error handling in mbox request/release functions
    rapidio/tsi721_dma: advance queue processing from transfer submit call
    rapidio/tsi721: add messaging mbox selector parameter
    rapidio/tsi721: add PCIe MRRS override parameter
    rapidio/tsi721_dma: add channel mask and queue size parameters
    ...

    Linus Torvalds
     
  • Pull orangefs update from Martin Brandenburg:
    "Kernel side caching and executable bugfix

    This allows OrangeFS to utilize the dcache and adds an in kernel
    attribute cache. We previously used the user side client for this
    purpose.

    We see a modest performance increase on small file operations. For
    example, without the cache, compiling coreutils takes about 17
    minutes. With the patch and a 50 millisecond timeout for
    dcache_timeout_msecs and getattr_timeout_msecs (the default),
    compiling coreutils takes about 6 minutes 20 seconds. On the same
    hardware, compiling coreutils on an xfs filesystem takes 90 seconds.
    We see similar improvements with mdtest and a test involving writing,
    reading, and deleting a large number of small files.

    Interested parties can review more data at the following URL.

    https://docs.google.com/spreadsheets/d/1v4aUeppKexIbRMz_Yn9k4eaM3uy2KCaPoe_93YKWOtA/pubhtml

    The eventual goal of this is to allow getdents to turn into a
    readdirplus to the OrangeFS server. The cache will be filled then,
    which should provide a performance benefit to the common case of
    readdir followed by getattr on each entry (i.e. ls -l).

    This also fixes a bug. When orangefs_inode_permission was added, it
    did not collect i_size from the OrangeFS server, since this presses an
    unnecessary load on the OrangeFS server. However, it left a case
    where i_size is never initialized. Then running an executable could
    fail.

    With this patch, size is always collected to be inserted into the
    cache. Thus the bug disappears. If this patch is not accepted during
    this merge window, we will send a one-line band-aid for this bug
    instead"

    * tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux:
    Orangefs: update orangefs.txt
    orangefs: Account for jiffies wraparound.
    orangefs: Change default dcache and getattr timeout to 50 msec.
    orangefs: Allow dcache and getattr cache time to be configured.
    orangefs: Cache getattr results.
    orangefs: Use d_time to avoid excessive lookups

    Linus Torvalds
     
  • Pull Ceph updates from Ilya Dryomov:
    "The highlights are:

    - RADOS namespace support in libceph and CephFS (Zheng Yan and
    myself). The stopgaps added in 4.5 to deny access to inodes in
    namespaces are removed and CEPH_FEATURE_FS_FILE_LAYOUT_V2 feature
    bit is now fully supported

    - A large rework of the MDS cap flushing code (Zheng Yan)

    - Handle some of ->d_revalidate() in RCU mode (Jeff Layton). We were
    overly pessimistic before, bailing at the first sight of LOOKUP_RCU

    On top of that we've got a few CephFS bug fixes, a couple of cleanups
    and Arnd's workaround for a weird genksyms issue"

    * tag 'ceph-for-4.8-rc1' of git://github.com/ceph/ceph-client: (34 commits)
    ceph: fix symbol versioning for ceph_monc_do_statfs
    ceph: Correctly return NXIO errors from ceph_llseek
    ceph: Mark the file cache as unreclaimable
    ceph: optimize cap flush waiting
    ceph: cleanup ceph_flush_snaps()
    ceph: kick cap flushes before sending other cap message
    ceph: introduce an inode flag to indicates if snapflush is needed
    ceph: avoid sending duplicated cap flush message
    ceph: unify cap flush and snapcap flush
    ceph: use list instead of rbtree to track cap flushes
    ceph: update types of some local varibles
    ceph: include 'follows' of pending snapflush in cap reconnect message
    ceph: update cap reconnect message to version 3
    ceph: mount non-default filesystem by name
    libceph: fsmap.user subscription support
    ceph: handle LOOKUP_RCU in ceph_d_revalidate
    ceph: allow dentry_lease_is_valid to work under RCU walk
    ceph: clear d_fsinfo pointer under d_lock
    ceph: remove ceph_mdsc_lease_release
    ceph: don't use ->d_time
    ...

    Linus Torvalds
     
  • Write-only variable.

    Link: http://lkml.kernel.org/r/20160708214356.GA6785@p183.telecom.by
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • For more targeted fuzzing, it's better to disable kernel-wide
    instrumentation and instead enable it on a per-subsystem basis. This
    follows the pattern of UBSAN and allows you to compile in the kcov
    driver without instrumenting the whole kernel.

    To instrument a part of the kernel, you can use either

    # for a single file in the current directory
    KCOV_INSTRUMENT_filename.o := y

    or

    # for all the files in the current directory (excluding subdirectories)
    KCOV_INSTRUMENT := y

    or

    # (same as above)
    ccflags-y += $(CFLAGS_KCOV)

    or

    # for all the files in the current directory (including subdirectories)
    subdir-ccflags-y += $(CFLAGS_KCOV)

    Link: http://lkml.kernel.org/r/1464008380-11405-1-git-send-email-vegard.nossum@oracle.com
    Signed-off-by: Vegard Nossum
    Cc: Dmitry Vyukov
    Cc: Quentin Casasnovas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vegard Nossum
     
  • It doesn't trim just symbols that are totally unused in-tree - it trims
    the symbols unused by any in-tree modules actually built. If you've
    done a 'make localmodconfig' and only build a hundred or so modules,
    it's pretty likely that your out-of-tree module will come up lacking
    something...

    Hopefully this will save the next guy from a Homer Simpson "D'oh!"
    moment.

    Link: http://lkml.kernel.org/r/10177.1469787292@turing-police.cc.vt.edu
    Signed-off-by: Valdis Kletnieks
    Cc: Michal Marek
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Valdis Kletnieks
     
  • Copy the config fragments from the AOSP common kernel android-4.4
    branch. It is becoming possible to run mainline kernels with Android,
    but the kernel defconfigs don't work as-is and debugging missing config
    options is a pain. Adding the config fragments into the kernel tree,
    makes configuring a mainline kernel as simple as:

    make ARCH=arm multi_v7_defconfig android-base.config android-recommended.config

    The following non-upstream config options were removed:

    CONFIG_NETFILTER_XT_MATCH_QTAGUID
    CONFIG_NETFILTER_XT_MATCH_QUOTA2
    CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
    CONFIG_PPPOLAC
    CONFIG_PPPOPNS
    CONFIG_SECURITY_PERF_EVENTS_RESTRICT
    CONFIG_USB_CONFIGFS_F_MTP
    CONFIG_USB_CONFIGFS_F_PTP
    CONFIG_USB_CONFIGFS_F_ACC
    CONFIG_USB_CONFIGFS_F_AUDIO_SRC
    CONFIG_USB_CONFIGFS_UEVENT
    CONFIG_INPUT_KEYCHORD
    CONFIG_INPUT_KEYRESET

    Link: http://lkml.kernel.org/r/1466708235-28593-1-git-send-email-robh@kernel.org
    Signed-off-by: Rob Herring
    Cc: Amit Pundir
    Cc: John Stultz
    Cc: Dmitry Shmidt
    Cc: Rom Lemarchand
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rob Herring
     
  • Doing patches with allmodconfig kernel compiled and committing stuff
    into local tree have unfortunate consequence: kernel version changes (as
    it should) leading to recompiling and relinking of several files even if
    they weren't touched (or interesting at all). This and "git-whatever"
    figuring out current version slow down compilation for no good reason.

    But lets face it, "allmodconfig" kernels don't care about kernel
    version, they are simply compile check guinea pigs.

    Make LOCALVERSION_AUTO depend on !COMPILE_TEST, so it doesn't sneak into
    allmodconfig .config.

    Link: http://lkml.kernel.org/r/20160707214954.GC31678@p183.telecom.by
    Signed-off-by: Alexey Dobriyan
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Commit 20d8b67c06fa ("relay: add buffer-only channels; useful for early
    logging") added support to use channels with no associated files.

    This is useful when the exact location of relay file is not known or the
    the parent directory of relay file is not available, while creating the
    channel and the logging has to start right from the boot.

    But there was no provision to use global mode with buffer-only channels,
    which is added by this patch, without modifying the interface where
    initially there will be a dummy invocation of create_buf_file callback
    through which kernel client can convey the need of a global buffer.

    For the use case where drivers/kernel clients want a simple interface
    for the userspace, which enables them to capture data/logs from relay
    file inorder & without any post processing, support of Global buffer
    mode is warranted.

    Modules, like i915, using relay_open() in early init would have to later
    register their buffer-only relays, once debugfs is available, by calling
    relay_late_setup_files(). Hence relay_late_setup_files() symbol also
    needs to be exported.

    Link: http://lkml.kernel.org/r/1468404563-11653-1-git-send-email-akash.goel@intel.com
    Signed-off-by: Akash Goel
    Cc: Eduard - Gabriel Munteanu
    Cc: Tom Zanussi
    Cc: Chris Wilson
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akash Goel
     
  • sprint_symbol_no_offset() returns the string "function_name
    [module_name]" where [module_name] is not printed for built in kernel
    functions. This means that the blacklisting code will fail when
    comparing module function names with the extended string.

    This patch adds the functionality to block a module's module_init()
    function by finding the space in the string and truncating the
    comparison to that length.

    Link: http://lkml.kernel.org/r/1466124387-20446-1-git-send-email-prarit@redhat.com
    Signed-off-by: Prarit Bhargava
    Cc: Thomas Gleixner
    Cc: Yang Shi
    Cc: Prarit Bhargava
    Cc: Ingo Molnar
    Cc: Mel Gorman
    Cc: Rasmus Villemoes
    Cc: Kees Cook
    Cc: Yaowei Bai
    Cc: Andrey Ryabinin
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Prarit Bhargava
     
  • Commit e93762bbf681 ("w1: masters: omap_hdq: add support for 1-wire
    mode") added a statement to clear the hdq_irqstatus flags in
    hdq_read_byte().

    If the hdq reading process is scheduled slowly or interrupts are
    disabled for a while the hardware read activity might already be
    finished on entry of hdq_read_byte(). And hdq_isr() already has set the
    hdq_irqstatus to 0x6 (can be seen in debug mode) denoting that both, the
    TXCOMPLETE and RXCOMPLETE interrupts occurred in parallel.

    This means there is no need to wait and the hdq_read_byte() can just
    read the byte from the hdq controller.

    By resetting hdq_irqstatus to 0 the read process is forced to be always
    waiting again (because the if statement always succeeds) but the
    hardware will not issue another RXCOMPLETE interrupt. This results in a
    false timeout.

    After such a situation the hdq bus hangs.

    Link: http://lkml.kernel.org/r/b724765f87ad276a69625bc19806c8c8844c4590.1469513669.git.hns@goldelico.com
    Signed-off-by: H. Nikolaus Schaller
    Cc: Evgeniy Polyakov
    Cc: Greg Kroah-Hartman
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Nikolaus Schaller
     
  • The helper macro module_w1_family can be used in module drivers that
    only register a w1 driver in their module init functions. Add this
    macro and use it in all applicable drivers.

    Link: http://lkml.kernel.org/r/20160531204313.20979-2-afd@ti.com
    Signed-off-by: Andrew F. Davis
    Acked-by: Evgeniy Polyakov
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew F. Davis
     
  • PLATFORM_DEVID_AUTO can be used to have the platform core assign a
    unique ID instead of manually creating one with IDA. Do this in all
    applicable drivers.

    Link: http://lkml.kernel.org/r/20160531204313.20979-1-afd@ti.com
    Signed-off-by: Andrew F. Davis
    Acked-by: Evgeniy Polyakov
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew F. Davis
     
  • Add RapidIO switch driver for IDT Gen3 switch devices: RXS1632 and
    RXS2448.

    [alexandre.bounine@idt.com: fixup for original driver patch]
    Link: http://lkml.kernel.org/r/1469137596-18241-1-git-send-email-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1469125134-16523-14-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • - Remove check for parallel PHY

    - Set LP-Serial Register Map type

    [akpm@linux-foundation.org: fix build]
    [alexandre.bounine@idt.com: fix build fix]
    Link: http://lkml.kernel.org/r/20160802184932.2755-1-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1469125134-16523-13-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Benjamin Herrenschmidt
    Cc: Michael Ellerman
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Implement changes made in RapidIO specification rev.3 to LP-Serial Physical
    Layer register definitions:

    - use per-port register offset calculations based on LP-Serial Extended
    Features Block (EFB) Register Map type (I or II) with different
    per-port offset step (0x20 vs 0x40 respectfully).

    - remove deprecated Parallel Physical layer definitions and related
    code.

    [alexandre.bounine@idt.com: fix DocBook warning for gen3 update]
    Link: http://lkml.kernel.org/r/1469191173-19338-1-git-send-email-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1469125134-16523-12-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Current definition of map_inb() mport operations callback uses u32 type
    to specify required inbound window (IBW) size. This is limiting factor
    because existing hardware - tsi721 and fsl_rio, both support IBW size up
    to 16GB.

    Changing type of size parameter to u64 to allow IBW size configurations
    larger than 4GB.

    [alexandre.bounine@idt.com: remove compiler warning about size of constant]
    Link: http://lkml.kernel.org/r/20160802184856.2566-1-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1469125134-16523-11-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Benjamin Herrenschmidt
    Cc: Michael Ellerman
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Fix lockdep warning during device probing: move sysfs initialization out
    of code protected by a spin lock.

    Link: http://lkml.kernel.org/r/1469125134-16523-10-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add checking for error code returned by HW-specific mbox open routines.
    Ensure that resources are properly release if failed.

    This patch is applicable to kernel versions starting from v2.6.15.

    Link: http://lkml.kernel.org/r/1469125134-16523-9-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add advancing transfer queue immediately from transfer submit call. DMA
    performance improvement: This will start transfer without waiting for
    'issue_pending' command if there is no DMA transfer in progress.

    Link: http://lkml.kernel.org/r/1469125134-16523-8-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add module parameter to allow load time configuration of available
    RapidIO messaging mailboxes (MBOX1 - MBOX4).

    Having a messaging MBOX selector mask allows to define which MBOXes are
    controlled by the mport device driver and reserve some of them for
    direct use by other drivers.

    Link: http://lkml.kernel.org/r/1469125134-16523-7-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add PCIe Maximum Read Request Size (MRRS) adjustment parameter to allow
    users to override configuration register value set during PCIe bus
    initialization.

    Performance of Tsi721 device as PCIe bus master can be improved if MRRS
    is set to its maximum value (4096 bytes). Some platforms have
    limitations for supported MRRS and therefore the default value should be
    preserved, unless it is known that given platform supports full set of
    MRRS values defined by PCI Express specification.

    Link: http://lkml.kernel.org/r/1469125134-16523-6-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add module parameters to allow load time configuration of DMA channels.

    Depending on application, performance of DMA data transfers can benefit
    from adjusted sizes of buffer descriptor ring and/or transaction
    requests queue.

    Having HW DMA channel selector mask allows to define which channels
    (from seven available) are controlled by the mport device driver and
    reserve some of them for direct use by other drivers.

    Link: http://lkml.kernel.org/r/1469125134-16523-5-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Update return value description for rio_dma_prep_... functions to
    include error-valued pointer that can be returned by HW mport device
    drivers. Return values from these functions must be checked using
    IS_ERR_OR_NULL macro.

    This patch is applicable to kernel versions starting from v4.6-rc1.

    Link: http://lkml.kernel.org/r/1469125134-16523-4-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Minor edits to correct parameter description.

    This patch is applicable to kernel versions starting from v4.6.

    Link: http://lkml.kernel.org/r/1469125134-16523-3-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Reported-by: Barry Wood
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Patch series "RapidIO subsystem updates".

    This set of patches contains RapidIO subsystem fixes and updates that
    have been made since kernel v4.6. The most significant update brings
    changes related to the latest revision of RapidIO specification
    (rev.3.x) and introduction of next generation of RapidIO switches by IDT
    (RXS1632 and RXS2448).

    This patch (of 13):

    This is RapidIO part of the original patch submitted by Joe Perches.
    (see: https://lkml.org/lkml/2016/3/5/19)

    Since commit 3cab1e711297 ("lib/vsprintf: refactor duplicate code
    to special_hex_number()") %pa uses have been output with a 0x prefix.

    These 0x prefixes in the formats are unnecessary.

    Link: http://lkml.kernel.org/r/1469125134-16523-2-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Joe Perches
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add channelized messaging driver to support native RapidIO messaging
    exchange between multiple senders/recipients on devices that use kernel
    RapidIO subsystem services.

    This device driver is the result of collaboration within the RapidIO.org
    Software Task Group (STG) between Texas Instruments, Prodrive
    Technologies, Nokia Networks, BAE and IDT. Additional input was
    received from other members of RapidIO.org.

    The objective was to create a character mode driver interface which
    exposes messaging capabilities of RapidIO endpoint devices (mports)
    directly to applications, in a manner that allows the numerous and
    varied RapidIO implementations to interoperate.

    This char mode device driver allows user-space applications to setup
    messaging communication channels using single shared RapidIO messaging
    mailbox.

    By default this driver uses RapidIO MBOX_1 (MBOX_0 is reserved for use by
    RIONET Ethernet emulation driver).

    [weiyj.lk@gmail.com: rapidio/rio_cm: fix return value check in riocm_init()]
    Link: http://lkml.kernel.org/r/1469198221-21970-1-git-send-email-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1468952862-18056-1-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Aurelien Jacquiot
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • I hit the following issue when run trinity in my system. The kernel is
    3.4 version, but mainline has the same issue.

    The root cause is that the segment size is too large so the kerenl
    spends too long trying to allocate a page. Other cases will block until
    the test case quits. Also, OOM conditions will occur.

    Call Trace:
    __alloc_pages_nodemask+0x14c/0x8f0
    alloc_pages_current+0xaf/0x120
    kimage_alloc_pages+0x10/0x60
    kimage_alloc_control_pages+0x5d/0x270
    machine_kexec_prepare+0xe5/0x6c0
    ? kimage_free_page_list+0x52/0x70
    sys_kexec_load+0x141/0x600
    ? vfs_write+0x100/0x180
    system_call_fastpath+0x16/0x1b

    The patch changes sanity_check_segment_list() to verify that the usage by
    all segments does not exceed half of memory.

    [akpm@linux-foundation.org: fix for kexec-return-error-number-directly.patch, update comment]
    Link: http://lkml.kernel.org/r/1469625474-53904-1-git-send-email-zhongjiang@huawei.com
    Signed-off-by: zhong jiang
    Suggested-by: Eric W. Biederman
    Cc: Vivek Goyal
    Cc: Dave Young
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    zhong jiang
     
  • If a crash kernel is loaded, do not crash the running domain. This is
    needed if the kernel is loaded with crash_kexec_post_notifiers, because
    panic notifiers are run before __crash_kexec() in that case, and this
    Xen hook prevents its being called later.

    [akpm@linux-foundation.org: build fix: unconditionally include kexec.h]
    Link: http://lkml.kernel.org/r/20160713122000.14969.99963.stgit@hananiah.suse.cz
    Signed-off-by: Petr Tesarik
    Cc: Juergen Gross
    Cc: Josh Triplett
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Eric Biederman
    Cc: "H. Peter Anvin"
    Cc: Boris Ostrovsky
    Cc: "Paul E. McKenney"
    Cc: Dave Young
    Cc: David Vrabel
    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Petr Tesarik
     
  • Provide a wrapper function to be used by kernel code to check whether a
    crash kernel is loaded. It returns the same value that can be seen in
    /sys/kernel/kexec_crash_loaded by userspace programs.

    I'm exporting the function, because it will be used by Xen, and it is
    possible to compile Xen modules separately to enable the use of PV
    drivers with unmodified bare-metal kernels.

    Link: http://lkml.kernel.org/r/20160713121955.14969.69080.stgit@hananiah.suse.cz
    Signed-off-by: Petr Tesarik
    Cc: Juergen Gross
    Cc: Josh Triplett
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Eric Biederman
    Cc: "H. Peter Anvin"
    Cc: Boris Ostrovsky
    Cc: "Paul E. McKenney"
    Cc: Dave Young
    Cc: David Vrabel
    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Petr Tesarik
     
  • crash_kexec_post_notifiers ia a boot option which controls whether the
    1st kernel calls panic notifiers or not before booting the 2nd kernel.
    However, there is no need to limit it to being modifiable only at boot
    time. So, use core_param instead of early_param.

    Link: http://lkml.kernel.org/r/20160705113327.5864.43139.stgit@softrs
    Signed-off-by: Hidehiro Kawai
    Cc: Dave Young
    Cc: Baoquan He
    Cc: Vivek Goyal
    Cc: Eric Biederman
    Cc: Masami Hiramatsu
    Cc: Borislav Petkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidehiro Kawai