From: matthieu castet <castet.matthieu@free.fr>
To: Matthew Dharm <mdharm-kernel@one-eyed-alien.net>,
linux-usb@vger.kernel.org,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB
Date: Sun, 09 Mar 2008 09:21:40 +0100 [thread overview]
Message-ID: <47D39E14.9050900@free.fr> (raw)
In-Reply-To: <20080308212148.GC2820@one-eyed-alien.net>
Matthew Dharm wrote:
> On Sat, Mar 08, 2008 at 09:08:26PM +0100, matthieu castet wrote:
>> Hi Matthew,
>>
>> thanks for your comments
>>
>> Matthew Dharm wrote:
>>> Why are you using an initializer instead of a new protocol code?
>> Because using a new protocol code means I need to patch all the place
>> where there is a comparison between us->subclass and US_SC_SCSI.
>> After all I am US_SC_SCSI with a special case for ATA12 & ATA16 commands.
>> I don't translate all scsi to atacb (that's what does US_SC_ISD200).
>
> Yet, you call invoke_transport directly, just like any other protocol
> handler.
>
> The proper way to do this is as a separate protocol handler. If you want
> to make it clear that you are only intercepting a couple of command types,
> then don't call invoke_transport() directly, call the transparent scsi
> protocol handler (which, of course, does the same thing but provides
> clearer layering).
>
> Oh, and you should add some "unlikely" tags to these if() conditionals.
Hum, may be to avoid confusion with a new protocol handler, I can add my
hook in usb_stor_control_thread with a new flag.
Something like :
[...]
/* Handle those devices which need us to fake
* their inquiry data */
else if ((us->srb->cmnd[0] == INQUIRY) &&
(us->flags & US_FL_FIX_INQUIRY)) {
[...]
else if (( (us->srb->cmnd[0] == ATA_12) || (us->srb->cmnd[0] == ATA_16)) &&
(us->flags & US_FL_CYPRESS_ATACB)) {
US_DEBUGP("emulating ATA pass thru\n");
call to emulate_pass_thru_with_atacb code
}
/* we've got a command, let's do it! */
else {
US_DEBUG(usb_stor_show_command(us->srb));
us->proto_handler(us->srb, us);
}
Does it sound better ?
Matthieu
next prev parent reply other threads:[~2008-03-09 8:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-08 17:32 [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB matthieu castet
2008-03-08 18:31 ` Matthew Dharm
2008-03-08 20:08 ` matthieu castet
2008-03-08 21:21 ` Matthew Dharm
2008-03-09 8:21 ` matthieu castet [this message]
2008-03-09 18:45 ` Matthew Dharm
2008-03-09 21:42 ` matthieu castet
2008-03-10 1:20 ` Matthew Dharm
2008-03-13 21:22 ` matthieu castet
2008-03-14 0:51 ` Matthew Dharm
[not found] ` <20080318221207.GY2820@one-eyed-alien.net>
2008-03-19 18:40 ` matthieu castet
2008-03-19 20:02 ` Matthew Dharm
2008-03-20 21:39 ` patch usb-mass-storage-emulation-of-sat-scsi_pass_thru-with-atacb.patch added to gregkh-2.6 tree gregkh
2008-03-09 10:13 ` [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB Alan Cox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47D39E14.9050900@free.fr \
--to=castet.matthieu@free.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mdharm-kernel@one-eyed-alien.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.