Module Name: src
Committed By: tsutsui
Date: Wed Oct 10 16:51:51 UTC 2012
Modified Files:
src/sys/arch/sparc/dev: fd.c
src/sys/arch/sparc/sparc: memecc.c
Log Message:
Fix device_t/softc split botches that could be fatal. From
Chuck Silvers' patch posted current-users and tech-kern:
http://mail-index.netbsd.org/current-users/2012/10/09/msg021233.html
Should be pulled up to netbsd-6.
To generate a diff of this commit:
cvs rdiff -u -r1.150 -r1.151 src/sys/arch/sparc/dev/fd.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/sparc/sparc/memecc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc/dev/fd.c
diff -u src/sys/arch/sparc/dev/fd.c:1.150 src/sys/arch/sparc/dev/fd.c:1.151
--- src/sys/arch/sparc/dev/fd.c:1.150 Sun Jul 17 23:18:23 2011
+++ src/sys/arch/sparc/dev/fd.c Wed Oct 10 16:51:50 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: fd.c,v 1.150 2011/07/17 23:18:23 mrg Exp $ */
+/* $NetBSD: fd.c,v 1.151 2012/10/10 16:51:50 tsutsui Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.150 2011/07/17 23:18:23 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.151 2012/10/10 16:51:50 tsutsui Exp $");
#include "opt_ddb.h"
#include "opt_md.h"
@@ -174,7 +174,7 @@ enum fdc_state {
/* software state, per controller */
struct fdc_softc {
- struct device *sc_dev;
+ device_t sc_dev;
bus_space_tag_t sc_bustag;
struct callout sc_timo_ch; /* timeout callout */
@@ -259,7 +259,7 @@ struct fd_type fd_types[] = {
/* software state, per disk (with up to 4 disks per ctlr) */
struct fd_softc {
- struct device *sc_dv; /* generic device info */
+ device_t sc_dv; /* generic device info */
struct disk sc_dk; /* generic disk info */
struct fd_type *sc_deftype; /* default type descriptor */
@@ -342,7 +342,7 @@ void fdcretry(struct fdc_softc *);
void fdfinish(struct fd_softc *, struct buf *);
int fdformat(dev_t, struct ne7_fd_formb *, struct proc *);
void fd_do_eject(struct fd_softc *);
-void fd_mountroot_hook(struct device *);
+void fd_mountroot_hook(device_t);
static int fdconf(struct fdc_softc *);
static void establish_chip_type(
struct fdc_softc *,
@@ -547,7 +547,7 @@ fdcattach_mainbus(device_t parent, devic
ma->ma_size,
BUS_SPACE_MAP_LINEAR,
&fdc->sc_handle) != 0) {
- printf("%s: cannot map registers\n", self->dv_xname);
+ printf("%s: cannot map registers\n", device_xname(self));
return;
}
@@ -580,7 +580,7 @@ fdcattach_obio(device_t parent, device_t
sa->sa_slot, sa->sa_offset, sa->sa_size,
BUS_SPACE_MAP_LINEAR, &fdc->sc_handle) != 0) {
printf("%s: cannot map control registers\n",
- self->dv_xname);
+ device_xname(self));
return;
}
@@ -890,7 +890,7 @@ fdstrategy(struct buf *bp)
fdstart(fd);
#ifdef DIAGNOSTIC
else {
- struct fdc_softc *fdc = (void *)device_parent(fd->sc_dv);
+ struct fdc_softc *fdc = device_private(device_parent(fd->sc_dv));
if (fdc->sc_state == DEVIDLE) {
printf("fdstrategy: controller inactive\n");
fdcstart(fdc);
@@ -1012,7 +1012,7 @@ fd_motor_off(void *arg)
s = splbio();
fd->sc_flags &= ~(FD_MOTOR | FD_MOTOR_WAIT);
- fd_set_motor((struct fdc_softc *)device_parent(fd->sc_dv));
+ fd_set_motor(device_private(device_parent(fd->sc_dv)));
splx(s);
}
@@ -2305,7 +2305,7 @@ fd_do_eject(struct fd_softc *fd)
/* ARGSUSED */
void
-fd_mountroot_hook(struct device *dev)
+fd_mountroot_hook(device_t dev)
{
int c;
Index: src/sys/arch/sparc/sparc/memecc.c
diff -u src/sys/arch/sparc/sparc/memecc.c:1.14 src/sys/arch/sparc/sparc/memecc.c:1.15
--- src/sys/arch/sparc/sparc/memecc.c:1.14 Sun Jul 29 00:04:05 2012
+++ src/sys/arch/sparc/sparc/memecc.c Wed Oct 10 16:51:51 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: memecc.c,v 1.14 2012/07/29 00:04:05 matt Exp $ */
+/* $NetBSD: memecc.c,v 1.15 2012/10/10 16:51:51 tsutsui Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: memecc.c,v 1.14 2012/07/29 00:04:05 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: memecc.c,v 1.15 2012/10/10 16:51:51 tsutsui Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -75,7 +75,7 @@ memecc_match(device_t parent, cfdata_t c
void
memecc_attach(device_t parent, device_t self, void *aux)
{
- struct memecc_softc *sc = (struct memecc_softc *)self;
+ struct memecc_softc *sc = device_private(self);
struct mainbus_attach_args *ma = aux;
int node;
uint32_t reg;