zero the i2c_attach_args structure before filling it in.

fixes occasional crashes in iic_attach().
This commit is contained in:
chs 2016-02-14 19:54:19 +00:00
parent cb63f3a3bd
commit 2f02870f3b
21 changed files with 61 additions and 42 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: iociic.c,v 1.9 2011/07/19 16:05:10 dyoung Exp $ */
/* $NetBSD: iociic.c,v 1.10 2016/02/14 19:54:19 chs Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@ -145,6 +145,7 @@ iociic_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_read_byte = iociic_read_byte;
sc->sc_i2c.ic_write_byte = iociic_write_byte;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(self, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,5 +1,5 @@
/* $Id: at91twi.c,v 1.6 2012/10/27 17:17:36 chs Exp $ */
/* $NetBSD: at91twi.c,v 1.6 2012/10/27 17:17:36 chs Exp $ */
/* $Id: at91twi.c,v 1.7 2016/02/14 19:54:20 chs Exp $ */
/* $NetBSD: at91twi.c,v 1.7 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2007 Embedtronics Oy. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: at91twi.c,v 1.6 2012/10/27 17:17:36 chs Exp $");
__KERNEL_RCSID(0, "$NetBSD: at91twi.c,v 1.7 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -134,6 +134,7 @@ found_ckdiv:
sc->sc_i2c.ic_write_byte = NULL;
sc->sc_i2c.ic_exec = at91twi_i2c_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: iomdiic.c,v 1.7 2012/05/14 10:38:08 skrll Exp $ */
/* $NetBSD: iomdiic.c,v 1.8 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@ -147,6 +147,7 @@ iomdiic_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_read_byte = iomdiic_read_byte;
sc->sc_i2c.ic_write_byte = iomdiic_write_byte;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: tegra_i2c.c,v 1.12 2015/12/22 22:12:08 jmcneill Exp $ */
/* $NetBSD: tegra_i2c.c,v 1.13 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <jmcneill@invisible.ca>
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.12 2015/12/22 22:12:08 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.13 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@ -191,6 +191,7 @@ tegra_i2c_attach(device_t parent, device_t self, void *aux)
of_enter_i2c_devs(devs, faa->faa_phandle, address_cells * 4, 0);
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_ic;
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
if (iba.iba_child_devices != NULL) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: rockchip_i2c.c,v 1.6 2015/01/11 14:59:13 jmcneill Exp $ */
/* $NetBSD: rockchip_i2c.c,v 1.7 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2014 Jared D. McNeill <jmcneill@invisible.ca>
@ -30,7 +30,7 @@
#include "opt_rkiic.h"
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: rockchip_i2c.c,v 1.6 2015/01/11 14:59:13 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: rockchip_i2c.c,v 1.7 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@ -142,9 +142,9 @@ rkiic_attach(device_t parent, device_t self, void *aux)
sc->sc_ic.ic_release_bus = rkiic_release_bus;
sc->sc_ic.ic_exec = rkiic_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_ic;
sc->sc_i2cdev = config_found_ia(self, "i2cbus",
&iba, iicbus_print);
sc->sc_i2cdev = config_found_ia(self, "i2cbus", &iba, iicbus_print);
}
static int

View File

@ -1,4 +1,4 @@
/* $NetBSD: exynos_i2c.c,v 1.10 2016/01/01 22:37:07 marty Exp $ */
/* $NetBSD: exynos_i2c.c,v 1.11 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2015 Jared D. McNeill <jmcneill@invisible.ca>
@ -31,7 +31,7 @@
#include "opt_arm_debug.h"
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: exynos_i2c.c,v 1.10 2016/01/01 22:37:07 marty Exp $");
__KERNEL_RCSID(0, "$NetBSD: exynos_i2c.c,v 1.11 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@ -187,8 +187,8 @@ exynos_i2c_attach(device_t parent, device_t self, void *aux)
sc->sc_ic.ic_read_byte = exynos_i2c_read_byte;
sc->sc_ic.ic_write_byte = exynos_i2c_write_byte;
memset(&iba, 0, sizeof(iba));
sc->sc_i2cdev = config_found_ia(self, "i2cbus", &iba, iicbus_print);
}
static i2c_tag_t

View File

@ -1,4 +1,4 @@
/* $NetBSD: iopi2c.c,v 1.7 2012/01/10 18:55:37 jakllsch Exp $ */
/* $NetBSD: iopi2c.c,v 1.8 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: iopi2c.c,v 1.7 2012/01/10 18:55:37 jakllsch Exp $");
__KERNEL_RCSID(0, "$NetBSD: iopi2c.c,v 1.8 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/mutex.h>
@ -79,6 +79,7 @@ iopiic_attach(struct iopiic_softc *sc)
sc->sc_i2c.ic_read_byte = iopiic_read_byte;
sc->sc_i2c.ic_write_byte = iopiic_write_byte;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: armadillo9_iic.c,v 1.7 2012/10/27 17:17:46 chs Exp $ */
/* $NetBSD: armadillo9_iic.c,v 1.8 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2005 HAMAJIMA Katsuomi. All rights reserved.
@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: armadillo9_iic.c,v 1.7 2012/10/27 17:17:46 chs Exp $");
__KERNEL_RCSID(0, "$NetBSD: armadillo9_iic.c,v 1.8 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -115,6 +115,7 @@ armadillo9iic_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_read_byte = armadillo9iic_read_byte;
sc->sc_i2c.ic_write_byte = armadillo9iic_write_byte;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
epgpio_in(sc->sc_gpio, sc->sc_port, sc->sc_sda);

View File

@ -1,4 +1,4 @@
/* $NetBSD: gxiic.c,v 1.7 2011/06/21 11:38:03 kiyohara Exp $ */
/* $NetBSD: gxiic.c,v 1.8 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2007 KIYOHARA Takashi
* All rights reserved.
@ -25,7 +25,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: gxiic.c,v 1.7 2011/06/21 11:38:03 kiyohara Exp $");
__KERNEL_RCSID(0, "$NetBSD: gxiic.c,v 1.8 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -109,6 +109,7 @@ gxiicattach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_write_byte = NULL;
sc->sc_i2c.ic_exec = gxiic_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
pxa2x0_i2c_open(&sc->sc_pxa_i2c);
config_found_ia(sc->sc_pxa_i2c.sc_dev, "i2cbus", &iba, iicbus_print);

View File

@ -1,4 +1,4 @@
/* $NetBSD: nslu2_iic.c,v 1.8 2012/10/14 14:20:58 msaitoh Exp $ */
/* $NetBSD: nslu2_iic.c,v 1.9 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@ -210,6 +210,7 @@ slugiic_deferred_attach(device_t self)
reg |= GPIO_I2C_SDA_BIT;
GPIO_CONF_WRITE_4(ixp425_softc, IXP425_GPIO_GPOER, reg);
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_ic;
(void) config_found_ia(self, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: nbpiic.c,v 1.1 2011/08/06 03:53:40 kiyohara Exp $ */
/* $NetBSD: nbpiic.c,v 1.2 2016/02/14 19:54:20 chs Exp $ */
/*
* Copyright (c) 2011 KIYOHARA Takashi
* All rights reserved.
@ -25,7 +25,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: nbpiic.c,v 1.1 2011/08/06 03:53:40 kiyohara Exp $");
__KERNEL_RCSID(0, "$NetBSD: nbpiic.c,v 1.2 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -130,6 +130,7 @@ pxaiic_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_write_byte = NULL;
sc->sc_i2c.ic_exec = nbpiic_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
pxa2x0_i2c_open(&sc->sc_pxa_i2c);
config_found_ia(self, "i2cbus", &iba, iicbus_print);

View File

@ -1,4 +1,4 @@
/* $NetBSD: viapcib.c,v 1.14 2011/07/05 07:08:17 mrg Exp $ */
/* $NetBSD: viapcib.c,v 1.15 2016/02/14 19:54:20 chs Exp $ */
/* $FreeBSD: src/sys/pci/viapm.c,v 1.10 2005/05/29 04:42:29 nyan Exp $ */
/*-
@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: viapcib.c,v 1.14 2011/07/05 07:08:17 mrg Exp $");
__KERNEL_RCSID(0, "$NetBSD: viapcib.c,v 1.15 2016/02/14 19:54:20 chs Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -215,6 +215,7 @@ core_pcib:
viapcib_smbus_write(sc, SMBSLVCNT, b & ~1);
memset(&sc->sc_i2c, 0, sizeof(sc->sc_i2c));
memset(&iba, 0, sizeof(iba));
#ifdef I2C_TYPE_SMBUS
iba.iba_type = I2C_TYPE_SMBUS;
#endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: cuda.c,v 1.20 2014/08/13 10:56:35 macallan Exp $ */
/* $NetBSD: cuda.c,v 1.21 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2006 Michael Lorenz
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cuda.c,v 1.20 2014/08/13 10:56:35 macallan Exp $");
__KERNEL_RCSID(0, "$NetBSD: cuda.c,v 1.21 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -251,6 +251,7 @@ cuda_attach(device_t parent, device_t self, void *aux)
config_found(self, &caa, cuda_print);
#endif
mutex_init(&sc->sc_buslock, MUTEX_DEFAULT, IPL_NONE);
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
sc->sc_i2c.ic_cookie = sc;
sc->sc_i2c.ic_acquire_bus = cuda_i2c_acquire_bus;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ki2c.c,v 1.18 2011/07/26 08:36:02 macallan Exp $ */
/* $NetBSD: ki2c.c,v 1.19 2016/02/14 19:54:20 chs Exp $ */
/* Id: ki2c.c,v 1.7 2002/10/05 09:56:05 tsubai Exp */
/*-
@ -125,6 +125,7 @@ ki2c_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_write_byte = NULL;
sc->sc_i2c.ic_exec = ki2c_i2c_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pmu.c,v 1.23 2014/03/14 21:59:41 mrg Exp $ */
/* $NetBSD: pmu.c,v 1.24 2016/02/14 19:54:20 chs Exp $ */
/*-
* Copyright (c) 2006 Michael Lorenz
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pmu.c,v 1.23 2014/03/14 21:59:41 mrg Exp $");
__KERNEL_RCSID(0, "$NetBSD: pmu.c,v 1.24 2016/02/14 19:54:20 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -385,6 +385,7 @@ next:
bat_done:
#if notyet
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
sc->sc_i2c.ic_cookie = sc;
sc->sc_i2c.ic_acquire_bus = pmu_i2c_acquire_bus;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ausmbus_psc.c,v 1.11 2012/01/03 07:36:02 kiyohara Exp $ */
/* $NetBSD: ausmbus_psc.c,v 1.12 2016/02/14 19:54:21 chs Exp $ */
/*-
* Copyright (c) 2006 Shigeyuki Fukushima.
@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ausmbus_psc.c,v 1.11 2012/01/03 07:36:02 kiyohara Exp $");
__KERNEL_RCSID(0, "$NetBSD: ausmbus_psc.c,v 1.12 2016/02/14 19:54:21 chs Exp $");
#include "locators.h"
@ -137,6 +137,7 @@ ausmbus_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_exec = ausmbus_exec;
sc->sc_smbus_timeout = 10;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(self, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: ziic.c,v 1.2 2011/06/23 10:56:03 nonaka Exp $ */
/* $NetBSD: ziic.c,v 1.3 2016/02/14 19:54:21 chs Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ziic.c,v 1.2 2011/06/23 10:56:03 nonaka Exp $");
__KERNEL_RCSID(0, "$NetBSD: ziic.c,v 1.3 2016/02/14 19:54:21 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -128,6 +128,7 @@ pxaiic_attach(device_t parent, device_t self, void *aux)
sc->sc_i2c.ic_write_byte = pxaiic_write_byte;
sc->sc_i2c.ic_exec = NULL;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void)config_found_ia(psc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: pca9564.c,v 1.1 2010/04/09 10:09:50 nonaka Exp $ */
/* $NetBSD: pca9564.c,v 1.2 2016/02/14 19:54:21 chs Exp $ */
/*
* Copyright (c) 2010 NONAKA Kimihiro <nonaka@netbsd.org>
@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pca9564.c,v 1.1 2010/04/09 10:09:50 nonaka Exp $");
__KERNEL_RCSID(0, "$NetBSD: pca9564.c,v 1.2 2016/02/14 19:54:21 chs Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -113,6 +113,7 @@ pca9564_attach(struct pca9564_softc *sc)
break;
}
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: amdpm_smbus.c,v 1.21 2015/04/13 16:33:25 riastradh Exp $ */
/* $NetBSD: amdpm_smbus.c,v 1.22 2016/02/14 19:54:21 chs Exp $ */
/*
* Copyright (c) 2005 Anil Gopinath (anil_public@yahoo.com)
@ -32,7 +32,7 @@
* AMD-8111 HyperTransport I/O Hub
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: amdpm_smbus.c,v 1.21 2015/04/13 16:33:25 riastradh Exp $");
__KERNEL_RCSID(0, "$NetBSD: amdpm_smbus.c,v 1.22 2016/02/14 19:54:21 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -82,6 +82,7 @@ amdpm_smbus_attach(struct amdpm_softc *sc)
sc->sc_i2c.ic_write_byte = NULL;
sc->sc_i2c.ic_exec = amdpm_smbus_exec;
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_i2c;
(void)config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: igma.c,v 1.2 2014/07/13 01:02:20 mlelstv Exp $ */
/* $NetBSD: igma.c,v 1.3 2016/02/14 19:54:21 chs Exp $ */
/*
* Copyright (c) 2014 Michael van Elst
@ -21,7 +21,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: igma.c,v 1.2 2014/07/13 01:02:20 mlelstv Exp $");
__KERNEL_RCSID(0, "$NetBSD: igma.c,v 1.3 2016/02/14 19:54:21 chs Exp $");
#include "vga.h"
@ -470,6 +470,7 @@ igma_i2c_attach(struct igma_softc *sc)
ii->ii_i2c.ic_exec = NULL;
#if 0
memset(&iba, 0, sizeof(iba));
iba.iba_type = I2C_TYPE_SMBUS;
iba.iba_tag = &ii->ii_i2c;
config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);

View File

@ -1,4 +1,4 @@
/* $NetBSD: nfsmb.c,v 1.23 2012/02/14 15:08:07 pgoyette Exp $ */
/* $NetBSD: nfsmb.c,v 1.24 2016/02/14 19:54:21 chs Exp $ */
/*
* Copyright (c) 2007 KIYOHARA Takashi
* All rights reserved.
@ -26,7 +26,7 @@
*
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: nfsmb.c,v 1.23 2012/02/14 15:08:07 pgoyette Exp $");
__KERNEL_RCSID(0, "$NetBSD: nfsmb.c,v 1.24 2016/02/14 19:54:21 chs Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -245,6 +245,7 @@ nfsmb_attach(device_t parent, device_t self, void *aux)
return;
}
memset(&iba, 0, sizeof(iba));
iba.iba_type = I2C_TYPE_SMBUS;
iba.iba_tag = &sc->sc_i2c;
(void) config_found_ia(sc->sc_dev, "i2cbus", &iba, iicbus_print);