23 Jan, 2020

1 commit

  • commit 82ea3e0e129e2ab913dd6684bab7a6e5e9896dee upstream.

    Removing a non-host rphy causes a memory leak:

    root@(none)$ echo 0 > /sys/devices/platform/HISI0162:01/host0/port-0:0/expander-0:0/port-0:0:10/phy-0:0:10/sas_phy/phy-0:0:10/enable
    [ 79.857888] hisi_sas_v2_hw HISI0162:01: dev[7:1] is gone
    root@(none)$ echo scan > /sys/kernel/debug/kmemleak
    [ 131.656603] kmemleak: 3 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
    root@(none)$ more /sys/kernel/debug/kmemleak
    unreferenced object 0xffff041da5c66000 (size 256):
    comm "kworker/u128:1", pid 549, jiffies 4294898543 (age 113.728s)
    hex dump (first 32 bytes):
    00 5e c6 a5 1d 04 ff ff 01 00 00 00 00 00 00 00 .^..............
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] kmem_cache_alloc+0x188/0x260
    [] bsg_setup_queue+0x48/0x1a8
    [] sas_rphy_add+0x108/0x2d0
    [] sas_probe_devices+0x168/0x208
    [] sas_discover_domain+0x660/0x9c8
    [] process_one_work+0x3f8/0x690
    [] worker_thread+0x70/0x6a0
    [] kthread+0x1b8/0x1c0
    [] ret_from_fork+0x10/0x18
    unreferenced object 0xffff041d8c075400 (size 128):
    comm "kworker/u128:1", pid 549, jiffies 4294898543 (age 113.728s)
    hex dump (first 32 bytes):
    00 40 25 97 1d 00 ff ff 00 00 00 00 00 00 00 00 .@%.............
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] __kmalloc_node+0x1a8/0x2c8
    [] blk_mq_realloc_tag_set_tags.part.70+0x48/0xd8
    [] blk_mq_alloc_tag_set+0x1dc/0x530
    [] bsg_setup_queue+0xe8/0x1a8
    [] sas_rphy_add+0x108/0x2d0
    [] sas_probe_devices+0x168/0x208
    [] sas_discover_domain+0x660/0x9c8
    [] process_one_work+0x3f8/0x690
    [] worker_thread+0x70/0x6a0
    [] kthread+0x1b8/0x1c0
    [] ret_from_fork+0x10/0x18
    unreferenced object 0xffff041da5c65e00 (size 256):
    comm "kworker/u128:1", pid 549, jiffies 4294898543 (age 113.728s)
    hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] __kmalloc_node+0x1a8/0x2c8
    [] blk_mq_alloc_tag_set+0x254/0x530
    [] bsg_setup_queue+0xe8/0x1a8
    [] sas_rphy_add+0x108/0x2d0
    [] sas_probe_devices+0x168/0x208
    [] sas_discover_domain+0x660/0x9c8
    [] process_one_work+0x3f8/0x690
    [] worker_thread+0x70/0x6a0
    [] kthread+0x1b8/0x1c0
    [] ret_from_fork+0x10/0x18
    root@(none)$

    It turns out that we don't clean up the request queue fully for bsg
    devices, as the blk mq tags for the request queue are not freed.

    Fix by doing the queue removal in one place - in sas_rphy_remove() -
    instead of unregistering the queue in sas_rphy_remove() and finally
    cleaning up the queue in calling blk_cleanup_queue() from
    sas_end_device_release() or sas_expander_release().

    Function bsg_remove_queue() can handle a NULL pointer q, so remove the
    precheck in sas_rphy_remove().

    Fixes: 651a013649943 ("scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough")
    Link: https://lore.kernel.org/r/1574242755-94156-1-git-send-email-john.garry@huawei.com
    Signed-off-by: John Garry
    Signed-off-by: Martin K. Petersen
    Signed-off-by: Greg Kroah-Hartman

    John Garry
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    released under gpl v2

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 15 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190528171438.895196075@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

06 Feb, 2019

1 commit


08 Nov, 2018

2 commits

  • All drivers do unregister + cleanup, provide a helper for that.

    Cc: linux-scsi@vger.kernel.org
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Christoph Hellwig
    Tested-by: Benjamin Block
    Tested-by: Ming Lei
    Reviewed-by: Omar Sandoval
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • This will ease in the conversion to blk-mq, where we can't set
    a timeout handler after queue init.

    Cc: Johannes Thumshirn
    Cc: linux-scsi@vger.kernel.org
    Reviewed-by: Hannes Reinecke
    Tested-by: Benjamin Block
    Tested-by: Ming Lei
    Reviewed-by: Omar Sandoval
    Signed-off-by: Jens Axboe

    Jens Axboe
     

26 Sep, 2018

1 commit

  • This code is dead and no clue implies that it will be back again.

    Signed-off-by: Jason Yan
    CC: John Garry
    CC: Johannes Thumshirn
    CC: Ewan Milne
    CC: Christoph Hellwig
    CC: Tomas Henzl
    CC: Dan Williams
    CC: Hannes Reinecke
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: John Garry
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Martin K. Petersen

    Jason Yan
     

11 Jun, 2018

1 commit

  • Pull SCSI updates from James Bottomley:
    "This is mostly updates to the usual drivers: ufs, qedf, mpt3sas, lpfc,
    xfcp, hisi_sas, cxlflash, qla2xxx.

    In the absence of Nic, we're also taking target updates which are
    mostly minor except for the tcmu refactor.

    The only real core change to worry about is the removal of high page
    bouncing (in sas, storvsc and iscsi). This has been well tested and no
    problems have shown up so far"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (268 commits)
    scsi: lpfc: update driver version to 12.0.0.4
    scsi: lpfc: Fix port initialization failure.
    scsi: lpfc: Fix 16gb hbas failing cq create.
    scsi: lpfc: Fix crash in blk_mq layer when executing modprobe -r lpfc
    scsi: lpfc: correct oversubscription of nvme io requests for an adapter
    scsi: lpfc: Fix MDS diagnostics failure (Rx < Tx)
    scsi: hisi_sas: Mark PHY as in reset for nexus reset
    scsi: hisi_sas: Fix return value when get_free_slot() failed
    scsi: hisi_sas: Terminate STP reject quickly for v2 hw
    scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
    scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
    scsi: hisi_sas: Try wait commands before before controller reset
    scsi: hisi_sas: Init disks after controller reset
    scsi: hisi_sas: Create a scsi_host_template per HW module
    scsi: hisi_sas: Reset disks when discovered
    scsi: hisi_sas: Add LED feature for v3 hw
    scsi: hisi_sas: Change common allocation mode of device id
    scsi: hisi_sas: change slot index allocation mode
    scsi: hisi_sas: Introduce hisi_sas_phy_set_linkrate()
    scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
    ...

    Linus Torvalds
     

30 May, 2018

1 commit

  • Bsg holding a reference to the parent device may result in a crash if a
    bsg file handle is closed after the parent device driver has unloaded.

    Holding a reference is not really needed: the parent device must exist
    between bsg_register_queue and bsg_unregister_queue. Before the device
    goes away the caller does blk_cleanup_queue so that all in-flight
    requests to the device are gone and all new requests cannot pass beyond
    the queue. The queue itself is a refcounted object and it will stay
    alive with a bsg file.

    Based on analysis, previous patch and changelog from Anatoliy Glagolev.

    Reported-by: Anatoliy Glagolev
    Reviewed-by: James E.J. Bottomley
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

02 May, 2018

1 commit


14 Mar, 2018

1 commit

  • The current BSG design tries to shoe-horn the transport-specific
    passthrough commands into the overall framework for SCSI passthrough
    requests. This has a couple problems:

    - each passthrough queue has to set the QUEUE_FLAG_SCSI_PASSTHROUGH flag
    despite not dealing with SCSI commands at all. Because of that these
    queues could also incorrectly accept SCSI commands from in-kernel
    users or through the legacy SCSI_IOCTL_SEND_COMMAND ioctl.
    - the real SCSI bsg queues also incorrectly accept bsg requests of the
    BSG_SUB_PROTOCOL_SCSI_TRANSPORT type
    - the bsg transport code is almost unredable because it tries to reuse
    different SCSI concepts for its own purpose.

    This patch instead adds a new bsg_ops structure to handle the two cases
    differently, and thus solves all of the above problems. Another side
    effect is that the bsg-lib queues also don't need to embedd a
    struct scsi_request anymore.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

09 Mar, 2018

1 commit

  • This patch has been generated as follows:

    for verb in set_unlocked clear_unlocked set clear; do
    replace-in-files queue_flag_${verb} blk_queue_flag_${verb%_unlocked} \
    $(git grep -lw queue_flag_${verb} drivers block/bsg*)
    done

    Except for protecting all queue flag changes with the queue lock
    this patch does not change any functionality.

    Cc: Mike Snitzer
    Cc: Shaohua Li
    Cc: Christoph Hellwig
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Signed-off-by: Bart Van Assche
    Reviewed-by: Martin K. Petersen
    Reviewed-by: Johannes Thumshirn
    Acked-by: Martin K. Petersen
    Signed-off-by: Jens Axboe

    Bart Van Assche
     

17 Oct, 2017

1 commit


30 Aug, 2017

1 commit

  • Simplify the SMP passthrough code by switching it to the generic bsg-lib
    helpers that abstract away the details of the request code, and gets
    drivers out of seeing struct scsi_request.

    For the libsas host SMP code there is a small behavior difference in
    that we now always clear the residual len for successful commands,
    similar to the three other SMP handler implementations. Given that
    there is no partial command handling in the host SMP handler this should
    not matter in practice.

    [mkp: typos and checkpatch fixes]

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Martin K. Petersen

    Christoph Hellwig
     

26 Aug, 2017

1 commit


28 Jun, 2017

1 commit


21 Jun, 2017

1 commit

  • Instead of explicitly calling scsi_req_init() after blk_get_request(),
    call that function from inside blk_get_request(). Add an
    .initialize_rq_fn() callback function to the block drivers that need
    it. Merge the IDE .init_rq_fn() function into .initialize_rq_fn()
    because it is too small to keep it as a separate function. Keep the
    scsi_req_init() call in ide_prep_sense() because it follows a
    blk_rq_init() call.

    References: commit 82ed4db499b8 ("block: split scsi_request out of struct request")
    Signed-off-by: Bart Van Assche
    Cc: Christoph Hellwig
    Cc: Hannes Reinecke
    Cc: Omar Sandoval
    Cc: Nicholas Bellinger
    Signed-off-by: Jens Axboe

    Bart Van Assche
     

09 Jun, 2017

1 commit

  • Currently we use nornal Linux errno values in the block layer, and while
    we accept any error a few have overloaded magic meanings. This patch
    instead introduces a new blk_status_t value that holds block layer specific
    status codes and explicitly explains their meaning. Helpers to convert from
    and to the previous special meanings are provided for now, but I suspect
    we want to get rid of them in the long run - those drivers that have a
    errno input (e.g. networking) usually get errnos that don't know about
    the special block layer overloads, and similarly returning them to userspace
    will usually return somethings that strictly speaking isn't correct
    for file system operations, but that's left as an exercise for later.

    For now the set of errors is a very limited set that closely corresponds
    to the previous overloaded errno values, but there is some low hanging
    fruite to improve it.

    blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
    typechecking, so that we can easily catch places passing the wrong values.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

02 Jun, 2017

1 commit

  • From the context where a SCSI command is submitted it is not always
    possible to figure out whether or not the queue the command is
    submitted to has struct scsi_request as the first member of its
    private data. Hence introduce the flag QUEUE_FLAG_SCSI_PASSTHROUGH.

    Signed-off-by: Bart Van Assche
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Martin K. Petersen
    Cc: Omar Sandoval
    Cc: Don Brace
    Signed-off-by: Jens Axboe

    Bart Van Assche
     

05 May, 2017

1 commit

  • Pull SCSI updates from James Bottomley:
    "This update includes the usual round of major driver updates
    (hisi_sas, ufs, fnic, cxlflash, be2iscsi, ipr, stex). There's also the
    usual amount of cosmetic and spelling stuff"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (155 commits)
    scsi: qla4xxx: fix spelling mistake: "Tempalate" -> "Template"
    scsi: stex: make S6flag static
    scsi: mac_esp: fix to pass correct device identity to free_irq()
    scsi: aacraid: pci_alloc_consistent() failures on ARM64
    scsi: ufs: make ufshcd_get_lists_status() register operation obvious
    scsi: ufs: use MASK_EE_STATUS
    scsi: mac_esp: Replace bogus memory barrier with spinlock
    scsi: fcoe: make fcoe_e_d_tov and fcoe_r_a_tov static
    scsi: sd_zbc: Do not write lock zones for reset
    scsi: sd_zbc: Remove superfluous assignments
    scsi: sd: sd_zbc: Rename sd_zbc_setup_write_cmnd
    scsi: Improve scsi_get_sense_info_fld
    scsi: sd: Cleanup sd_done sense data handling
    scsi: sd: Improve sd_completed_bytes
    scsi: sd: Fix function descriptions
    scsi: mpt3sas: remove redundant wmb
    scsi: mpt: Move scsi_remove_host() out of mptscsih_remove_host()
    scsi: sg: reset 'res_in_use' after unlinking reserved array
    scsi: mvumi: remove code handling zero scsi_sg_count(scmd) case
    scsi: fusion: fix spelling mistake: "Persistancy" -> "Persistency"
    ...

    Linus Torvalds
     

26 Apr, 2017

1 commit


21 Apr, 2017

2 commits

  • Move scsi_remove_host call into sas_remove_host and remove it from SAS
    HBA drivers, so we don't mess up the ordering. This solves an issue with
    double deleting sysfs entries that was introduced by the change of sysfs
    behaviour from commit bcdde7e221a8 ("sysfs: make __sysfs_remove_dir()
    recursive").

    [mkp: addressed checkpatch complaints]

    Signed-off-by: Johannes Thumshirn
    Suggested-by: Christoph Hellwig
    Cc: Hannes Reinecke
    Cc: James Bottomley
    Cc: Jinpu Wang
    Cc: John Garry
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Jinpu Wang
    Signed-off-by: Martin K. Petersen

    Johannes Thumshirn
     
  • This passes on the scsi_cmnd result field to users of passthrough
    requests. Currently we abuse req->errors for this purpose, but that
    field will go away in its current form.

    Note that the old IDE code abuses the errors field in very creative
    ways and stores all kinds of different values in it. I didn't dare
    to touch this magic, so the abuses are brought forward 1:1.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Martin K. Petersen
    Reviewed-by: Bart Van Assche
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

28 Feb, 2017

1 commit

  • Fix typos and add the following to the scripts/spelling.txt:

    intialization||initialization

    The "inintialization" in drivers/acpi/spcr.c is a different pattern but
    I fixed it as well in this commit.

    Link: http://lkml.kernel.org/r/1481573103-11329-16-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

22 Feb, 2017

1 commit

  • The end_device and sas_host devices support BSG ioctls, but the
    request_queue allocated for them isn't set up to allocate the struct
    scsi_request payload. This leads to memory corruption in the call to
    scsi_req_init() in bsg_map_hdr(), since it will memset past the end of
    the allocated request. Fix it by setting ->cmd_size on the allocated
    request_queue.

    Fixes: 82ed4db499b8 ("block: split scsi_request out of struct request")
    Signed-off-by: Omar Sandoval
    Acked-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Omar Sandoval
     

28 Jan, 2017

1 commit

  • And require all drivers that want to support BLOCK_PC to allocate it
    as the first thing of their private data. To support this the legacy
    IDE and BSG code is switched to set cmd_size on their queues to let
    the block layer allocate the additional space.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

19 Aug, 2016

1 commit


12 Apr, 2016

1 commit

  • On larger installations it is useful to disable automatic LUN scanning,
    and only add the required LUNs via udev rules. This can speed up bootup
    dramatically.

    This patch introduces a new scan module parameter value 'manual', which
    works like 'none', but can be overridden by setting the 'rescan' value
    from scsi_scan_target to 'SCSI_SCAN_MANUAL'. And it updates all
    relevant callers to set the 'rescan' value to 'SCSI_SCAN_MANUAL' if
    invoked via the 'scan' option in sysfs.

    Signed-off-by: Hannes Reinecke
    Reviewed-by: Ewan D. Milne
    Tested-by: Laurence Oberman
    Signed-off-by: Martin K. Petersen

    Hannes Reinecke
     

15 Mar, 2016

1 commit


19 Dec, 2015

2 commits

  • For a device known to be SAS connected, this will return the endpoint
    address. This is useful for getting the SAS address of SATA devices.

    Reviewed-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    James Bottomley
     
  • Adds a function designed to be callable any time (regardless of
    whether the transport attributes are configured or not) which returns
    true if the device is attached over a SAS transport. The design of
    this function is that transport specific functions can be embedded
    within a

    if (is_sas_attached(sdev)) {
    ...
    }

    which would be compiled out (and thus eliminate the symbols) if SAS is
    not configured.

    Reviewed-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    James Bottomley
     

07 Sep, 2015

1 commit


18 Jul, 2014

1 commit

  • The SCSI standard defines 64-bit values for LUNs, and large arrays
    employing large or hierarchical LUN numbers become more and more
    common.

    So update the linux SCSI stack to use 64-bit LUN numbers.

    Signed-off-by: Hannes Reinecke
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Ewan Milne
    Signed-off-by: Christoph Hellwig

    Hannes Reinecke
     

23 May, 2014

1 commit

  • The recent change in sysfs, bcdde7e221a8750f9b62b6d0bd31b72ea4ad9309
    "sysfs: make __sysfs_remove_dir() recursive" revealed an asymmetric
    rphy device creation/deletion sequence in scsi_transport_sas:

    modprobe mpt2sas
    sas_rphy_add
    device_add A rphy->dev
    device_add B sas_device transport class
    device_add C sas_end_device transport class
    device_add D bsg class

    rmmod mpt2sas
    sas_rphy_delete
    sas_rphy_remove
    device_del B
    device_del C
    device_del A
    sysfs_remove_group recursive sysfs dir removal
    sas_rphy_free
    device_del D warning

    where device A is the parent of B, C, and D.

    When sas_rphy_free tries to unregister the bsg request queue (device D
    above), the ensuing sysfs cleanup discovers that its sysfs group has
    already been removed and emits a warning, "sysfs group... not found for
    kobject 'end_device-X:0'".

    Since bsg creation is a side effect of sas_rphy_add, move its
    complementary removal call into sas_rphy_remove. This imposes the
    following tear-down order for the devices above: D, B, C, A.

    Note the sas_device and sas_end_device transport class devices (B and C
    above) are created and destroyed both via the list match traversal in
    attribute_container_device_trigger, so the order in which they are
    handled is fixed. This is fine as long as they are deleted before their
    parent device.

    Signed-off-by: Joe Lawrence
    Acked-by: Dan Williams
    Signed-off-by: James Bottomley

    Joe Lawrence
     

01 Dec, 2012

1 commit


01 Mar, 2012

2 commits

  • If userspace requests a phy reset, treat that as a request for the phy
    to be enabled since that is the effect on hardware.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • In the direct-attached case this routine returns the phy on which this
    device was first discovered. Which is broken if we want to support
    wide-targets, as this phy reference can become stale even though the
    port is still active.

    In the expander-attached case this routine tries to lookup the phy by
    scanning the attached sas addresses of the parent expander, and BUG_ONs
    if it can't find it. However since eh and the libsas workqueue run
    independently we can still be attempting device recovery via eh after
    libsas has recorded the device as detached. This is even easier to hit
    now that eh is blocked while device domain rediscovery takes place, and
    that libata is fed more timed out commands increasing the chances that
    it will try to recover the ata device.

    Arrange for dev->phy to always point to a last known good phy, it may be
    stale after the port is torn down, but it will catch up for wide port
    reconfigurations, and never be NULL.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

20 Feb, 2012

2 commits

  • Extend the sas transport class to allow transport users to attach extra
    data to a sas_phy (->hostdata). Use this area in libsas to move resets
    to workq context in preparation for scheduling ata device resets through
    libata-eh.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • libata error handling provides for a timeout for link recovery. libsas
    must not rescan for previously known devices in this interval otherwise
    it may remove a device that is simply waiting for its link to recover.
    Let libata-eh make the determination of when the link is stable and
    prevent libsas (host workqueue) from taking action while this
    determination is pending.

    Using a mutex (ha->disco_mutex) to flush and disable revalidation while
    eh is running requires any discovery action that may block on eh be
    moved to its own context outside the lock. Probing ATA devices
    explicitly waits on ata-eh and the cache-flush-io issued during device
    removal may also pend awaiting eh completion. Essentially any rphy
    add/remove activity needs to run outside the lock.

    This adds two new cleanup states for sas_unregister_domain_devices()
    'allocated-but-not-probed', and 'flagged-for-destruction'. In the
    'allocated-but-not-probed' state dev->rphy points to a rphy that is
    known to have not been through a sas_rphy_add() event. At domain
    teardown check if this device is still pending probe and cleanup
    accordingly. Similarly if a device has already been queued for removal
    then sas_unregister_domain_devices has nothing to do.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

03 Oct, 2011

1 commit

  • Currently mvsas and pm8001 have custom ->slave_alloc implementations to
    achieve this. Uplevel it for all libsas drivers as isci encounters problems
    with atapi devices when scanning past lun0.

    Just do what Darrick suggested [1], and limit the scan for ata devices.

    [1] http://marc.info/?l=linux-scsi&m=116604101119861&w=2

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

10 Mar, 2011

1 commit

  • Code has been converted over to the new explicit on-stack plugging,
    and delay users have been converted to use the new API for that.
    So lets kill off the old plugging along with aops->sync_page().

    Signed-off-by: Jens Axboe

    Jens Axboe