05 Aug, 2015

1 commit

  • Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move
    flush_scheduled_work() to workqueue.h") moved the exported non GPL
    flush_scheduled_work() from a function to an inline wrapper.
    Unfortunately, it directly calls flush_workqueue() which is a GPL function.
    This has the effect of changing the licensing requirement for this function
    and makes it unavailable to non GPL modules.

    See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make
    schedule_work() available again to non GPL modules") for precedent.

    Signed-off-by: Tim Gardner
    Signed-off-by: Tejun Heo

    Tim Gardner
     

15 Jul, 2015

1 commit


06 Jul, 2015

2 commits

  • Linus Torvalds
     
  • …linux-platform-drivers-x86

    Pull late x86 platform driver updates from Darren Hart:
    "The following came in a bit later and I wanted them to bake in next a
    few more days before submitting, thus the second pull.

    A new intel_pmc_ipc driver, a symmetrical allocation and free fix in
    dell-laptop, a couple minor fixes, and some updated documentation in
    the dell-laptop comments.

    intel_pmc_ipc:
    - Add Intel Apollo Lake PMC IPC driver

    tc1100-wmi:
    - Delete an unnecessary check before the function call "kfree"

    dell-laptop:
    - Fix allocating & freeing SMI buffer page
    - Show info about WiGig and UWB in debugfs
    - Update information about wireless control"

    * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver
    tc1100-wmi: Delete an unnecessary check before the function call "kfree"
    dell-laptop: Fix allocating & freeing SMI buffer page
    dell-laptop: Show info about WiGig and UWB in debugfs
    dell-laptop: Update information about wireless control

    Linus Torvalds
     

05 Jul, 2015

34 commits

  • Pull more vfs updates from Al Viro:
    "Assorted VFS fixes and related cleanups (IMO the most interesting in
    that part are f_path-related things and Eric's descriptor-related
    stuff). UFS regression fixes (it got broken last cycle). 9P fixes.
    fs-cache series, DAX patches, Jan's file_remove_suid() work"

    [ I'd say this is much more than "fixes and related cleanups". The
    file_table locking rule change by Eric Dumazet is a rather big and
    fundamental update even if the patch isn't huge. - Linus ]

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
    9p: cope with bogus responses from server in p9_client_{read,write}
    p9_client_write(): avoid double p9_free_req()
    9p: forgetting to cancel request on interrupted zero-copy RPC
    dax: bdev_direct_access() may sleep
    block: Add support for DAX reads/writes to block devices
    dax: Use copy_from_iter_nocache
    dax: Add block size note to documentation
    fs/file.c: __fget() and dup2() atomicity rules
    fs/file.c: don't acquire files->file_lock in fd_install()
    fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
    vfs: avoid creation of inode number 0 in get_next_ino
    namei: make set_root_rcu() return void
    make simple_positive() public
    ufs: use dir_pages instead of ufs_dir_pages()
    pagemap.h: move dir_pages() over there
    remove the pointless include of lglock.h
    fs: cleanup slight list_entry abuse
    xfs: Correctly lock inode when removing suid and file capabilities
    fs: Call security_ops->inode_killpriv on truncate
    fs: Provide function telling whether file_remove_privs() will do anything
    ...

    Linus Torvalds
     
  • Commit 835a6a2f8603 ("Bluetooth: Stop sabotaging list poisoning")
    thought that the code was sabotaging the list poisoning when NULL'ing
    out the list pointers and removed it.

    But what was going on was that the bluetooth code was using NULL
    pointers for the list as a way to mark it empty, and that commit just
    broke it (and replaced the test with NULL with a "list_empty()" test on
    a uninitialized list instead, breaking things even further).

    So fix it all up to use the regular and real list_empty() handling
    (which does not use NULL, but a pointer to itself), also making sure to
    initialize the list properly (the previous NULL case was initialized
    implicitly by the session being allocated with kzalloc())

    This is a combination of patches by Marcel Holtmann and Tedd Ho-Jeong
    An.

    [ I would normally expect to get this through the bt tree, but I'm going
    to release -rc1, so I'm just committing this directly - Linus ]

    Reported-and-tested-by: Jörg Otte
    Cc: Alexey Dobriyan
    Original-by: Tedd Ho-Jeong An
    Original-by: Marcel Holtmann :
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "It's been a busy development cycle for target-core in a number of
    different areas.

    The fabric API usage for se_node_acl allocation is now within
    target-core code, dropping the external API callers for all fabric
    drivers tree-wide.

    There is a new conversion to RCU hlists for se_node_acl and
    se_portal_group LUN mappings, that turns fast-past LUN lookup into a
    completely lockless code-path. It also removes the original
    hard-coded limitation of 256 LUNs per fabric endpoint.

    The configfs attributes for backends can now be shared between core
    and driver code, allowing existing drivers to use common code while
    still allowing flexibility for new backend provided attributes.

    The highlights include:

    - Merge sbc_verify_dif_* into common code (sagi)
    - Remove iscsi-target support for obsolete IFMarker/OFMarker
    (Christophe Vu-Brugier)
    - Add bidi support in target/user backend (ilias + vangelis + agover)
    - Move se_node_acl allocation into target-core code (hch)
    - Add crc_t10dif_update common helper (akinobu + mkp)
    - Handle target-core odd SGL mapping for data transfer memory
    (akinobu)
    - Move transport ID handling into target-core (hch)
    - Move task tag into struct se_cmd + support 64-bit tags (bart)
    - Convert se_node_acl->device_list[] to RCU hlist (nab + hch +
    paulmck)
    - Convert se_portal_group->tpg_lun_list[] to RCU hlist (nab + hch +
    paulmck)
    - Simplify target backend driver registration (hch)
    - Consolidate + simplify target backend attribute implementations
    (hch + nab)
    - Subsume se_port + t10_alua_tg_pt_gp_member into se_lun (hch)
    - Drop lun_sep_lock for se_lun->lun_se_dev RCU usage (hch + nab)
    - Drop unnecessary core_tpg_register TFO parameter (nab)
    - Use 64-bit LUNs tree-wide (hannes)
    - Drop left-over TARGET_MAX_LUNS_PER_TRANSPORT limit (hannes)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (76 commits)
    target: Bump core version to v5.0
    target: remove target_core_configfs.h
    target: remove unused TARGET_CORE_CONFIG_ROOT define
    target: consolidate version defines
    target: implement WRITE_SAME with UNMAP bit using ->execute_unmap
    target: simplify UNMAP handling
    target: replace se_cmd->execute_rw with a protocol_data field
    target/user: Fix inconsistent kmap_atomic/kunmap_atomic
    target: Send UA when changing LUN inventory
    target: Send UA upon LUN RESET tmr completion
    target: Send UA on ALUA target port group change
    target: Convert se_lun->lun_deve_lock to normal spinlock
    target: use 'se_dev_entry' when allocating UAs
    target: Remove 'ua_nacl' pointer from se_ua structure
    target_core_alua: Correct UA handling when switching states
    xen-scsiback: Fix compile warning for 64-bit LUN
    target: Remove TARGET_MAX_LUNS_PER_TRANSPORT
    target: use 64-bit LUNs
    target: Drop duplicate + unused se_dev_check_wce
    target: Drop unnecessary core_tpg_register TFO parameter
    ...

    Linus Torvalds
     
  • Pull NTB updates from Jon Mason:
    "This includes a pretty significant reworking of the NTB core code, but
    has already produced some significant performance improvements.

    An abstraction layer was added to allow the hardware and clients to be
    easily added. This required rewriting the NTB transport layer for
    this abstraction layer. This modification will allow future "high
    performance" NTB clients.

    In addition to this change, a number of performance modifications were
    added. These changes include NUMA enablement, using CPU memcpy
    instead of asyncdma, and modification of NTB layer MTU size"

    * tag 'ntb-4.2' of git://github.com/jonmason/ntb: (22 commits)
    NTB: Add split BAR output for debugfs stats
    NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe
    NTB: Print driver name and version in module init
    NTB: Increase transport MTU to 64k from 16k
    NTB: Rename Intel code names to platform names
    NTB: Default to CPU memcpy for performance
    NTB: Improve performance with write combining
    NTB: Use NUMA memory in Intel driver
    NTB: Use NUMA memory and DMA chan in transport
    NTB: Rate limit ntb_qp_link_work
    NTB: Add tool test client
    NTB: Add ping pong test client
    NTB: Add parameters for Intel SNB B2B addresses
    NTB: Reset transport QP link stats on down
    NTB: Do not advance transport RX on link down
    NTB: Differentiate transport link down messages
    NTB: Check the device ID to set errata flags
    NTB: Enable link for Intel root port mode in probe
    NTB: Read peer info from local SPAD in transport
    NTB: Split ntb_hw_intel and ntb_transport drivers
    ...

    Linus Torvalds
     
  • if server claims to have written/read more than we'd told it to,
    warn and cap the claimed byte count to avoid advancing more than
    we are ready to.

    Al Viro
     
  • Braino in "9p: switch p9_client_write() to passing it struct iov_iter *";
    if response is impossible to parse and we discard the request, get the
    out of the loop right there.

    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • If we'd already sent a request and decide to abort it, we *must*
    issue TFLUSH properly and not just blindly reuse the tag, or
    we'll get seriously screwed when response eventually arrives
    and we confuse it for response to later request that had reused
    the same tag.

    Cc: stable@vger.kernel.org # v3.2 and later
    Signed-off-by: Al Viro

    Al Viro
     
  • The brd driver is the only in-tree driver that may sleep currently.
    After some discussion on linux-fsdevel, we decided that any driver
    may choose to sleep in its ->direct_access method. To ensure that all
    callers of bdev_direct_access() are prepared for this, add a call
    to might_sleep().

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Al Viro

    Matthew Wilcox
     
  • If a block device supports the ->direct_access methods, bypass the normal
    DIO path and use DAX to go straight to memcpy() instead of allocating
    a DIO and a BIO.

    Includes support for the DIO_SKIP_DIO_COUNT flag in DAX, as is done in
    do_blockdev_direct_IO().

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Al Viro

    Matthew Wilcox
     
  • When userspace does a write, there's no need for the written data to
    pollute the CPU cache. This matches the original XIP code.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Al Viro

    Matthew Wilcox
     
  • For block devices which are small enough, mkfs will default to creating
    a filesystem with block sizes smaller than page size.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Al Viro

    Matthew Wilcox
     
  • Pull kvm fixes from Paolo Bonzini:
    "Except for the preempt notifiers fix, these are all small bugfixes
    that could have been waited for -rc2. Sending them now since I was
    taking care of Peter's patch anyway"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    kvm: add hyper-v crash msrs values
    KVM: x86: remove data variable from kvm_get_msr_common
    KVM: s390: virtio-ccw: don't overwrite config space values
    KVM: x86: keep track of LVT0 changes under APICv
    KVM: x86: properly restore LVT0
    KVM: x86: make vapics_in_nmi_mode atomic
    sched, preempt_notifier: separate notifier registration from static_key inc/dec

    Linus Torvalds
     
  • When split BAR is enabled, the driver needs to dump out the split BAR
    registers rather than the original 64bit BAR registers.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • The unsafe doorbell and scratchpad access should display reason when
    WARN is called. Otherwise we get a stack dump without any explanation.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Printouts driver name and version to indicate what is being loaded.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Benchmarking showed a significant performance increase with the MTU size
    to 64k instead of 16k. Change the driver default to 64k.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Instead of using the platform code names, use the correct platform names
    to identify the respective Intel NTB hardware.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Disable DMA usage by default, since the CPU provides much better
    performance with write combining. Provide a module parameter to enable
    DMA usage when offloading the memcpy is preferred.

    Signed-off-by: Dave Jiang
    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Changing the memory window BAR mappings to write combining significantly
    boosts the performance. We will also use memcpy that uses non-temporal
    store, which showed performance improvement when doing non-cached
    memcpys.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Allocate memory for the NUMA node of the NTB device.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Allocate memory and request the DMA channel for the same NUMA node as
    the NTB device.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • When the ntb transport is connecting and waiting for the peer, the debug
    console receives lots of debug level messages about the remote qp link
    status being down. Rate limit those messages.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • This is a simple debugging driver that enables the doorbell and
    scratch pad registers to be read and written from the debugfs. This
    tool enables more complicated debugging to be scripted from user space.
    This driver may be used to test that your ntb hardware and drivers are
    functioning at a basic level.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • This is a simple ping pong driver that exercises the scratch pads and
    doorbells of the ntb hardware. This driver may be used to test that
    your ntb hardware and drivers are functioning at a basic level.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Add module parameters for the addresses to be used in B2B topology.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Reset the link stats when the link goes down. In particular, the TX and
    RX index and count must be reset, or else the TX side will be sending
    packets to the RX side where the RX side is not expecting them. Reset
    all the stats, to be consistent.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • On link down, don't advance RX index to the next entry. The next entry
    should never be valid after receiving the link down flag.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • The same message "qp %d: Link Down\n" was printed at two locations in
    ntb_transport. Change the messages so they are distinct.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Set errata flags for the specific device IDs to which they apply,
    instead of the whole Xeon hardware class.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Link training should be enabled in the driver probe for root port mode.
    We should not have to wait for transport to be loaded for this to
    happen. Otherwise the ntb device will not show up on the transparent
    bridge side of the link.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • The transport was writing and then reading the peer scratch pad,
    essentially reading what it just wrote instead of exchanging any
    information with the peer. The transport expects the peer values to be
    the same as the local values, so this issue was not obvious.

    Signed-off-by: Dave Jiang
    Signed-off-by: Jon Mason

    Dave Jiang
     
  • Change ntb_hw_intel to use the new NTB hardware abstraction layer.

    Split ntb_transport into its own driver. Change it to use the new NTB
    hardware abstraction layer.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Abstract the NTB device behind a programming interface, so that it can
    support different hardware and client drivers.

    Signed-off-by: Allen Hubbe
    Signed-off-by: Jon Mason

    Allen Hubbe
     
  • Pull irq update from Thomas Gleixner:
    "The last update for 4.2 is just moving a macro from a local header to
    the global one, so it can be used in architecture code as well.

    Cleanup of the now empty local header is 4.3 material"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h

    Linus Torvalds
     

04 Jul, 2015

2 commits

  • Pull x86 fixes from Ingo Molnar:
    "Two FPU rewrite related fixes. This addresses all known x86
    regressions at this stage. Also some other misc fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/fpu: Fix boot crash in the early FPU code
    x86/asm/entry/64: Update path names
    x86/fpu: Fix FPU related boot regression when CPUID masking BIOS feature is enabled
    x86/boot/setup: Clean up the e820_reserve_setup_data() code
    x86/kaslr: Fix typo in the KASLR_FLAG documentation

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Debug info and other statistics fixes and related enhancements"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/numa: Fix numa balancing stats in /proc/pid/sched
    sched/numa: Show numa_group ID in /proc/sched_debug task listings
    sched/debug: Move print_cfs_rq() declaration to kernel/sched/sched.h
    sched/stat: Expose /proc/pid/schedstat if CONFIG_SCHED_INFO=y
    sched/stat: Simplify the sched_info accounting dependency

    Linus Torvalds