$NetBSD: patch-aj,v 1.2 2007/03/16 22:04:54 bad Exp $

--- cdrecord/scsi_cdr.c.orig	2006-09-26 14:24:55.000000000 +0200
+++ cdrecord/scsi_cdr.c
@@ -312,7 +312,11 @@ request_sense(scgp)
 		char	sensebuf[CCS_SENSE_LEN];
 	register struct	scg_cmd	*scmd = scgp->scmd;
 
-
+#ifdef __NetBSD__
+	/* request sense already done by kernel */
+	scg_prsense((Uchar *)scgp->scmd->u_sense.cmd_sense,
+	   scgp->scmd->sense_count);
+#else
 	fillbytes((caddr_t)scmd, sizeof (*scmd), '\0');
 	scmd->addr = sensebuf;
 	scmd->size = sizeof (sensebuf);
@@ -328,6 +332,7 @@ request_sense(scgp)
 	if (scg_cmd(scgp) < 0)
 		return (-1);
 	scg_prsense((Uchar *)sensebuf, CCS_SENSE_LEN - scg_getresid(scgp));
+#endif
 	return (0);
 }
 
@@ -339,7 +344,11 @@ request_sense_b(scgp, bp, cnt)
 {
 	register struct	scg_cmd	*scmd = scgp->scmd;
 
-
+#ifdef __NetBSD__
+	/* request sense already done by kernel */
+	memcpy(bp, scgp->scmd->u_sense.cmd_sense,
+	   (scgp->scmd->sense_count < cnt ? scgp->scmd->sense_count : cnt));
+#else
 	fillbytes((caddr_t)scmd, sizeof (*scmd), '\0');
 	scmd->addr = bp;
 	scmd->size = cnt;
@@ -354,6 +363,7 @@ request_sense_b(scgp, bp, cnt)
 
 	if (scg_cmd(scgp) < 0)
 		return (-1);
+#endif
 	return (0);
 }
 
