* use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.)
[not found] ` <11787530043878-git-send-email-krh@redhat.com>
@ 2007-05-10 10:38 ` Stefan Richter
2007-05-10 11:44 ` Christoph Hellwig
2007-05-10 13:08 ` Kristian Høgsberg
[not found] ` <11787530054176-git-send-email-krh@redhat.com>
1 sibling, 2 replies; 5+ messages in thread
From: Stefan Richter @ 2007-05-10 10:38 UTC (permalink / raw)
To: Kristian Høgsberg; +Cc: linux1394-devel, linux-scsi
Kristian Høgsberg wrote:
> The SCSI layer only passes sg requests down, so drop the
> use_sg == 0, request_bufflen != 0 case.
>
> Signed-off-by: Kristian Hoegsberg <krh@redhat.com>
> ---
> drivers/firewire/fw-sbp2.c | 43 +------------------------------------------
> 1 files changed, 1 insertions(+), 42 deletions(-)
[...]
> @@ -1063,21 +1035,8 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
> orb->request.misc |=
> COMMAND_ORB_DIRECTION(SBP2_DIRECTION_TO_MEDIA);
>
> - if (cmd->use_sg) {
> - if (sbp2_command_orb_map_scatterlist(orb) < 0)
> - goto fail_map_payload;
> - } else if (cmd->request_bufflen > SBP2_MAX_SG_ELEMENT_LENGTH) {
> - /*
> - * FIXME: Need to split this into a sg list... but
> - * could we get the scsi or blk layer to do that by
> - * reporting our max supported block size?
> - */
> - fw_error("command > 64k\n");
> + if (cmd->use_sg && sbp2_command_orb_map_scatterlist(orb) < 0)
> goto fail_map_payload;
> - } else if (cmd->request_bufflen > 0) {
> - if (sbp2_command_orb_map_buffer(orb) < 0)
> - goto fail_map_payload;
> - }
>
> fw_memcpy_to_be32(&orb->request, &orb->request, sizeof orb->request);
>
Would a BUG_ON(cmd->use_sg == 0); be in order?
--
Stefan Richter
-=====-=-=== -=-= -=-=-
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 6/9] Make scsi_host_template::proc_name const char * instead of char *.
[not found] ` <11787530054176-git-send-email-krh@redhat.com>
@ 2007-05-10 10:44 ` Stefan Richter
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Richter @ 2007-05-10 10:44 UTC (permalink / raw)
To: James Bottomley, linux-scsi; +Cc: Kristian Høgsberg, linux1394-devel
[-- Attachment #1: Type: text/plain, Size: 1213 bytes --]
Kristian Høgsberg wrote:
> Signed-off-by: Kristian Hoegsberg <krh@redhat.com>
> ---
> drivers/scsi/scsi_debug.c | 2 +-
> include/scsi/scsi_host.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
> index 3e2930b..843f9c1 100644
> --- a/drivers/scsi/scsi_debug.c
> +++ b/drivers/scsi/scsi_debug.c
> @@ -2876,7 +2876,7 @@ static int __init scsi_debug_init(void)
>
> init_all_queued();
>
> - sdebug_driver_template.proc_name = (char *)sdebug_proc_name;
> + sdebug_driver_template.proc_name = sdebug_proc_name;
>
> host_to_add = scsi_debug_add_host;
> scsi_debug_add_host = 0;
> diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
> index 7f1f411..0dfb5c2 100644
> --- a/include/scsi/scsi_host.h
> +++ b/include/scsi/scsi_host.h
> @@ -343,7 +343,7 @@ struct scsi_host_template {
> /*
> * Name of proc directory
> */
> - char *proc_name;
> + const char *proc_name;
>
> /*
> * Used to store the procfs directory if a driver implements the
This has to go via James B and LSML.
--
Stefan Richter
-=====-=-=== -=-= -=-=-
http://arcgraph.de/sr/
[-- Attachment #2: Make-scsi_host_template-proc_name-const-char-instead-of-char.patch --]
[-- Type: text/plain, Size: 1167 bytes --]
From: =?utf-8?q?Kristian_H=C3=B8gsberg?= <krh@redhat.com>
Subject: [PATCH 6/9] Make scsi_host_template::proc_name const char * instead of char *.
Date: Wed, 9 May 2007 19:23:12 -0400
Signed-off-by: Kristian Hoegsberg <krh@redhat.com>
---
drivers/scsi/scsi_debug.c | 2 +-
include/scsi/scsi_host.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 3e2930b..843f9c1 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -2876,7 +2876,7 @@ static int __init scsi_debug_init(void)
init_all_queued();
- sdebug_driver_template.proc_name = (char *)sdebug_proc_name;
+ sdebug_driver_template.proc_name = sdebug_proc_name;
host_to_add = scsi_debug_add_host;
scsi_debug_add_host = 0;
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
index 7f1f411..0dfb5c2 100644
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -343,7 +343,7 @@ struct scsi_host_template {
/*
* Name of proc directory
*/
- char *proc_name;
+ const char *proc_name;
/*
* Used to store the procfs directory if a driver implements the
[-- Attachment #3: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #4: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.)
2007-05-10 10:38 ` use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.) Stefan Richter
@ 2007-05-10 11:44 ` Christoph Hellwig
2007-05-10 13:09 ` Stefan Richter
2007-05-10 13:08 ` Kristian Høgsberg
1 sibling, 1 reply; 5+ messages in thread
From: Christoph Hellwig @ 2007-05-10 11:44 UTC (permalink / raw)
To: Stefan Richter; +Cc: Kristian H?gsberg, linux1394-devel, linux-scsi
On Thu, May 10, 2007 at 12:38:31PM +0200, Stefan Richter wrote:
> > fw_memcpy_to_be32(&orb->request, &orb->request, sizeof orb->request);
> >
>
> Would a BUG_ON(cmd->use_sg == 0); be in order?
I don't think we should put this into every driver. If you want to
be sure this doesn't happen anymore put it just in front of the queuecommand
call.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.)
2007-05-10 10:38 ` use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.) Stefan Richter
2007-05-10 11:44 ` Christoph Hellwig
@ 2007-05-10 13:08 ` Kristian Høgsberg
1 sibling, 0 replies; 5+ messages in thread
From: Kristian Høgsberg @ 2007-05-10 13:08 UTC (permalink / raw)
To: Stefan Richter; +Cc: linux1394-devel, linux-scsi
Stefan Richter wrote:
> Kristian Høgsberg wrote:
>> The SCSI layer only passes sg requests down, so drop the
>> use_sg == 0, request_bufflen != 0 case.
>>
>> Signed-off-by: Kristian Hoegsberg <krh@redhat.com>
>> ---
>> drivers/firewire/fw-sbp2.c | 43 +------------------------------------------
>> 1 files changed, 1 insertions(+), 42 deletions(-)
>
> [...]
>
>> @@ -1063,21 +1035,8 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
>> orb->request.misc |=
>> COMMAND_ORB_DIRECTION(SBP2_DIRECTION_TO_MEDIA);
>>
>> - if (cmd->use_sg) {
>> - if (sbp2_command_orb_map_scatterlist(orb) < 0)
>> - goto fail_map_payload;
>> - } else if (cmd->request_bufflen > SBP2_MAX_SG_ELEMENT_LENGTH) {
>> - /*
>> - * FIXME: Need to split this into a sg list... but
>> - * could we get the scsi or blk layer to do that by
>> - * reporting our max supported block size?
>> - */
>> - fw_error("command > 64k\n");
>> + if (cmd->use_sg && sbp2_command_orb_map_scatterlist(orb) < 0)
>> goto fail_map_payload;
>> - } else if (cmd->request_bufflen > 0) {
>> - if (sbp2_command_orb_map_buffer(orb) < 0)
>> - goto fail_map_payload;
>> - }
>>
>> fw_memcpy_to_be32(&orb->request, &orb->request, sizeof orb->request);
>>
>
> Would a BUG_ON(cmd->use_sg == 0); be in order?
That's a good idea, though it needs to be
BUG_ON(cmd->usg_sg == 0 && cmd->request_bufflen > 0);
since commands with no payload have use_sg == 0 and request_bufflen == 0.
Kristian
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.)
2007-05-10 11:44 ` Christoph Hellwig
@ 2007-05-10 13:09 ` Stefan Richter
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Richter @ 2007-05-10 13:09 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Kristian H?gsberg, linux1394-devel, linux-scsi
Christoph Hellwig wrote:
> On Thu, May 10, 2007 at 12:38:31PM +0200, Stefan Richter wrote:
>> Would a BUG_ON(cmd->use_sg == 0); be in order?
>
> I don't think we should put this into every driver. If you want to
> be sure this doesn't happen anymore put it just in front of the queuecommand
> call.
Thanks for the pointer. I'm just noticing that Jens Axboe has a patch
which puts BUG_ON(!cmd->use_sg); into scsi_lib.c's sg table allocation
path. (The "Chaining sg lists for bio IO commands v3" patchset from a
few hours ago, part 11/13 "SCSI: support for allocating large
scatterlists".)
--
Stefan Richter
-=====-=-=== -=-= -=-=-
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-05-10 15:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <11787529952207-git-send-email-krh@redhat.com>
[not found] ` <11787530023454-git-send-email-krh@redhat.com>
[not found] ` <11787530031570-git-send-email-krh@redhat.com>
[not found] ` <11787530031450-git-send-email-krh@redhat.com>
[not found] ` <11787530043878-git-send-email-krh@redhat.com>
2007-05-10 10:38 ` use_sg != 0 assumption (was Re: [PATCH 5/9] Drop single buffer request support.) Stefan Richter
2007-05-10 11:44 ` Christoph Hellwig
2007-05-10 13:09 ` Stefan Richter
2007-05-10 13:08 ` Kristian Høgsberg
[not found] ` <11787530054176-git-send-email-krh@redhat.com>
2007-05-10 10:44 ` [PATCH 6/9] Make scsi_host_template::proc_name const char * instead of char * Stefan Richter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.