Re: DVD/CD lost after r246713

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Fri, 22 Feb 2013 22:34:15 +0200
On Fri, Feb 22, 2013 at 10:59:11AM -0600, Nathan Whitehorn wrote:
> On 02/22/13 06:08, Claude Buisson wrote:
> > On 02/22/2013 09:21, Konstantin Belousov wrote:
> >
> > <skipped>
> >
> >> You need to provide the dmesg from r246713 and r246712 to compare.
> >> The note that r246711 snapshot exhibited this same problem makes
> >> me sceptical.
> >
> > Here are the verbose dmesg from r246712 and r246713;
> >
> > For the sceptical:
> >
> > root_at_fidel# cd /usr/src
> > root_at_fidel# grep "\$FreeBSD\:" sys/conf/files
> > # $FreeBSD: head/sys/conf/files 246586 2013-02-09 06:39:28Z delphij $
> > root_at_fidel# grep "\$FreeBSD\:" sys/ia64/ia64/dump_machdep.c
> > __FBSDID("$FreeBSD: head/sys/ia64/ia64/dump_machdep.c 246712 2013-02-12
> > 16:51:43Z marcel $");
> >
> > for r246712
> >
> > root_at_fidel# cd /usr/src
> > root_at_fidel# grep "\$FreeBSD\:" sys/conf/files
> > # $FreeBSD: head/sys/conf/files 246713 2013-02-12 16:57:20Z kib $
> > root_at_fidel# grep "\$FreeBSD\:" sys/ia64/include/proc.h
> >  * $FreeBSD: head/sys/ia64/include/proc.h 226112 2011-10-07 16:09:44Z 
> > kib $
> >
> > for r246713
> >
> > The source is from svn0.us-east.freebsd.org
> >
> > And obj/ has been rm'ed before each buildkernel
> >
> > My own conclusion is that the rev number in:
> >
> > FreeBSD-10.0-HEAD-r246711-JPSNAP-i386-i386-memstick.img
> >
> > is bogus, and this can be easily checked by grepping for 
> > kern/subr_bus_dma.c in
> > the BUILD.log as this file has been ADDED by r246713
> >
> > CBu (working on this since Tuesday)
> 
> For whatever it is worth, I have experienced the identical problem on an 
> amd64 system.

I see.
Could please, one of you try the following, which just a revert of
the r246713 for dev/ata ? I believe/hope that this should fix the
issue. Apply in the sys/dev/ata directory.

Index: ata-dma.c
===================================================================
--- ata-dma.c	(revision 246713)
+++ ata-dma.c	(revision 246712)
_at__at_ -304,17 +304,10 _at__at_ ata_dmaload(struct ata_request *request, void *add
     else
 	dspa.dmatab = request->dma->sg;
 
-#ifdef ATA_CAM
-    if (request->ccb)
-        error = bus_dmamap_load_ccb(request->dma->data_tag,
-				request->dma->data_map, request->ccb,
-				ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);
-    else
-#endif
-        error = bus_dmamap_load(request->dma->data_tag, request->dma->data_map,
-				request->data, request->bytecount,
-				ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);
-    if (error || (error = dspa.error)) {
+    if ((error = bus_dmamap_load(request->dma->data_tag, request->dma->data_map,
+				 request->data, request->bytecount,
+				 ch->dma.setprd, &dspa, BUS_DMA_NOWAIT)) ||
+				 (error = dspa.error)) {
 	device_printf(request->parent, "FAILURE - load data\n");
 	goto error;
     }
Index: atapi-cam.c
===================================================================
--- atapi-cam.c	(revision 246713)
+++ atapi-cam.c	(revision 246712)
_at__at_ -514,6 +514,12 _at__at_ atapi_action(struct cam_sim *sim, union ccb *ccb)
 		("CAM CCB too long for ATAPI"));
 	    goto action_invalid;
 	}
+	if ((ccb_h->flags & CAM_SCATTER_VALID)) {
+	    /* scatter-gather not supported */
+	    xpt_print_path(ccb_h->path);
+	    printf("ATAPI/CAM does not support scatter-gather yet!\n");
+	    goto action_invalid;
+	}
 
 	switch (ccb_h->flags & CAM_DIR_MASK) {
 	case CAM_DIR_IN:

Received on Fri Feb 22 2013 - 19:34:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:35 UTC