Module Name: src
Committed By: christos
Date: Fri Nov 20 14:56:56 UTC 2015
Modified Files:
src/sys/dev/pci: if_ipw.c
Log Message:
use copyout instead of suword.
To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/pci/if_ipw.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/dev/pci/if_ipw.c
diff -u src/sys/dev/pci/if_ipw.c:1.58 src/sys/dev/pci/if_ipw.c:1.59
--- src/sys/dev/pci/if_ipw.c:1.58 Wed Jan 7 02:05:48 2015
+++ src/sys/dev/pci/if_ipw.c Fri Nov 20 09:56:56 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ipw.c,v 1.58 2015/01/07 07:05:48 ozaki-r Exp $ */
+/* $NetBSD: if_ipw.c,v 1.59 2015/11/20 14:56:56 christos Exp $ */
/* FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.15 2005/11/13 17:17:40 damien Exp */
/*-
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ipw.c,v 1.58 2015/01/07 07:05:48 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ipw.c,v 1.59 2015/11/20 14:56:56 christos Exp $");
/*-
* Intel(R) PRO/Wireless 2100 MiniPCI driver
@@ -1541,7 +1541,8 @@ ipw_watchdog(struct ifnet *ifp)
static int
ipw_get_table1(struct ipw_softc *sc, uint32_t *tbl)
{
- uint32_t addr, size, i;
+ uint32_t addr, size, data, i;
+ int error;
if (!(sc->flags & IPW_FLAG_FW_INITED))
return ENOTTY;
@@ -1549,13 +1550,14 @@ ipw_get_table1(struct ipw_softc *sc, uin
CSR_WRITE_4(sc, IPW_CSR_AUTOINC_ADDR, sc->table1_base);
size = CSR_READ_4(sc, IPW_CSR_AUTOINC_DATA);
- if (suword(tbl, size) != 0)
- return EFAULT;
+ if ((error = copyout(&size, tbl, sizeof(size))) != 0)
+ return error;
for (i = 1, ++tbl; i < size; i++, tbl++) {
addr = CSR_READ_4(sc, IPW_CSR_AUTOINC_DATA);
- if (suword(tbl, MEM_READ_4(sc, addr)) != 0)
- return EFAULT;
+ data = MEM_READ_4(sc, addr);
+ if ((error = copyout(&data, tbl, sizeof(data))) != 0)
+ return error;
}
return 0;
}
@@ -1563,23 +1565,20 @@ ipw_get_table1(struct ipw_softc *sc, uin
static int
ipw_get_radio(struct ipw_softc *sc, int *ret)
{
- uint32_t addr;
+ uint32_t addr, data;
if (!(sc->flags & IPW_FLAG_FW_INITED))
return ENOTTY;
addr = ipw_read_table1(sc, IPW_INFO_EEPROM_ADDRESS);
- if ((MEM_READ_4(sc, addr + 32) >> 24) & 1) {
- suword(ret, -1);
- return 0;
- }
-
- if (CSR_READ_4(sc, IPW_CSR_IO) & IPW_IO_RADIO_DISABLED)
- suword(ret, 0);
+ if ((MEM_READ_4(sc, addr + 32) >> 24) & 1)
+ data = -1;
+ else if (CSR_READ_4(sc, IPW_CSR_IO) & IPW_IO_RADIO_DISABLED)
+ data = 0;
else
- suword(ret, 1);
+ data = 1;
- return 0;
+ return copyout(&data, ret, sizeof(data));
}
static int