Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Feb 1998 03:49:15 -0600
From:      Chris Csanady <ccsanady@friley585.res.iastate.edu>
To:        Julian Elischer <julian@whistle.com>
Cc:        "Matthew N. Dodd" <winter@jurai.net>, current@FreeBSD.ORG
Subject:   CCD Fix (Was: Re: New SoftUpdates test kit)
Message-ID:  <199802220949.DAA00394@friley585.res.iastate.edu>
In-Reply-To: Your message of "Sat, 21 Feb 1998 22:33:56 PST." <Pine.BSF.3.95.980221223254.1238F-100000@current1.whistle.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

>I don;t know yet however kirk says that the symptom is exactly matching
>that he saw with bufs not being bzero'd when malloc'd. 
>I'm going to look at that next week.

Well, this seems to be it. :)  I remember seeing something like this while
browsing through the OpenBSD cvs tree, but the log message did not mention
that the change had such serious implications.

Anyways, with the following diff, soft updates should work with CCD's.
Or rather the other way around.. ;)

Chris

*** ccd.c	Sun Feb 15 05:13:27 1998
--- /sys/dev/ccd/ccd.c	Sun Feb 22 01:43:26 1998
***************
*** 885,890 ****
--- 885,891 ----
  	 * Fill in the component buf structure.
  	 */
  	cbp = getccdbuf();
+ 	bzero(cbp, sizeof (struct ccdbuf));
  	cbp->cb_buf.b_flags = bp->b_flags | B_CALL;
  	cbp->cb_buf.b_iodone = (void (*)(struct buf *))ccdiodone;
  	cbp->cb_buf.b_proc = bp->b_proc;
***************
*** 919,924 ****
--- 920,926 ----
  	    (cbp->cb_buf.b_flags & B_READ) == 0) {
  		/* mirror, start one more write */
  		cbp = getccdbuf();
+ 		bzero(cbp, sizeof (struct ccdbuf));
  		*cbp = *cb[0];
  		cbp->cb_buf.b_dev = ci2->ci_dev;
  		cbp->cb_buf.b_vp = ci2->ci_vp;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199802220949.DAA00394>