From: Jens Axboe <axboe@suse.de>
To: Pat LaVarre <p.lavarre@ieee.org>
Cc: dougg@torque.net, linux-scsi@vger.kernel.org
Subject: Re: sense visible despite ide-floppy in 2.6 maybe
Date: Wed, 9 Jun 2004 10:20:53 +0200 [thread overview]
Message-ID: <20040609082045.GT13836@suse.de> (raw)
In-Reply-To: <20040609080013.GS13836@suse.de>
On Wed, Jun 09 2004, Jens Axboe wrote:
> For data transfer, it's more tricky. Well actually, if you restrict
> yourself to non-bio backed request, then it becomes pretty trivial!
> ide-floppy expects a contig buffer, a bio is scattered by nature.
Since it handles REQ_CMD just fine (*), this should actually just work.
Pat, can you test if it does?
* Scattered handling if dma fails looks very fishy, should be audited.
===== drivers/ide/ide.c 1.149 vs edited =====
--- 1.149/drivers/ide/ide.c 2004-06-04 21:14:59 +02:00
+++ edited/drivers/ide/ide.c 2004-06-09 10:07:46 +02:00
@@ -153,6 +153,7 @@
#include <linux/cdrom.h>
#include <linux/seq_file.h>
#include <linux/device.h>
+#include <scsi/sg.h>
#include <asm/byteorder.h>
#include <asm/irq.h>
@@ -1605,6 +1606,7 @@
case CDROMEJECT:
case CDROMCLOSETRAY:
+ case SG_IO:
return scsi_cmd_ioctl(bdev->bd_disk, cmd, p);
case HDIO_GET_BUSSTATE:
===== drivers/ide/ide-floppy.c 1.39 vs edited =====
--- 1.39/drivers/ide/ide-floppy.c 2004-06-04 06:12:07 +02:00
+++ edited/drivers/ide/ide-floppy.c 2004-06-09 10:19:48 +02:00
@@ -1210,19 +1210,23 @@
set_bit(PC_DMA_RECOMMENDED, &pc->flags);
}
-static int
+static void
idefloppy_blockpc_cmd(idefloppy_floppy_t *floppy, idefloppy_pc_t *pc, struct request *rq)
{
- /*
- * just support eject for now, it would not be hard to make the
- * REQ_BLOCK_PC support fully-featured
- */
- if (rq->cmd[0] != IDEFLOPPY_START_STOP_CMD)
- return 1;
-
idefloppy_init_pc(pc);
+ pc->callback = &idefloppy_rw_callback;
memcpy(pc->c, rq->cmd, sizeof(pc->c));
- return 0;
+ pc->rq = rq;
+ pc->b_count = rq->data_len;
+ if (rq_data_dir(rq) == WRITE)
+ set_bit(PC_WRITING, &pc->flags);
+ pc->buffer = NULL;
+ /*
+ * possibly problematic, doesn't look like ide-floppy correctly
+ * handled scattered requests if dma fails...
+ */
+ pc->request_transfer = pc->buffer_size = rq->data_len;
+ set_bit(PC_DMA_RECOMMENDED, &pc->flags);
}
/*
@@ -1267,10 +1271,7 @@
pc = (idefloppy_pc_t *) rq->buffer;
} else if (rq->flags & REQ_BLOCK_PC) {
pc = idefloppy_next_pc_storage(drive);
- if (idefloppy_blockpc_cmd(floppy, pc, rq)) {
- idefloppy_do_end_request(drive, 0, 0);
- return ide_stopped;
- }
+ idefloppy_blockpc_cmd(floppy, pc, rq);
} else {
blk_dump_rq_flags(rq,
"ide-floppy: unsupported command in queue");
--
Jens Axboe
next prev parent reply other threads:[~2004-06-09 8:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-08 15:53 sense visible despite ide-floppy in 2.6 maybe Pat LaVarre
2004-06-09 8:00 ` Jens Axboe
2004-06-09 8:20 ` Jens Axboe [this message]
2004-06-09 16:22 ` Pat LaVarre
2004-06-09 17:37 ` Jens Axboe
2004-06-09 18:29 ` Pat LaVarre
2004-06-09 18:51 ` Pat LaVarre
2004-06-09 23:30 ` Pat LaVarre
2004-06-11 9:30 ` Jens Axboe
2004-06-11 9:38 ` Jens Axboe
2004-06-13 18:48 ` Pat LaVarre
2004-06-13 19:58 ` Jens Axboe
2004-06-11 9:24 ` Jens Axboe
2004-06-11 9:24 ` Jens Axboe
2004-06-11 0:23 ` Douglas Gilbert
2004-06-11 2:08 ` Willem Riede
2004-06-13 18:21 ` Pat LaVarre
2004-06-13 19:06 ` Pat LaVarre
2004-06-14 6:39 ` Douglas Gilbert
2004-06-13 20:00 ` Jens Axboe
2004-06-17 19:03 ` Pat LaVarre
2004-06-17 19:12 ` Jens Axboe
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=20040609082045.GT13836@suse.de \
--to=axboe@suse.de \
--cc=dougg@torque.net \
--cc=linux-scsi@vger.kernel.org \
--cc=p.lavarre@ieee.org \
/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.