smartmontools panics 9.1-RELEASE on sunfire 240

Kurt Lidl lidl at pix.net
Sat Jan 5 01:32:26 UTC 2013


On Sat, Jan 05, 2013 at 12:53:36AM +0100, Marius Strobl wrote:
> Uhm, probably an userland buffer which isn't even 16-bit aligned.
> If that's the cause, the attached patch hopefully should at least
> prevent the panic. If it does, smartmontools still need to be fixed
> though.

You patch prevents the panic from happening.
When I try to start smartd now, it reports:

root at host-98: /usr/local/etc/rc.d/smartd onestart
Starting smartd.
smartd: cam_send_ccb: Invalid argument
/usr/local/etc/rc.d/smartd: WARNING: failed to start smartd

I had updated the kernel on the machine to 9-STABLE, and
verified that without this patch, the crash still happened with
a 9-STABLE kernel, in addition to 9.1-RELEASE kernel.

My kernel now identifies itself as:
FreeBSD 9.1-STABLE (GENERIC) #1 r245044:245048M: Fri Jan  4 20:19:50 EST 2013

-Kurt

> Index: cam_periph.c
> ===================================================================
> --- cam_periph.c	(revision 245046)
> +++ cam_periph.c	(working copy)
> @@ -744,6 +744,9 @@ cam_periph_mapmem(union ccb *ccb, struct cam_perip
>  		if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE)
>  			return(0);
>  
> +		if ((uintptr_t)ccb->ataio.data_ptr % sizeof(uint16_t) != 0)
> +			return (EINVAL);
> +
>  		data_ptrs[0] = &ccb->ataio.data_ptr;
>  		lengths[0] = ccb->ataio.dxfer_len;
>  		dirs[0] = ccb->ccb_h.flags & CAM_DIR_MASK;

> _______________________________________________
> freebsd-sparc64 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-sparc64
> To unsubscribe, send any mail to "freebsd-sparc64-unsubscribe at freebsd.org"



More information about the freebsd-sparc64 mailing list