public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Thomas Voegtle <thomas@voegtle-clan.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: no atapi cdrecord burning with 2.6.0-test11-bk10 / bk13
Date: Wed, 17 Dec 2003 17:48:32 +0100	[thread overview]
Message-ID: <20031217164832.GA2495@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.21.0312171604390.32339-100000@needs-no.brain.uni-freiburg.de>

On Wed, Dec 17 2003, Thomas Voegtle wrote:
> 
> Hello,
>   
> cdrecord -dev=ATAPI -scanbus  with 2.6.0-test11-bk10 and bk13 shows this:
>   
> scsibus0:
>         0,0,0     0) '' '' '' NON CCS Disk
>         0,1,0     1) '' '' '' NON CCS Disk
> 
>   
> but this works well with 2.6.0-test11.
> =>
>   
>         0,0,0     0) 'CREATIVE' ' CD5233E        ' '2.05' Removable CD-ROM
>         0,1,0     1) 'PLEXTOR ' 'CD-R   PX-W1610A' '1.04' Removable CD-ROM
>   
> SuSE 9.0

Apply this to test11-bkLATEST

===== drivers/block/scsi_ioctl.c 1.38 vs edited =====
--- 1.38/drivers/block/scsi_ioctl.c	Thu Dec 11 18:55:17 2003
+++ edited/drivers/block/scsi_ioctl.c	Wed Dec 17 13:49:40 2003
@@ -150,13 +150,10 @@
 	struct request *rq;
 	struct bio *bio;
 	char sense[SCSI_SENSE_BUFFERSIZE];
-	unsigned char cdb[BLK_MAX_CDB];
 	void *buffer;
 
 	if (hdr->interface_id != 'S')
 		return -EINVAL;
-	if (hdr->cmd_len > sizeof(rq->cmd))
-		return -EINVAL;
 
 	/*
 	 * we'll do that later
@@ -167,9 +164,6 @@
 	if (hdr->dxfer_len > (q->max_sectors << 9))
 		return -EIO;
 
-	if (copy_from_user(cdb, hdr->cmdp, hdr->cmd_len))
-		return -EFAULT;
-
 	reading = writing = 0;
 	buffer = NULL;
 	bio = NULL;
@@ -220,7 +214,7 @@
 	 * fill in request structure
 	 */
 	rq->cmd_len = hdr->cmd_len;
-	memcpy(rq->cmd, cdb, hdr->cmd_len);
+	memcpy(rq->cmd, hdr->cmdp, hdr->cmd_len);
 	if (sizeof(rq->cmd) != hdr->cmd_len)
 		memset(rq->cmd + hdr->cmd_len, 0, sizeof(rq->cmd) - hdr->cmd_len);
 
@@ -436,12 +430,23 @@
 			break;
 		case SG_IO: {
 			struct sg_io_hdr hdr;
+			unsigned char cdb[BLK_MAX_CDB], *old_cdb;
 
-			if (copy_from_user(&hdr, (struct sg_io_hdr *) arg, sizeof(hdr))) {
-				err = -EFAULT;
+			err = -EFAULT;
+			if (copy_from_user(&hdr, (struct sg_io_hdr *) arg, sizeof(hdr)))
 				break;
-			}
+			err = -EINVAL;
+			if (hdr.cmd_len > sizeof(rq->cmd))
+				break;
+			err = -EFAULT;
+			if (copy_from_user(cdb, hdr.cmdp, hdr.cmd_len))
+				break;
+
+			old_cdb = hdr.cmdp;
+			hdr.cmdp = cdb;
 			err = sg_io(q, bdev, &hdr);
+
+			hdr.cmdp = old_cdb;
 			if (copy_to_user((struct sg_io_hdr *) arg, &hdr, sizeof(hdr)))
 				err = -EFAULT;
 			break;

-- 
Jens Axboe


  parent reply	other threads:[~2003-12-17 16:48 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-17 15:09 no atapi cdrecord burning with 2.6.0-test11-bk10 / bk13 Thomas Voegtle
2003-12-17 15:20 ` Måns Rullgård
2003-12-17 16:08   ` Thomas Voegtle
2003-12-17 17:23   ` Martin Schlemmer
2003-12-17 16:19 ` Gene Heskett
2003-12-17 16:25   ` Thomas Voegtle
2003-12-17 16:41     ` Gene Heskett
2003-12-17 16:49       ` Jens Axboe
2003-12-17 17:27         ` Gene Heskett
2003-12-17 18:33           ` Jens Axboe
2003-12-17 21:47           ` bill davidsen
2003-12-17 16:30 ` bill davidsen
2003-12-17 16:48 ` Jens Axboe [this message]
2003-12-17 17:35   ` Thomas Voegtle
2003-12-17 18:11     ` Martin Schlemmer
2003-12-17 18:32     ` 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=20031217164832.GA2495@suse.de \
    --to=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thomas@voegtle-clan.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox