19 Nov, 2013

1 commit

  • Pull infiniband/rdma updates from Roland Dreier:
    - Re-enable flow steering verbs with new improved userspace ABI
    - Fixes for slow connection due to GID lookup scalability
    - IPoIB fixes
    - Many fixes to HW drivers including mlx4, mlx5, ocrdma and qib
    - Further improvements to SRP error handling
    - Add new transport type for Cisco usNIC

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (66 commits)
    IB/core: Re-enable create_flow/destroy_flow uverbs
    IB/core: extended command: an improved infrastructure for uverbs commands
    IB/core: Remove ib_uverbs_flow_spec structure from userspace
    IB/core: Use a common header for uverbs flow_specs
    IB/core: Make uverbs flow structure use names like verbs ones
    IB/core: Rename 'flow' structs to match other uverbs structs
    IB/core: clarify overflow/underflow checks on ib_create/destroy_flow
    IB/ucma: Convert use of typedef ctl_table to struct ctl_table
    IB/cm: Convert to using idr_alloc_cyclic()
    IB/mlx5: Fix page shift in create CQ for userspace
    IB/mlx4: Fix device max capabilities check
    IB/mlx5: Fix list_del of empty list
    IB/mlx5: Remove dead code
    IB/core: Encorce MR access rights rules on kernel consumers
    IB/mlx4: Fix endless loop in resize CQ
    RDMA/cma: Remove unused argument and minor dead code
    RDMA/ucma: Discard events for IDs not yet claimed by user space
    IB/core: Add Cisco usNIC rdma node and transport types
    RDMA/nes: Remove self-assignment from nes_query_qp()
    IB/srp: Report receive errors correctly
    ...

    Linus Torvalds
     

10 Nov, 2013

1 commit


09 Nov, 2013

3 commits

  • Add support for periodically reconnecting to an SRP target until
    the dev_loss timer expires. After the tenth reconnection attempt,
    gradually slow down subsequent reconnect attempts.

    Signed-off-by: Bart Van Assche
    Acked-by: David Dillow
    Signed-off-by: Roland Dreier

    Bart Van Assche
     
  • Add the necessary functions in the SRP transport module to allow an
    SRP initiator driver to implement transport layer error handling
    similar to the functionality already provided by the FC transport
    layer. This includes:

    - Support for implementing fast_io_fail_tmo, the time that should
    elapse after having detected a transport layer problem and
    before failing I/O.
    - Support for implementing dev_loss_tmo, the time that should
    elapse after having detected a transport layer problem and
    before removing a remote port.

    Signed-off-by: Bart Van Assche
    Acked-by: David Dillow
    Signed-off-by: Roland Dreier

    Bart Van Assche
     
  • Keep the rport data structure around after srp_remove_host() has
    finished until cleanup of the IB transport layer has finished
    completely. This is necessary because later patches use the rport
    pointer inside the queuecommand callback. Without this patch
    accessing the rport from inside a queuecommand callback is racy
    because srp_remove_host() must be invoked before scsi_remove_host()
    and because the queuecommand callback could get invoked after
    srp_remove_host() has finished. In other words, without this patch
    the queuecommand callback can get invoked after the rport data
    structure has been freed.

    Signed-off-by: Bart Van Assche
    Acked-by: David Dillow
    Signed-off-by: Roland Dreier

    Bart Van Assche
     

25 Oct, 2013

3 commits

  • This patchs adds an 'eh_deadline' sysfs attribute to the scsi
    host which limits the overall runtime of the SCSI EH.
    The 'eh_deadline' value is stored in the now obsolete field
    'resetting'.
    When a command is failed the start time of the EH is stored
    in 'last_reset'. If the overall runtime of the SCSI EH is longer
    than last_reset + eh_deadline, the EH is short-circuited and
    falls through to issue a host reset only.

    [jejb: add comments in Scsi_Host about new fields]
    Signed-off-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • Field is now unused, so this is dead code.

    [jejb: remove resetting and last_reset from Scsi_Host]
    Signed-off-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • For offload iSCSI like qla4xxx, CHAP entries are stored in adapter's
    flash.
    This patch adds support to add/update CHAP entries in adapter's flash
    using iscsi tools, like Open-iSCSI.

    Signed-off-by: Adheer Chandravanshi
    Signed-off-by: Vikas Chaudhary
    Signed-off-by: James Bottomley

    Adheer Chandravanshi
     

12 Oct, 2013

1 commit

  • fnic doesn't use any of the create/destroy/enable/disable interfaces
    either from the (legacy) module paramaters or the (new) fcoe_sysfs
    interfaces. When fcoe_sysfs was introduced fnic wasn't changed since
    it wasn't using the interfaces. libfcoe incorrectly assumed that that
    all of its users were using fcoe_sysfs and when adding and deleting
    FCFs would assume the existance of a fcoe_ctlr_device. fnic was not
    allocating this structure because it doesn't care about the standard
    user interfaces (fnic starts on link only). If/When libfcoe tried to use
    the fcoe_ctlr_device's lock for the first time a NULL pointer exception
    would be triggered.

    Since fnic doesn't care about sysfs or user interfaces, the solution
    is to drop libfcoe's assumption that all drivers are using fcoe_sysfs.

    This patch accomplishes this by changing some of the structure
    relationships.

    We need a way to determine when a LLD is using fcoe_sysfs or not and
    we can do that by checking for the existance of the fcoe_ctlr_device.
    Prior to this patch, it was assumed that the fcoe_ctlr structure was
    allocated with the fcoe_ctlr_device and immediately followed it in
    memory. To reach the fcoe_ctlr_device we would simply go back in memory
    from the fcoe_ctlr to get the fcoe_ctlr_device.

    Since fnic doesn't allocate the fcoe_ctlr_device, we cannot keep that
    assumption. This patch adds a pointer from the fcoe_ctlr to the
    fcoe_ctlr_device. For bnx2fc and fcoe we will continue to allocate the
    two structures together, but then we'll set the ctlr->cdev pointer
    to point at the fcoe_ctlr_device. fnic will not change and will continue
    to allocate the fcoe_ctlr itself, and ctlr->cdev will remain NULL.

    When libfcoe adds fcoe_fcf's to the fcoe_ctlr it will check if ctlr->cdev
    is set and only if so will it continue to interact with fcoe_sysfs.

    Signed-off-by: Robert Love
    Acked-by: Neil Horman
    Tested-by: Hiral Patel

    Robert Love
     

13 Sep, 2013

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:
    "Lots of activity again this round for I/O performance optimizations
    (per-cpu IDA pre-allocation for vhost + iscsi/target), and the
    addition of new fabric independent features to target-core
    (COMPARE_AND_WRITE + EXTENDED_COPY).

    The main highlights include:

    - Support for iscsi-target login multiplexing across individual
    network portals
    - Generic Per-cpu IDA logic (kent + akpm + clameter)
    - Conversion of vhost to use per-cpu IDA pre-allocation for
    descriptors, SGLs and userspace page pointer list
    - Conversion of iscsi-target + iser-target to use per-cpu IDA
    pre-allocation for descriptors
    - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet)
    emulation for virtual backend drivers
    - Add support for generic EXTENDED_COPY (CopyOffload) emulation for
    virtual backend drivers.
    - Add support for fast memory registration mode to iser-target (Vu)

    The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of
    particular significance, which make us the first and only open source
    target to support the full set of VAAI primitives.

    Currently Linux clients are lacking upstream support to actually
    utilize these primitives. However, with server side support now in
    place for folks like MKP + ZAB working on the client, this logic once
    reserved for the highest end of storage arrays, can now be run in VMs
    on their laptops"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)
    target/iscsi: Bump versions to v4.1.0
    target: Update copyright ownership/year information to 2013
    iscsi-target: Bump default TCP listen backlog to 256
    target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-out
    iscsi-target; Bump default CmdSN Depth to 64
    iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set
    iscsi-target: Add thread_set->ts_activate_sem + use common deallocate
    iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE
    target: remove unused including
    iser-target: introduce fast memory registration mode (FRWR)
    iser-target: generalize rdma memory registration and cleanup
    iser-target: move rdma wr processing to a shared function
    target: Enable global EXTENDED_COPY setup/release
    target: Add Third Party Copy (3PC) bit in INQUIRY response
    target: Enable EXTENDED_COPY setup in spc_parse_cdb
    target: Add support for EXTENDED_COPY copy offload emulation
    target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check
    target: Add global device list for EXTENDED_COPY
    target: Make helpers non static for EXTENDED_COPY command setup
    target: Make spc_parse_naa_6h_vendor_specific non static
    ...

    Linus Torvalds
     

10 Sep, 2013

1 commit


05 Sep, 2013

2 commits

  • While the FCoE initiator driver invokes fc_exch_done() from inside
    the libfc response handler, FCoE target drivers typically invoke
    fc_exch_done() from outside the libfc response handler. The object
    fc_exch.arg points at may disappear as soon as fc_exch_done() has
    finished. So it's important not to invoke the response handler
    function after fc_exch_done() has finished. Modify libfc such that
    this guarantee is provided if fc_exch_done() is invoked from
    outside a response handler. This patch fixes a sporadic crash in
    FCoE target implementations after a command has been aborted.

    Signed-off-by: Bart Van Assche
    Cc: Neil Horman
    Signed-off-by: Robert Love

    Bart Van Assche
     
  • Change 'initiaive' into 'initiative', 'remainig' into 'remaining'
    and change 'exected' into 'expected'.

    Signed-off-by: Bart Van Assche
    Signed-off-by: Robert Love

    Bart Van Assche
     

26 Aug, 2013

1 commit

  • Generate a uevent when the following Unit Attention ASC/ASCQ
    codes are received:

    2A/01 MODE PARAMETERS CHANGED
    2A/09 CAPACITY DATA HAS CHANGED
    38/07 THIN PROVISIONING SOFT THRESHOLD REACHED
    3F/03 INQUIRY DATA HAS CHANGED
    3F/0E REPORTED LUNS DATA HAS CHANGED

    Log kernel messages when the following Unit Attention ASC/ASCQ
    codes are received that are not as specific as those above:

    2A/xx PARAMETERS CHANGED
    3F/xx TARGET OPERATING CONDITIONS HAVE CHANGED

    Added logic to set expecting_lun_change for other LUNs on the target
    after REPORTED LUNS DATA HAS CHANGED is received, so that duplicate
    uevents are not generated, and clear expecting_lun_change when a
    REPORT LUNS command completes, in accordance with the SPC-3
    specification regarding reporting of the 3F 0E ASC/ASCQ UA.

    [jejb: remove SPC3 test in scsi_report_lun_change and some docbook fixes and
    unused variable fix, both reported by Fengguang Wu]
    Signed-off-by: Ewan D. Milne
    Signed-off-by: James Bottomley

    Ewan D. Milne
     

24 Aug, 2013

5 commits


27 Jun, 2013

1 commit

  • This is the kernel part of the modification to extract the net params
    from the ibft sysfs to the iface struct used for the connection
    request upon sync_session in the open-iscsi util.

    Three new session sysfs params are defined:
    boot_root - holds the name of the /sys/firmware/ibft or iscsi_rootN
    boot_nic - holds the ethernetN name
    boot_target - holds the targetN name

    Signed-off-by: Eddie Wai
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     

25 Jun, 2013

1 commit

  • Not all disks fill out the VPD pages correctly. Add a blacklist flag
    that allows us ignore the SBC-3 VPD pages for a given device. The
    BLIST_SKIP_VPD_PAGES flag triggers our existing skip_vpd_pages
    scsi_device parameter to bypass VPD scanning.

    Also blacklist the offending Seagate drive model.

    Reported-by: Mike Snitzer
    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     

05 Jun, 2013

2 commits

  • Introduce eh_timeout which can be used for error handling purposes. This
    was previously hardcoded to 10 seconds in the SCSI error handling
    code. However, for some fast-fail scenarios it is necessary to be able
    to tune this as it can take several iterations (bus device, target, bus,
    controller) before we give up.

    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     
  • Remove the arbitrary expectation in libsas that all SCSI commands are 16 bytes
    or less. Instead do all copies via cmd->cmd_len (and use a pointer to this in
    the libsas task instead of a copy). Note that this still doesn't enable > 16
    byte CDB support in the underlying drivers because their internal format has
    to be fixed and the wire format of > 16 byte CDBs according to the SAS spec is
    different. the libsas drivers (isci, aic94xx, mvsas and pm8xxx are all
    updated for this change.

    Cc: Lukasz Dorau
    Cc: Maciej Patelczyk
    Cc: Dave Jiang
    Cc: Jack Wang
    Cc: Lindar Liu
    Cc: Xiangliang Yu
    Signed-off-by: James Bottomley

    James Bottomley
     

10 May, 2013

4 commits


07 May, 2013

1 commit

  • With the introduction of REQ_PM, modify sd's runtime suspend operation
    functions to use that flag so that the operations to put the device into
    runtime suspended state(i.e. sync cache and stop device) will not affect
    its runtime PM status.

    Signed-off-by: Lin Ming
    Signed-off-by: Aaron Lu
    Acked-by: Alan Stern
    Signed-off-by: James Bottomley

    Lin Ming
     

03 May, 2013

1 commit


02 May, 2013

1 commit

  • Pull VFS updates from Al Viro,

    Misc cleanups all over the place, mainly wrt /proc interfaces (switch
    create_proc_entry to proc_create(), get rid of the deprecated
    create_proc_read_entry() in favor of using proc_create_data() and
    seq_file etc).

    7kloc removed.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
    don't bother with deferred freeing of fdtables
    proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
    proc: Make the PROC_I() and PDE() macros internal to procfs
    proc: Supply a function to remove a proc entry by PDE
    take cgroup_open() and cpuset_open() to fs/proc/base.c
    ppc: Clean up scanlog
    ppc: Clean up rtas_flash driver somewhat
    hostap: proc: Use remove_proc_subtree()
    drm: proc: Use remove_proc_subtree()
    drm: proc: Use minor->index to label things, not PDE->name
    drm: Constify drm_proc_list[]
    zoran: Don't print proc_dir_entry data in debug
    reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
    proc: Supply an accessor for getting the data from a PDE's parent
    airo: Use remove_proc_subtree()
    rtl8192u: Don't need to save device proc dir PDE
    rtl8187se: Use a dir under /proc/net/r8180/
    proc: Add proc_mkdir_data()
    proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
    proc: Move PDE_NET() to fs/proc/proc_net.c
    ...

    Linus Torvalds
     

01 May, 2013

2 commits

  • Merge third batch of fixes from Andrew Morton:
    "Most of the rest. I still have two large patchsets against AIO and
    IPC, but they're a bit stuck behind other trees and I'm about to
    vanish for six days.

    - random fixlets
    - inotify
    - more of the MM queue
    - show_stack() cleanups
    - DMI update
    - kthread/workqueue things
    - compat cleanups
    - epoll udpates
    - binfmt updates
    - nilfs2
    - hfs
    - hfsplus
    - ptrace
    - kmod
    - coredump
    - kexec
    - rbtree
    - pids
    - pidns
    - pps
    - semaphore tweaks
    - some w1 patches
    - relay updates
    - core Kconfig changes
    - sysrq tweaks"

    * emailed patches from Andrew Morton : (109 commits)
    Documentation/sysrq: fix inconstistent help message of sysrq key
    ethernet/emac/sysrq: fix inconstistent help message of sysrq key
    sparc/sysrq: fix inconstistent help message of sysrq key
    powerpc/xmon/sysrq: fix inconstistent help message of sysrq key
    ARM/etm/sysrq: fix inconstistent help message of sysrq key
    power/sysrq: fix inconstistent help message of sysrq key
    kgdb/sysrq: fix inconstistent help message of sysrq key
    lib/decompress.c: fix initconst
    notifier-error-inject: fix module names in Kconfig
    kernel/sys.c: make prctl(PR_SET_MM) generally available
    UAPI: remove empty Kbuild files
    menuconfig: print more info for symbol without prompts
    init/Kconfig: re-order CONFIG_EXPERT options to fix menuconfig display
    kconfig menu: move Virtualization drivers near other virtualization options
    Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
    relay: use macro PAGE_ALIGN instead of FIX_SIZE
    kernel/relay.c: move FIX_SIZE macro into relay.c
    kernel/relay.c: remove unused function argument actor
    drivers/w1/slaves/w1_ds2760.c: fix the error handling in w1_ds2760_add_slave()
    drivers/w1/slaves/w1_ds2781.c: fix the error handling in w1_ds2781_add_slave()
    ...

    Linus Torvalds
     
  • Remove empty Kbuild files as they cause problems with the patch program which
    removes files that become empty.

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

12 Apr, 2013

3 commits


10 Apr, 2013

2 commits

  • all users converted to ->show_info()/->write_info()

    Signed-off-by: Al Viro

    Al Viro
     
  • It's still an obsolete interface; don't introduce those in new drivers.
    However, it's saner than the ->proc_info() and commits after this one
    will convert the existing ->proc_info() users to it.

    The read side is ->show_info(seq_file *, struct Scsi_Host *); use
    seq_... for generating contents.

    The write side is ->write_info(struct Scsi_Host *, char *, int).

    Again, this is driven by procfs needs; we are going to kill ->write_proc()
    and ->read_proc() and this is the main obstacle to burying that piece of
    shit.

    Signed-off-by: Al Viro

    Al Viro
     

26 Mar, 2013

2 commits


03 Mar, 2013

1 commit

  • Pull SCSI updates from James Bottomley:
    "This is an assorted set of stragglers into the merge window with
    driver updates for qla2xxx, megaraid_sas, storvsc and ufs.

    It also includes pulls of the uapi tree (all the remaining SCSI
    pieces) and the fcoe tree (updates to fcoe and libfc)"

    * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (81 commits)
    [SCSI] ufs: Separate PCI code into glue driver
    [SCSI] ufs: Segregate PCI Specific Code
    [SCSI] scsi: fix lpfc build when wmb() is defined as mb()
    [SCSI] storvsc: Handle dynamic resizing of the device
    [SCSI] storvsc: Restructure error handling code on command completion
    [SCSI] storvsc: avoid usage of WRITE_SAME
    [SCSI] aacraid: suppress two GCC warnings
    [SCSI] hpsa: check for dma_mapping_error in hpsa_passthru ioctls
    [SCSI] hpsa: reorganize error handling in hpsa_passthru_ioctl
    [SCSI] hpsa: check for dma_mapping_error in hpsa_map_sg_chain_block
    [SCSI] hpsa: Check for dma_mapping_error for all code paths using fill_cmd
    [SCSI] hpsa: Check for dma_mapping_error in hpsa_map_one
    [SCSI] dc395x: uninitialized variable in device_alloc()
    [SCSI] Fix range check in scsi_host_dif_capable()
    [SCSI] storvsc: Initialize the sglist
    [SCSI] mpt2sas: Add support for OEM specific controller
    [SCSI] ipr: Fix oops while resetting an ipr adapter
    [SCSI] fnic: Fnic Trace Utility
    [SCSI] fnic: New debug flags and debug log messages
    [SCSI] fnic: fnic driver may hit BUG_ON on device reset
    ...

    Linus Torvalds