28 Jan, 2015

1 commit


23 Jan, 2015

2 commits

  • James reported:
    > After e513cc1 module: Remove stop_machine from module unloading,
    > module_refcount() is returning (unsigned long)-1 when called from within
    > a routine that runs in module_exit. This is confusing the scsi device
    > put code which is coded to detect a module_refcount() of zero for
    > running within a module exit routine and not try to do another
    > module_put. The fix is to restore the original behaviour of
    > module_refcount() and return zero if we're running inside an exit
    > routine.

    The correct fix is to turn try_module_get() into __module_get(), and
    always do the module_put().

    Acked-by: James Bottomley
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • cppcheck found the following issue:
    (warning) Logical conjunction always evaluates to false:
    alloc_len < 4 && alloc_len > 65535.

    ..the test should be instead:

    if (alloc_len < 4 || alloc_len > 65536)

    This error was introduced by recent commit 38d5c8336e60bf6e53a1da9
    ("scsi_debug: add Report supported opcodes+tmfs; Compare and write")

    Signed-off-by: Colin Ian King
    Acked-by: Douglas Gilbert
    Signed-off-by: Christoph Hellwig

    Colin Ian King
     

20 Jan, 2015

2 commits

  • This can happen if a multipathed device uses DIX and another path is
    added via an adapter that does not support it. Multipath should not
    allow this path to be added, but we should not depend upon that to avoid
    crashing.

    Signed-off-by: Ewan D. Milne
    Reviewed-by: Martin K. Petersen
    Signed-off-by: Christoph Hellwig

    Ewan D. Milne
     
  • resp_rsup_opcodes() may get called from atomic context and would need to
    use GFP_ATOMIC for allocations:

    [ 1237.913419] BUG: sleeping function called from invalid context at mm/slub.c:1262
    [ 1237.914865] in_atomic(): 1, irqs_disabled(): 0, pid: 7556, name: trinity-c311
    [ 1237.916142] 3 locks held by trinity-c311/7556:
    [ 1237.916981] #0: (sb_writers#5){.+.+.+}, at: do_readv_writev (include/linux/fs.h:2346 fs/read_write.c:844)
    [ 1237.919713] #1: (&of->mutex){+.+.+.}, at: kernfs_fop_write (fs/kernfs/file.c:297)
    [ 1237.922626] Mutex: counter: -1 owner: trinity-c311
    [ 1237.924044] #2: (s_active#51){.+.+.+}, at: kernfs_fop_write (fs/kernfs/file.c:297)
    [ 1237.925960] Preemption disabled blk_execute_rq_nowait (block/blk-exec.c:95)
    [ 1237.927416]
    [ 1237.927680] CPU: 24 PID: 7556 Comm: trinity-c311 Not tainted 3.19.0-rc4-next-20150116-sasha-00054-g4ad498c-dirty #1744
    [ 1237.929603] ffff8804fc9d8000 ffff8804d9bc3548 ffffffff9d439fb2 0000000000000000
    [ 1237.931097] 0000000000000000 ffff8804d9bc3588 ffffffff9a18389a ffff8804d9bc3598
    [ 1237.932466] ffffffff9a1b1715 ffffffffa15935d8 ffffffff9e6f8cb1 00000000000004ee
    [ 1237.933984] Call Trace:
    [ 1237.934434] dump_stack (lib/dump_stack.c:52)
    [ 1237.935323] ___might_sleep (kernel/sched/core.c:7339)
    [ 1237.936259] ? mark_held_locks (kernel/locking/lockdep.c:2549)
    [ 1237.937293] __might_sleep (kernel/sched/core.c:7305)
    [ 1237.938272] __kmalloc (mm/slub.c:1262 mm/slub.c:2419 mm/slub.c:2491 mm/slub.c:3291)
    [ 1237.939137] ? resp_rsup_opcodes (include/linux/slab.h:435 drivers/scsi/scsi_debug.c:1689)
    [ 1237.940173] resp_rsup_opcodes (include/linux/slab.h:435 drivers/scsi/scsi_debug.c:1689)
    [ 1237.941211] ? add_host_store (drivers/scsi/scsi_debug.c:1584)
    [ 1237.942261] scsi_debug_queuecommand (drivers/scsi/scsi_debug.c:5276)
    [ 1237.943404] ? blk_rq_map_sg (block/blk-merge.c:254)
    [ 1237.944398] ? scsi_init_sgtable (drivers/scsi/scsi_lib.c:1095)
    [ 1237.945402] sdebug_queuecommand_lock_or_not (drivers/scsi/scsi_debug.c:5300)
    [ 1237.946735] scsi_dispatch_cmd (drivers/scsi/scsi_lib.c:1706)
    [ 1237.947720] scsi_queue_rq (drivers/scsi/scsi_lib.c:1996)
    [ 1237.948687] __blk_mq_run_hw_queue (block/blk-mq.c:816)
    [ 1237.949796] blk_mq_run_hw_queue (block/blk-mq.c:896)
    [ 1237.950903] ? _raw_spin_unlock (./arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:154 kernel/locking/spinlock.c:183)
    [ 1237.951862] blk_mq_insert_request (block/blk-mq.c:1037)
    [ 1237.952876] blk_execute_rq_nowait (block/blk-exec.c:95)
    [ 1237.953981] ? lockdep_init_map (kernel/locking/lockdep.c:3034)
    [ 1237.954967] blk_execute_rq (block/blk-exec.c:131)
    [ 1237.955929] ? blk_rq_bio_prep (block/blk-core.c:2835)
    [ 1237.956913] scsi_execute (drivers/scsi/scsi_lib.c:252)
    [ 1237.957821] scsi_execute_req_flags (drivers/scsi/scsi_lib.c:281)
    [ 1237.958968] scsi_report_opcode (drivers/scsi/scsi.c:956)
    [ 1237.960009] sd_revalidate_disk (drivers/scsi/sd.c:2707 drivers/scsi/sd.c:2792)
    [ 1237.961139] revalidate_disk (fs/block_dev.c:1081)
    [ 1237.962223] sd_rescan (drivers/scsi/sd.c:1532)
    [ 1237.963142] scsi_rescan_device (drivers/scsi/scsi_scan.c:1579)
    [ 1237.964165] store_rescan_field (drivers/scsi/scsi_sysfs.c:672)
    [ 1237.965254] dev_attr_store (drivers/base/core.c:138)
    [ 1237.966319] sysfs_kf_write (fs/sysfs/file.c:131)
    [ 1237.967289] kernfs_fop_write (fs/kernfs/file.c:311)
    [ 1237.968274] do_readv_writev (fs/read_write.c:722 fs/read_write.c:854)
    [ 1237.969295] ? __acct_update_integrals (kernel/tsacct.c:145)
    [ 1237.970452] ? kernfs_fop_open (fs/kernfs/file.c:271)
    [ 1237.971505] ? _raw_spin_unlock (./arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:154 kernel/locking/spinlock.c:183)
    [ 1237.972512] ? context_tracking_user_exit (include/linux/vtime.h:89 include/linux/jump_label.h:114 include/trace/events/context_tracking.h:47 kernel/context_tracking.c:140)
    [ 1237.973668] ? trace_hardirqs_on_caller (kernel/locking/lockdep.c:2578 kernel/locking/lockdep.c:2625)
    [ 1237.974882] ? trace_hardirqs_on (kernel/locking/lockdep.c:2633)
    [ 1237.975850] vfs_writev (fs/read_write.c:893)
    [ 1237.976691] SyS_writev (fs/read_write.c:926 fs/read_write.c:917)
    [ 1237.977538] system_call_fastpath (arch/x86/kernel/entry_64.S:423)

    Signed-off-by: Sasha Levin
    Acked-by: Douglas Gilbert
    Signed-off-by: Christoph Hellwig

    Sasha Levin
     

19 Jan, 2015

1 commit

  • Fixes a race condition in abort handling that was injected
    when multiple interrupt support was added. When only a single
    interrupt is present, the adapter guarantees it will send
    responses for aborted commands prior to the response for the
    abort command itself. With multiple interrupts, these responses
    generally come back on different interrupts, so we need to
    ensure the abort thread waits until the aborted command is
    complete so we don't perform a double completion. This race
    condition was being hit frequently in environments which
    were triggering command timeouts, which was resulting in
    a double completion causing a kernel oops.

    Cc:
    Signed-off-by: Brian King
    Reviewed-by: Wendy Xiong
    Tested-by: Wendy Xiong
    Signed-off-by: Christoph Hellwig

    Brian King
     

09 Jan, 2015

1 commit

  • The blk-mq ->queue_rq method is always called from process context,
    but might have preemption disabled. This means we still always
    have to use GFP_ATOMIC for memory allocations, and thus need to
    revert part of commit 3c356bde1 ("scsi: stop passing a gfp_mask
    argument down the command setup path").

    Signed-off-by: Christoph Hellwig
    Reported-by: Sasha Levin
    Reviewed-by: Bart Van Assche
    Tested-by: Alexei Starovoitov

    Christoph Hellwig
     

06 Jan, 2015

1 commit

  • Commit e05fe29248 (qla2xxx: Honor FCP_RSP retry delay timer field.)
    causes systems to busy-wait for about 3 minutes after boot prior to
    detecting SAN disks.

    During this wait period one kworker is running full-time
    (though /proc//stack has no useful data). Another kworker is
    waiting for IO to complete during that whole time period.

    Looking at drivers/scsi/qla2xxx/qla_os.c, fcport->retry_delay_timestamp
    has a special value of 0 though that 0 value forces system to wait when
    jiffies is very large value (e.g. 4294952605 - "negative" value when
    signed on 32bit systems).

    Signed-off-by: Bruno Prémont
    Acked-by: Chad Dupuis
    Signed-off-by: Christoph Hellwig

    Bruno Prémont
     

31 Dec, 2014

1 commit

  • Commit ac61d1955934 (scsi: set correct completion code in
    scsi_send_eh_cmnd()) introduced a bug. It changed the stored return
    value from a queuecommand call, but it didn't take into account that
    the return value was used again later on. This patch fixes the bug by
    changing the later usage.

    There is a big comment in the middle of scsi_send_eh_cmnd() which
    does a good job of explaining how the routine works. But it mentions
    a "rtn = FAILURE" value that doesn't exist in the code. This patch
    adjusts the code to match the comment (I assume the comment is right
    and the code is wrong).

    This fixes Bugzilla #88341.

    Signed-off-by: Alan Stern
    Reported-by: Андрей Аладьев
    Tested-by: Андрей Аладьев
    Fixes: ac61d19559349e205dad7b5122b281419aa74a82
    Acked-by: Hannes Reinecke
    Cc:
    Signed-off-by: James Bottomley

    Alan Stern
     

30 Dec, 2014

2 commits

  • When I/O is aborted by mid-layer, fnic FW will complete the I/O before
    completing the abort task. In some cases abort request is completed before
    the I/O, which could lead to inconsistent driver and firmware states.
    In this case firmware reset would clear the inconsistent state.

    Signed-off-by: Anil Chintalapati
    Signed-off-by: Sesidhar Baddela
    Signed-off-by: Hiral Shah
    Signed-off-by: Christoph Hellwig

    Anil Chintalapati (achintal)
     
  • 7985090aa020 changed the discard heuristics to give preference to the
    WRITE SAME commands that (unlike UNMAP) guarantee deterministic results.

    Ming Lei discovered that QEMU SCSI's WRITE SAME implementation
    internally relied on limits that were only communicated for the UNMAP
    case. And therefore discard commands backed by WRITE SAME would fail.

    Tweak the heuristics so we still pick UNMAP in the LBPRZ=0 case and only
    prefer the WRITE SAME variants if the device has the LBPRZ flag set.

    Reported-by: Ming Lei
    Tested-by: Ming Lei
    Signed-off-by: Martin K. Petersen
    Acked-by: Paolo Bonzini
    Signed-off-by: Christoph Hellwig

    Martin K. Petersen
     

21 Dec, 2014

1 commit

  • Pull SCSI update from James Bottomley:
    "This is a much shorter set of patches that were on the go but didn't
    make it in to the early pull request for the merge window. It's
    really a set of bug fixes plus some final cleanup work on the new tag
    queue API"

    * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    storvsc: ring buffer failures may result in I/O freeze
    ipr: set scsi_level correctly for disk arrays
    ipr: add support for async scanning to speed up boot
    scsi_debug: fix missing "break;" in SDEBUG_UA_CAPACITY_CHANGED case
    scsi_debug: take sdebug_host_list_lock when changing capacity
    scsi_debug: improve driver description in Kconfig
    scsi_debug: fix compare and write errors
    qla2xxx: fix race in handling rport deletion during recovery causes panic
    scsi: blacklist RSOC for Microsoft iSCSI target devices
    scsi: fix random memory corruption with scsi-mq + T10 PI
    Revert "[SCSI] mpt3sas: Remove phys on topology change"
    Revert "[SCSI] mpt2sas: Remove phys on topology change."
    esas2r: Correct typos of "validate" in a comment
    fc: FCP_PTA_SIMPLE is 0
    ibmvfc: remove unused tag variable
    scsi: remove MSG_*_TAG defines
    scsi: remove scsi_set_tag_type
    scsi: remove scsi_get_tag_type
    scsi: never drop to untagged mode during queue ramp down
    scsi: remove ->change_queue_type method

    Linus Torvalds
     

19 Dec, 2014

1 commit

  • Pull more ACPI and power management updates from Rafael Wysocki:
    "These are regression fixes (leds-gpio, ACPI backlight driver,
    operating performance points library, ACPI device enumeration
    messages, cpupower tool), other bug fixes (ACPI EC driver, ACPI device
    PM), some cleanups in the operating performance points (OPP)
    framework, continuation of CONFIG_PM_RUNTIME elimination, a couple of
    minor intel_pstate driver changes, a new MAINTAINERS entry for it and
    an ACPI fan driver change needed for better support of thermal
    management in user space.

    Specifics:

    - Fix a regression in leds-gpio introduced by a recent commit that
    inadvertently changed the name of one of the properties used by the
    driver (Fabio Estevam).

    - Fix a regression in the ACPI backlight driver introduced by a
    recent fix that missed one special case that had to be taken into
    account (Aaron Lu).

    - Drop the level of some new kernel messages from the ACPI core
    introduced by a recent commit to KERN_DEBUG which they should have
    used from the start and drop some other unuseful KERN_ERR messages
    printed by ACPI (Rafael J Wysocki).

    - Revert an incorrect commit modifying the cpupower tool (Prarit
    Bhargava).

    - Fix two regressions introduced by recent commits in the OPP library
    and clean up some existing minor issues in that code (Viresh
    Kumar).

    - Continue to replace CONFIG_PM_RUNTIME with CONFIG_PM throughout the
    tree (or drop it where that can be done) in order to make it
    possible to eliminate CONFIG_PM_RUNTIME (Rafael J Wysocki, Ulf
    Hansson, Ludovic Desroches).

    There will be one more "CONFIG_PM_RUNTIME removal" batch after this
    one, because some new uses of it have been introduced during the
    current merge window, but that should be sufficient to finally get
    rid of it.

    - Make the ACPI EC driver more robust against race conditions related
    to GPE handler installation failures (Lv Zheng).

    - Prevent the ACPI device PM core code from attempting to disable
    GPEs that it has not enabled which confuses ACPICA and makes it
    report errors unnecessarily (Rafael J Wysocki).

    - Add a "force" command line switch to the intel_pstate driver to
    make it possible to override the blacklisting of some systems in
    that driver if needed (Ethan Zhao).

    - Improve intel_pstate code documentation and add a MAINTAINERS entry
    for it (Kristen Carlson Accardi).

    - Make the ACPI fan driver create cooling device interfaces witn
    names that reflect the IDs of the ACPI device objects they are
    associated with, except for "generic" ACPI fans (PNP ID "PNP0C0B").

    That's necessary for user space thermal management tools to be able
    to connect the fans with the parts of the system they are supposed
    to be cooling properly. From Srinivas Pandruvada"

    * tag 'pm+acpi-3.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    MAINTAINERS: add entry for intel_pstate
    ACPI / video: update the skip case for acpi_video_device_in_dod()
    power / PM: Eliminate CONFIG_PM_RUNTIME
    NFC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    SCSI / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    ACPI / EC: Fix unexpected ec_remove_handlers() invocations
    Revert "tools: cpupower: fix return checks for sysfs_get_idlestate_count()"
    tracing / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    x86 / PM: Replace CONFIG_PM_RUNTIME in io_apic.c
    PM: Remove the SET_PM_RUNTIME_PM_OPS() macro
    mmc: atmel-mci: use SET_RUNTIME_PM_OPS() macro
    PM / Kconfig: Replace PM_RUNTIME with PM in dependencies
    ARM / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    sound / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    phy / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    video / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tty / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    spi: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    ACPI / PM: Do not disable wakeup GPEs that have not been enabled
    ACPI / utils: Drop error messages from acpi_evaluate_reference()
    ...

    Linus Torvalds
     

18 Dec, 2014

1 commit


15 Dec, 2014

12 commits

  • After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is
    selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks
    depending on CONFIG_PM_RUNTIME may now be changed to depend on
    CONFIG_PM.

    Replace CONFIG_PM_RUNTIME with CONFIG_PM everywhere under
    drivers/scsi/ and in include/scsi/scsi_device.h.

    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Aaron Lu
    Acked-by: Christoph Hellwig

    Rafael J. Wysocki
     
  • When ring buffer returns an error indicating retry, storvsc may not
    return a proper error code to SCSI when bounce buffer is not used.
    This has introduced I/O freeze on RAID running atop storvsc devices.
    This patch fixes it by always returning a proper error code.

    Signed-off-by: Long Li
    Reviewed-by: K. Y. Srinivasan
    Signed-off-by: Christoph Hellwig
    cc: stable@vger.kernel.org

    Long Li
     
  • Set the scsi_level correctly for disk arrays such
    that things like the rotational field get set
    properly by sd.c.

    Signed-off-by: Brian King
    Reviewed-by: Wen Xiong
    Signed-off-by: Christoph Hellwig

    Brian King
     
  • Switch device scanning logic in the ipr driver to use
    the async scan API. This speeds up boot times, particularly
    on large systems.

    Signed-off-by: Brian King
    Reviewed-by: Wen Xiong
    Signed-off-by: Christoph Hellwig

    Brian King
     
  • This eliminates a superfluous log message when the capacity is changed:

    "check_readiness: unexpected unit attention code=3"

    Signed-off-by: Ewan D. Milne
    Acked-by: Douglas Gilbert
    Signed-off-by: Christoph Hellwig

    Ewan D. Milne
     
  • All other traversals of the sdebug_host_list take the lock.

    Signed-off-by: Ewan D. Milne
    Acked-by: Douglas Gilbert
    Signed-off-by: Christoph Hellwig

    Ewan D. Milne
     
  • Try to give a more accurate driver description and some extra
    information in less lines.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Douglas Gilbert
    Reviewed-by: Ewan D. Milne

    Douglas Gilbert
     
  • Kernel build tools pointed out a memory leak so that has been
    fixed and its error paths strengthened with a goto. Testing
    showed compare and write was only working for lba=0; correcting
    the length of the LBA field fixed that.

    Signed-off-by: Douglas Gilbert
    Reviewed-by: Ewan D. Milne
    Signed-off-by: Christoph Hellwig

    Douglas Gilbert
     
  • When we have an rport disconnect we race during rport deletion and
    re-connection resulting in a panic. When we do this, we call
    fc_remote_port_del() just before we do the calls to re-establish the
    session with the FC transport with fc_remote_port_add() and then
    fc_remote_port_rolechg().

    If we remove the call to fc_remote_port_del() before re-establishing
    the connection this prevents the race. This patch has resolved this
    for multiple customers via test kernels.

    Suggested by Chad Dupuis, implemented and tested by Laurence Oberman.

    Signed-off-by: Laurence Oberman
    Acked-by: Chad Dupuis
    Signed-off-by: Christoph Hellwig

    Laurence Oberman
     
  • The Microsoft iSCSI target does not support REPORT SUPPORTED OPERATION
    CODES. Blacklist these devices so we don't attempt to send the command.

    Signed-off-by: Martin K. Petersen
    Tested-by: Mike Christie
    Reported-by: jazz@deti74.ru
    Signed-off-by: Christoph Hellwig
    Cc: stable@vger.kernel.org # v3.10+

    Martin K. Petersen
     
  • This fixes random memory corruption triggered when all three of the
    following are true:

    * scsi-mq enabled
    * T10 Protection Information (DIF) enabled
    * SCSI host with sg_tablesize > SCSI_MAX_SG_SEGMENTS (128)

    The symptoms of this bug are unpredictable memory corruption, BUG()s,
    oopses, lockups, etc., any of which may appear to be completely
    unrelated to the root cause.

    Cc: # 3.17.x, 3.18.x
    Signed-off-by: Tony Battersby
    Reviewed-by: Nicholas Bellinger
    Signed-off-by: Christoph Hellwig

    Tony Battersby
     
  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

14 Dec, 2014

1 commit

  • Pull block driver core update from Jens Axboe:
    "This is the pull request for the core block IO changes for 3.19. Not
    a huge round this time, mostly lots of little good fixes:

    - Fix a bug in sysfs blktrace interface causing a NULL pointer
    dereference, when enabled/disabled through that API. From Arianna
    Avanzini.

    - Various updates/fixes/improvements for blk-mq:

    - A set of updates from Bart, mostly fixing buts in the tag
    handling.

    - Cleanup/code consolidation from Christoph.

    - Extend queue_rq API to be able to handle batching issues of IO
    requests. NVMe will utilize this shortly. From me.

    - A few tag and request handling updates from me.

    - Cleanup of the preempt handling for running queues from Paolo.

    - Prevent running of unmapped hardware queues from Ming Lei.

    - Move the kdump memory limiting check to be in the correct
    location, from Shaohua.

    - Initialize all software queues at init time from Takashi. This
    prevents a kobject warning when CPUs are brought online that
    weren't online when a queue was registered.

    - Single writeback fix for I_DIRTY clearing from Tejun. Queued with
    the core IO changes, since it's just a single fix.

    - Version X of the __bio_add_page() segment addition retry from
    Maurizio. Hope the Xth time is the charm.

    - Documentation fixup for IO scheduler merging from Jan.

    - Introduce (and use) generic IO stat accounting helpers for non-rq
    drivers, from Gu Zheng.

    - Kill off artificial limiting of max sectors in a request from
    Christoph"

    * 'for-3.19/core' of git://git.kernel.dk/linux-block: (26 commits)
    bio: modify __bio_add_page() to accept pages that don't start a new segment
    blk-mq: Fix uninitialized kobject at CPU hotplugging
    blktrace: don't let the sysfs interface remove trace from running list
    blk-mq: Use all available hardware queues
    blk-mq: Micro-optimize bt_get()
    blk-mq: Fix a race between bt_clear_tag() and bt_get()
    blk-mq: Avoid that __bt_get_word() wraps multiple times
    blk-mq: Fix a use-after-free
    blk-mq: prevent unmapped hw queue from being scheduled
    blk-mq: re-check for available tags after running the hardware queue
    blk-mq: fix hang in bt_get()
    blk-mq: move the kdump check to blk_mq_alloc_tag_set
    blk-mq: cleanup tag free handling
    blk-mq: use 'nr_cpu_ids' as highest CPU ID count for hwq cpu map
    blk: introduce generic io stat accounting help function
    blk-mq: handle the single queue case in blk_mq_hctx_next_cpu
    genhd: check for int overflow in disk_expand_part_tbl()
    blk-mq: add blk_mq_free_hctx_request()
    blk-mq: export blk_mq_free_request()
    blk-mq: use get_cpu/put_cpu instead of preempt_disable/preempt_enable
    ...

    Linus Torvalds
     

13 Dec, 2014

9 commits

  • Pull another networking update from David Miller:
    "Small follow-up to the main merge pull from the other day:

    1) Alexander Duyck's DMA memory barrier patch set.

    2) cxgb4 driver fixes from Karen Xie.

    3) Add missing export of fixed_phy_register() to modules, from Mark
    Salter.

    4) DSA bug fixes from Florian Fainelli"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (24 commits)
    net/macb: add TX multiqueue support for gem
    linux/interrupt.h: remove the definition of unused tasklet_hi_enable
    jme: replace calls to redundant function
    net: ethernet: davicom: Allow to select DM9000 for nios2
    net: ethernet: smsc: Allow to select SMC91X for nios2
    cxgb4: Add support for QSA modules
    libcxgbi: fix freeing skb prematurely
    cxgb4i: use set_wr_txq() to set tx queues
    cxgb4i: handle non-pdu-aligned rx data
    cxgb4i: additional types of negative advice
    cxgb4/cxgb4i: set the max. pdu length in firmware
    cxgb4i: fix credit check for tx_data_wr
    cxgb4i: fix tx immediate data credit check
    net: phy: export fixed_phy_register()
    fib_trie: Fix trie balancing issue if new node pushes down existing node
    vlan: Add ability to always enable TSO/UFO
    r8169:update rtl8168g pcie ephy parameter
    net: dsa: bcm_sf2: force link for all fixed PHY devices
    fm10k/igb/ixgbe: Use dma_rmb on Rx descriptor reads
    r8169: Use dma_rmb() and dma_wmb() for DescOwn checks
    ...

    Linus Torvalds
     
  • Pull trivial tree update from Jiri Kosina:
    "Usual stuff: documentation updates, printk() fixes, etc"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
    intel_ips: fix a type in error message
    cpufreq: cpufreq-dt: Move newline to end of error message
    ps3rom: fix error return code
    treewide: fix typo in printk and Kconfig
    ARM: dts: bcm63138: change "interupts" to "interrupts"
    Replace mentions of "list_struct" to "list_head"
    kernel: trace: fix printk message
    scsi: mpt2sas: fix ioctl in comment
    zbud, zswap: change module author email
    clocksource: Fix 'clcoksource' typo in comment
    arm: fix wording of "Crotex" in CONFIG_ARCH_EXYNOS3 help
    gpio: msm-v1: make boolean argument more obvious
    usb: Fix typo in usb-serial-simple.c
    PCI: Fix comment typo 'COMFIG_PM_OPS'
    powerpc: Fix comment typo 'CONIFG_8xx'
    powerpc: Fix comment typos 'CONFiG_ALTIVEC'
    clk: st: Spelling s/stucture/structure/
    isci: Spelling s/stucture/structure/
    usb: gadget: zero: Spelling s/infrastucture/infrastructure/
    treewide: Fix company name in module descriptions
    ...

    Linus Torvalds
     
  • With debug turned on the debug print would access the skb after it is freed.
    Fix it to free the skb after the debug print.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • use cxgb4's set_wr_txq() for setting of the tx queue for a outgoing packet.
    remove the similar function in cxgb4i.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • Abort the connection upon receiving of cpl_rx_data, which means the pdu cannot
    be recovered from the tcp stream. This generally is due to pdu header
    corruption.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • Treat both CPL_ERR_KEEPALV_NEG_ADVICE and CPL_ERR_PERSIST_NEG_ADVICE as
    negative advice.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • Programs the firmware of the maximum outgoing iscsi pdu length per connection.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • make sure any tx credit related checking is done before adding the wr header.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • Only data skbs need the wr header added while control skbs do not. Make sure
    they are treated differently.

    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     

12 Dec, 2014

4 commits

  • Pull libata changes from Tejun Heo:
    "The only interesting piece is the support for shingled drives. The
    changes in libata layer are minimal. All it does is identifying the
    new class of device and report upwards accordingly"

    * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    libata: Remove FIXME comment in atapi_request_sense()
    sata_rcar: Document deprecated "renesas,rcar-sata"
    sata_rcar: Add clocks to sata_rcar bindings
    ahci_sunxi: Make AHCI_HFLAG_NO_PMP flag configurable with a module option
    libata-scsi: Update SATL for ZAC drives
    libata: Implement ATA_DEV_ZAC
    libsas: use ata_dev_classify()

    Linus Torvalds
     
  • Pull networking updates from David Miller:

    1) New offloading infrastructure and example 'rocker' driver for
    offloading of switching and routing to hardware.

    This work was done by a large group of dedicated individuals, not
    limited to: Scott Feldman, Jiri Pirko, Thomas Graf, John Fastabend,
    Jamal Hadi Salim, Andy Gospodarek, Florian Fainelli, Roopa Prabhu

    2) Start making the networking operate on IOV iterators instead of
    modifying iov objects in-situ during transfers. Thanks to Al Viro
    and Herbert Xu.

    3) A set of new netlink interfaces for the TIPC stack, from Richard
    Alpe.

    4) Remove unnecessary looping during ipv6 routing lookups, from Martin
    KaFai Lau.

    5) Add PAUSE frame generation support to gianfar driver, from Matei
    Pavaluca.

    6) Allow for larger reordering levels in TCP, which are easily
    achievable in the real world right now, from Eric Dumazet.

    7) Add a variable of napi_schedule that doesn't need to disable cpu
    interrupts, from Eric Dumazet.

    8) Use a doubly linked list to optimize neigh_parms_release(), from
    Nicolas Dichtel.

    9) Various enhancements to the kernel BPF verifier, and allow eBPF
    programs to actually be attached to sockets. From Alexei
    Starovoitov.

    10) Support TSO/LSO in sunvnet driver, from David L Stevens.

    11) Allow controlling ECN usage via routing metrics, from Florian
    Westphal.

    12) Remote checksum offload, from Tom Herbert.

    13) Add split-header receive, BQL, and xmit_more support to amd-xgbe
    driver, from Thomas Lendacky.

    14) Add MPLS support to openvswitch, from Simon Horman.

    15) Support wildcard tunnel endpoints in ipv6 tunnels, from Steffen
    Klassert.

    16) Do gro flushes on a per-device basis using a timer, from Eric
    Dumazet. This tries to resolve the conflicting goals between the
    desired handling of bulk vs. RPC-like traffic.

    17) Allow userspace to ask for the CPU upon what a packet was
    received/steered, via SO_INCOMING_CPU. From Eric Dumazet.

    18) Limit GSO packets to half the current congestion window, from Eric
    Dumazet.

    19) Add a generic helper so that all drivers set their RSS keys in a
    consistent way, from Eric Dumazet.

    20) Add xmit_more support to enic driver, from Govindarajulu
    Varadarajan.

    21) Add VLAN packet scheduler action, from Jiri Pirko.

    22) Support configurable RSS hash functions via ethtool, from Eyal
    Perry.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1820 commits)
    Fix race condition between vxlan_sock_add and vxlan_sock_release
    net/macb: fix compilation warning for print_hex_dump() called with skb->mac_header
    net/mlx4: Add support for A0 steering
    net/mlx4: Refactor QUERY_PORT
    net/mlx4_core: Add explicit error message when rule doesn't meet configuration
    net/mlx4: Add A0 hybrid steering
    net/mlx4: Add mlx4_bitmap zone allocator
    net/mlx4: Add a check if there are too many reserved QPs
    net/mlx4: Change QP allocation scheme
    net/mlx4_core: Use tasklet for user-space CQ completion events
    net/mlx4_core: Mask out host side virtualization features for guests
    net/mlx4_en: Set csum level for encapsulated packets
    be2net: Export tunnel offloads only when a VxLAN tunnel is created
    gianfar: Fix dma check map error when DMA_API_DEBUG is enabled
    cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call
    net: fec: only enable mdio interrupt before phy device link up
    net: fec: clear all interrupt events to support i.MX6SX
    net: fec: reset fep link status in suspend function
    net: sock: fix access via invalid file descriptor
    net: introduce helper macro for_each_cmsghdr
    ...

    Linus Torvalds
     
  • Pull virtio updates from Michael Tsirkin:
    "virtio: virtio 1.0 support, misc patches

    This adds a lot of infrastructure for virtio 1.0 support. Notable
    missing pieces: virtio pci, virtio balloon (needs spec extension),
    vhost scsi.

    Plus, there are some minor fixes in a couple of places.

    Note: some net drivers are affected by these patches. David said he's
    fine with merging these patches through my tree.

    Rusty's on vacation, he acked using my tree for these, too"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (70 commits)
    virtio_ccw: finalize_features error handling
    virtio_ccw: future-proof finalize_features
    virtio_pci: rename virtio_pci -> virtio_pci_common
    virtio_pci: update file descriptions and copyright
    virtio_pci: split out legacy device support
    virtio_pci: setup config vector indirectly
    virtio_pci: setup vqs indirectly
    virtio_pci: delete vqs indirectly
    virtio_pci: use priv for vq notification
    virtio_pci: free up vq->priv
    virtio_pci: fix coding style for structs
    virtio_pci: add isr field
    virtio: drop legacy_only driver flag
    virtio_balloon: drop legacy_only driver flag
    virtio_ccw: rev 1 devices set VIRTIO_F_VERSION_1
    virtio: allow finalize_features to fail
    virtio_ccw: legacy: don't negotiate rev 1/features
    virtio: add API to detect legacy devices
    virtio_console: fix sparse warnings
    vhost: remove unnecessary forward declarations in vhost.h
    ...

    Linus Torvalds
     
  • Remove use of calls into t4_fw_hello() with MASTER_MUST, which results in
    FW_HELLO_CMD_MASTERFORCE being set. The firmware doesn't support this and of
    course any existing PF Drivers will totally go for a toss.

    Signed-off-by: Hariprasad Shenai
    Signed-off-by: David S. Miller

    Hariprasad Shenai