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
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
09 Feb, 2010
1 commit
-
The mpt2sas driver wants to use transport layer retries (TLR) so the
simplest thing to do seems to be to add the enabling flags and checks
to the SAS transport class, since they're a SAS specific protocol
feature.Signed-off-by: James Bottomley
04 Dec, 2009
1 commit
-
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.Signed-off-by: André Goddard Rosa
Signed-off-by: Jiri Kosina
23 Aug, 2009
1 commit
-
There are two setup places for max_phys in scsi_transport_sas.c; one
incorrectly places a NULL into host_attrs instead of port_attrs. Remove it.Reported-by: Roel Kluin
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley
21 Jun, 2009
1 commit
-
We need to call blk_end_request_all to complete SMP requests properly.
Signed-off-by: FUJITA Tomonori
Signed-off-by: James Bottomley
11 May, 2009
1 commit
-
Till now block layer allowed two separate modes of request execution.
A request is always acquired from the request queue via
elv_next_request(). After that, drivers are free to either dequeue it
or process it without dequeueing. Dequeue allows elv_next_request()
to return the next request so that multiple requests can be in flight.Executing requests without dequeueing has its merits mostly in
allowing drivers for simpler devices which can't do sg to deal with
segments only without considering request boundary. However, the
benefit this brings is dubious and declining while the cost of the API
ambiguity is increasing. Segment based drivers are usually for very
old or limited devices and as converting to dequeueing model isn't
difficult, it doesn't justify the API overhead it puts on block layer
and its more modern users.Previous patches converted all block low level drivers to dequeueing
model. This patch completes the API transition by...* renaming elv_next_request() to blk_peek_request()
* renaming blkdev_dequeue_request() to blk_start_request()
* adding blk_fetch_request() which is combination of peek and start
* disallowing completion of queued (not started) requests
* applying new API to all LLDs
Renamings are for consistency and to break out of tree code so that
it's apparent that out of tree drivers need updating.[ Impact: block request issue API cleanup, no functional change ]
Signed-off-by: Tejun Heo
Cc: Rusty Russell
Cc: James Bottomley
Cc: Mike Miller
Cc: unsik Kim
Cc: Paul Clements
Cc: Tim Waugh
Cc: Geert Uytterhoeven
Cc: David S. Miller
Cc: Laurent Vivier
Cc: Jeff Garzik
Cc: Jeremy Fitzhardinge
Cc: Grant Likely
Cc: Adrian McMenamin
Cc: Stephen Rothwell
Cc: Bartlomiej Zolnierkiewicz
Cc: Borislav Petkov
Cc: Sergei Shtylyov
Cc: Alex Dubov
Cc: Pierre Ossman
Cc: David Woodhouse
Cc: Markus Lidel
Cc: Stefan Weinhuber
Cc: Martin Schwidefsky
Cc: Pete Zaitcev
Cc: FUJITA Tomonori
Signed-off-by: Jens Axboe
03 Jan, 2009
1 commit
-
[jejb: limit ioctl to returning 20 characters to avoid overrun
on long device names and add a few more conversions]
Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
Signed-off-by: James Bottomley
27 Jul, 2008
1 commit
-
[jejb: fixed up a ton of missed conversions.
All of you are on notice this has happened, driver trees will now
need to be rebased]Signed-off-by: Harvey Harrison
Cc: SCSI List
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley
29 Apr, 2008
1 commit
-
We can save some atomic ops in the IO path, if we clearly define
the rules of how to modify the queue flags.Signed-off-by: Jens Axboe
23 Apr, 2008
2 commits
-
scsi_transport_sas calls blk_cleanup_queue too early for bsg
queues. If a user holds a sas_host, end_device, or expander device
open, remove the device, then send a request to it, we get a kernel
crash. We need to call blk_cleanup_queue in the release callback as we
do with scsi devices.This patch moves blk_cleanup_queue to sas_expander_release and
sas_end_device_release from sas_bsg_remove. sas_host can't use the
release callback in struct device so use bsg's release callback.Signed-off-by: FUJITA Tomonori
Signed-off-by: James Bottomley -
This patch adds release callback support, which is called when a bsg
device goes away. bsg_register_queue() takes a pointer to a callback
function. This feature is useful for stuff like sas_host that can't
use the release callback in struct device.If a caller doesn't need bsg's release callback, it can call
bsg_register_queue() with NULL pointer (e.g. scsi devices can use
release callback in struct device so they don't need bsg's callback).With this patch, bsg uses kref for refcounts on bsg devices instead of
get/put_device in fops->open/release. bsg calls put_device and the
caller's release callback (if it was registered) in kref_put's
release.Signed-off-by: FUJITA Tomonori
Signed-off-by: James Bottomley
20 Apr, 2008
1 commit
-
It's big, but there doesn't seem to be a way to split it up smaller...
Signed-off-by: Tony Jones
Signed-off-by: Kay Sievers
Cc: Roland Dreier
Cc: Sean Hefty
Cc: Hal Rosenstock
Cc: James Bottomley
Signed-off-by: Greg Kroah-Hartman
03 Feb, 2008
1 commit
-
Signed-off-by: Joe Perches
Acked-by: Andrew Vasquez
Acked-by: James Smart
Acked-by: Darrick J. Wong
Acked-by: David Somayajulu
Acked-by: Mark Salyzyn
Signed-off-by: Adrian Bunk
12 Jan, 2008
2 commits
-
Currently in BSG, errors returned in req->errors aren't passed back to
the calling programme (either via SG_IO or via read/write). Fix this,
while preserving the SCSI convention of returning status in
req->errors.Now update libsas to return errors correctly instead of to ignore
them.Acked-by: FUJITA Tomonori
Signed-off-by: James Bottomley -
Add Documentation/DocBook/scsi_midlayer.tmpl, add to Makefile, and update
lots of kerneldoc comments in drivers/scsi/*.Updated with comments from Stefan Richter, Stephen M. Cameron,
James Bottomley and Randy Dunlap.Signed-off-by: Rob Landley
Signed-off-by: James Bottomley
21 Jul, 2007
2 commits
-
Currently, bsg doesn't make class backlinks (a process whereby you'd get
a link to bsg in the device directory in the same way you get one for
sg). This is because the bsg device is uninitialised, so the class
device has nothing it can attach to. The fix is to make the bsg device
point to the cdevice of the entity creating the bsg, necessitating
changing the bsg_register_queue() prototype into a form that takes the
generic device.Acked-by: FUJITA Tomonori
Signed-off-by: James Bottomley -
There's currently no destructor for the bsg components. If you insert
and remove the module, you see the bsg devices building up and up. This
patch adds the destructor in the correct place in the transport class so
that the bsg and request queue are removed just before the device
destruction.Acked-by: FUJITA Tomonori
Signed-off-by: James Bottomley
19 Jul, 2007
1 commit
-
The sas transport class attaches one bsg device to every SAS object
(host, device, expander, etc). LLDs can define a function to handle
SMP requests via sas_function_template::smp_handler.Signed-off-by: FUJITA Tomonori
Signed-off-by: James Bottomley
18 Feb, 2007
1 commit
-
heirarchical, hierachical -> hierarchical
heirarchy, hierachy -> hierarchySigned-off-by: Uwe Kleine-König
Signed-off-by: Adrian Bunk
28 Jan, 2007
2 commits
-
Get rid of: "warning: ignoring return value of sysfs_create_link..."
Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley -
sas_rphy_delete does two things: it removes the sas_rphy from the transport
layer and frees the sas_rphy. This can be broken down into two functions,
sas_rphy_remove and sas_rphy_free; sas_rphy_remove is of interest to
sas_discover_root_expander because it calls functions that require
sas_rphy_add as a prerequisite and can fail (namely sas_discover_expander).
In that case, sas_discover_root_expander needs to be able to undo the effects
of sas_rphy_add yet leave the job of freeing the sas_rphy to the caller of
sas_discover_root_expander.This patch also removes some unnecessary code from sas_discover_end_dev
to eliminate an unnecessary cycle of sas_notify_lldd_gone/found for SAS
devices, thus eliminating a sas_rphy_remove call (and fixing a race condition
where a SCSI target scan can come in between the gone and found call).
It also moves the sas_rphy_free calls into sas_discover_domain and
sas_ex_discover_end_dev to complement the sas_rphy_allocation via
sas_get_port_device.This patch does not change the semantics of sas_rphy_delete.
Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley
27 Jan, 2007
1 commit
-
fix typos and bump version number
Signed-off-by: Darrick J. Wong
Acked-by: Alexis Bruemmer
Signed-off-by: James Bottomley
14 Jan, 2007
3 commits
-
Allowing the phy reset controls to be world-triggerable does not seem like
a terribly good idea because SAS devices can be disrupted (and ATA devices
are really disrupted) by a phy reset. By default only root should be able
to do things like that.Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley -
Magic number cleanup.
Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley -
This patch lets a user arbitrarily enable or disable a phy via sysfs.
Potential applications include shutting down a phy to replace one
lane of wide port, and (more importantly) providing a method for the
libata SATL to control the phy.Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley
04 Dec, 2006
1 commit
-
Signed-off-by: Al Viro
08 Sep, 2006
1 commit
-
According to SPEC, the minimum_linkrate and maximum_linkrate should be
settable by the user. This patch introduces a callback that allows the
sas class to pass these settings on to the driver.Signed-off-by: James Bottomley
28 Aug, 2006
1 commit
-
This flag denotes local attachment of the phy. There are two problems
with it:1) It's actually redundant ... you can get the same information simply
by seeing whether a host is the phys parent
2) we condition a lot of phy parameters on it on the false assumption
that we can only control local phys. I'm wiring up phy resets in the
aic94xx now, and it will be able to reset non-local phys as well.I fixed 2) by moving the local check into the reset and stats function
of the mptsas, since that seems to be the only HBA that can't
(currently) control non-local phys.Signed-off-by: James Bottomley
12 Jul, 2006
2 commits
-
Using the port_id for the channel is completely unnecessary since the
host_id/target_id are constructed to be globally unique. Also move
the mptsas driver on to virtual channel 1 for its raid devices.Acked-by: "Moore, Eric"
Signed-off-by: James Bottomley -
This patch adds the ability to add a backlink to a particular port. The
idea is to represent properly ports on expanders that are used
specifically for linking to the parent device in the topology.Signed-off-by: James Bottomley
09 Jul, 2006
1 commit
-
Some SAS HBAs don't want to go to the trouble of tracking port numbers,
so they'd simply like to say "add this port and give it a number".
This is especially beneficial from the hotplug point of view, since
tracking ports and the available number space can be a real pain.The current implementation uses an incrementing number per expander to
add the port on. However, since there can never be more ports than
there are phys, a later implementation will try to be more intelligent
about this.Signed-off-by: James Bottomley
29 Jun, 2006
1 commit
-
this patch introduces a port object, separates out ports and phys,
with ports becoming the primary objects of the tree.Signed-off-by: James Bottomley
12 Jun, 2006
1 commit
-
This is a hold over from the end device/expander conversion. Apparently
the rphy list pointer is never initialised, so list_del() on the
uninitialised pointer can panic the systemSigned-off-by: James Bottomley
11 Jun, 2006
1 commit
10 Jun, 2006
1 commit
-
Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove
duplicates of the macro.Signed-off-by: Tobias Klauser
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley
20 May, 2006
2 commits
-
A couple write attributes in sas transport layer have a small
bug that prevents them from being written to. Those
attributes are the link_reset and write_reset. This is due
the store field being set to NULL.Signed-off-by: Eric Moore
Signed-off-by: James Bottomley -
the user_scan() callback currently has the potential to identify the
wrong device in the presence of expanders. This is because it finds
the first device with a matching target_id, which might be an
expander. Fix this by making it look specifically for end devices.Signed-off-by: James Bottomley
15 Apr, 2006
1 commit
-
Any end device that can't support any of the scanning protocols
shouldn't be scanned, so set its id to -1 to prevent
scsi_scan_target() being called for it.Signed-off-by: James Bottomley
13 Apr, 2006
1 commit
-
necessary to make the domain class use the internal structures
Signed-off-by: James Bottomley