From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: petkovbb@gmail.com
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] ide-{cd,floppy}: do not map all cmds to an sg
Date: Thu, 12 Mar 2009 17:58:56 +0100 [thread overview]
Message-ID: <200903121758.56808.bzolnier@gmail.com> (raw)
In-Reply-To: <20090312071248.GA26881@liondog.tnic>
On Thursday 12 March 2009, Borislav Petkov wrote:
> On Wed, Mar 11, 2009 at 05:34:28PM +0100, Bartlomiej Zolnierkiewicz wrote:
> > On Tuesday 10 March 2009, Borislav Petkov wrote:
> > > Hi,
> > >
> > > > If the mainline is broken sg fix can wait but to be honest I don't see much
> > > > point in delaying it (it is an independent problem and the bugfix should be
> > > > a completely safe one-liner).
> > >
> > > --
> > > From: Borislav Petkov <petkovbb@gmail.com>
> > > Date: Tue, 10 Mar 2009 07:04:52 +0100
> > > Subject: [PATCH] ide-floppy: do not map dataless cmds to an sg
> > >
> > > since it fails the virt_to_page() translation check with DEBUG_VIRTUAL
> > > enabled.
> > >
> > > Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
> >
> > I applied it with some changes:
> >
> > > ---
> > > drivers/ide/ide-atapi.c | 12 ++++++++++++
> > > drivers/ide/ide-floppy.c | 6 ++++--
> > > 2 files changed, 16 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
> > > index a5596a6..11a680c 100644
> > > --- a/drivers/ide/ide-atapi.c
> > > +++ b/drivers/ide/ide-atapi.c
> > > @@ -90,6 +90,12 @@ static void ide_queue_pc_head(ide_drive_t *drive, struct gendisk *disk,
> > > rq->cmd_flags |= REQ_PREEMPT;
> > > rq->buffer = (char *)pc;
> > > rq->rq_disk = disk;
> > > +
> > > + if (pc->req_xfer) {
> > > + rq->data = pc->buf;
> > > + rq->data_len = pc->req_xfer;
> > > + }
> > > +
> > > memcpy(rq->cmd, pc->c, 12);
> > > if (drive->media == ide_tape)
> > > rq->cmd[13] = REQ_IDETAPE_PC1;
> > > @@ -112,6 +118,12 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk *disk,
> > > rq = blk_get_request(drive->queue, READ, __GFP_WAIT);
> > > rq->cmd_type = REQ_TYPE_SPECIAL;
> > > rq->buffer = (char *)pc;
> > > +
> > > + if (pc->req_xfer) {
> > > + rq->data = pc->buf;
> > > + rq->data_len = pc->req_xfer;
> > > + }
> > > +
> > > memcpy(rq->cmd, pc->c, 12);
> > > if (drive->media == ide_tape)
> > > rq->cmd[13] = REQ_IDETAPE_PC1;
> >
> > ide-atapi.c part doesn't seem to be needed for fixing the issue
> > so I removed it (IMO it would fit much better with your sg setup
> > cleanup patch than this one)
>
> No, you need that part. And especially the rq->data assignment.
> Take a look at ide_floppy_get_capacity() - it calls into
> ide_queue_pc_tail() with pc->req_xfer == 255 resulting from the
> ide_floppy_create_read_capacity_cmd(). However, the rq->data is still
> NULL if you'd remove the chunk I added and you get
[...]
Ah I see it now but this is a separate issue from the original one
(OOPS on DEBUG_VIRTUAL=y)! I somehow missed it (probably becasue
patch description fails to mention this important information)
and thus tried to be smart while merging the patch...
Anyway, I replaced the patch in pata tree by your original one.
Thanks,
Bart
next prev parent reply other threads:[~2009-03-12 16:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-04 9:16 [PATCH 0/3] some ide fixes Borislav Petkov
2009-03-04 9:16 ` Borislav Petkov
2009-03-04 9:16 ` [PATCH 1/3] ide-{floppy,tape}: fix padding for PIO transfers Borislav Petkov
2009-03-04 9:16 ` Borislav Petkov
2009-03-04 9:16 ` [PATCH 2/3] ide-floppy: use ide_pio_bytes() Borislav Petkov
2009-03-04 9:16 ` Borislav Petkov
2009-03-05 12:27 ` Bartlomiej Zolnierkiewicz
2009-03-04 9:16 ` [PATCH 3/3] ide-{cd,floppy}: do not map all cmds to an sg Borislav Petkov
2009-03-04 9:16 ` Borislav Petkov
2009-03-05 12:12 ` Bartlomiej Zolnierkiewicz
2009-03-05 13:53 ` Borislav Petkov
2009-03-05 14:49 ` Bartlomiej Zolnierkiewicz
2009-03-05 15:19 ` Borislav Petkov
2009-03-05 16:52 ` Bartlomiej Zolnierkiewicz
2009-03-05 17:58 ` Borislav Petkov
2009-03-08 7:53 ` Borislav Petkov
2009-03-08 17:08 ` Bartlomiej Zolnierkiewicz
2009-03-10 6:08 ` Borislav Petkov
2009-03-11 16:34 ` Bartlomiej Zolnierkiewicz
2009-03-12 7:12 ` Borislav Petkov
2009-03-12 16:58 ` Bartlomiej Zolnierkiewicz [this message]
2009-03-12 17:10 ` Borislav Petkov
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=200903121758.56808.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=petkovbb@gmail.com \
/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.