Module Name:    src
Committed By:   ozaki-r
Date:           Wed Jan  7 07:05:48 UTC 2015

Modified Files:
        src/sys/arch/x86/x86: cpu_ucode.c
        src/sys/arch/xen/xen: xen_ucode.c
        src/sys/dev/i2c: xc3028.c xc5k.c
        src/sys/dev/ic: bwi.c rt2661.c
        src/sys/dev/pci: if_ipw.c if_iwi.c if_iwivar.h
        src/sys/dev/usb: if_athn_usb.c if_rum.c if_urtwn.c if_zyd.c
        src/sys/kern: kern_cpu.c

Log Message:
Pass a correct firmware size (instead of 0) to firmware_free

firmware_free now uses kmem_free(9) instead of free(9),
so we need to pass a correct size to it.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x86/x86/cpu_ucode.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/xen/xen/xen_ucode.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/i2c/xc3028.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/i2c/xc5k.c
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/ic/bwi.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/ic/rt2661.c
cvs rdiff -u -r1.57 -r1.58 src/sys/dev/pci/if_ipw.c
cvs rdiff -u -r1.97 -r1.98 src/sys/dev/pci/if_iwi.c
cvs rdiff -u -r1.16 -r1.17 src/sys/dev/pci/if_iwivar.h
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/usb/if_athn_usb.c
cvs rdiff -u -r1.48 -r1.49 src/sys/dev/usb/if_rum.c
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/usb/if_urtwn.c
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/usb/if_zyd.c
cvs rdiff -u -r1.66 -r1.67 src/sys/kern/kern_cpu.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/x86/x86/cpu_ucode.c
diff -u src/sys/arch/x86/x86/cpu_ucode.c:1.4 src/sys/arch/x86/x86/cpu_ucode.c:1.5
--- src/sys/arch/x86/x86/cpu_ucode.c:1.4	Sat Jul  6 12:03:11 2013
+++ src/sys/arch/x86/x86/cpu_ucode.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_ucode.c,v 1.4 2013/07/06 12:03:11 gdt Exp $ */
+/* $NetBSD: cpu_ucode.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $ */
 /*
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.4 2013/07/06 12:03:11 gdt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include "opt_cpu_ucode.h"
 #include "opt_compat_netbsd.h"
@@ -116,7 +116,7 @@ cpu_ucode_apply(const struct cpu_ucode *
 	}
 
 	if (sc->sc_blob != NULL)
-		firmware_free(sc->sc_blob, 0);
+		firmware_free(sc->sc_blob, sc->sc_blobsize);
 	sc->sc_blob = NULL;
 	sc->sc_blobsize = 0;
 	return error;
@@ -140,7 +140,7 @@ compat6_cpu_ucode_apply(const struct com
 	error = cpu_ucode_amd_apply(sc, CPU_UCODE_ALL_CPUS);
 
 	if (sc->sc_blob != NULL)
-		firmware_free(sc->sc_blob, 0);
+		firmware_free(sc->sc_blob, sc->sc_blobsize);
 	sc->sc_blob = NULL;
 	sc->sc_blobsize = 0;
 	return error;

Index: src/sys/arch/xen/xen/xen_ucode.c
diff -u src/sys/arch/xen/xen/xen_ucode.c:1.4 src/sys/arch/xen/xen/xen_ucode.c:1.5
--- src/sys/arch/xen/xen/xen_ucode.c:1.4	Sat Jul  6 12:06:24 2013
+++ src/sys/arch/xen/xen/xen_ucode.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: xen_ucode.c,v 1.4 2013/07/06 12:06:24 gdt Exp $ */
+/* $NetBSD: xen_ucode.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $ */
 /*
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xen_ucode.c,v 1.4 2013/07/06 12:06:24 gdt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xen_ucode.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include "opt_cpu_ucode.h"
 #include "opt_compat_netbsd.h"
@@ -115,7 +115,7 @@ cpu_ucode_apply(const struct cpu_ucode *
 	error = -HYPERVISOR_platform_op(&op);
 
 	if (sc->sc_blob)
-		firmware_free(sc->sc_blob, 0);
+		firmware_free(sc->sc_blob, sc->sc_blobsize);
 	sc->sc_blob = NULL;
 	sc->sc_blobsize = 0;
 	return error;
@@ -141,7 +141,7 @@ compat6_cpu_ucode_apply(const struct com
 	error = -HYPERVISOR_platform_op(&op);
 
 	if (sc->sc_blob != NULL)
-		firmware_free(sc->sc_blob, 0);
+		firmware_free(sc->sc_blob, sc->sc_blobsize);
 	sc->sc_blob = NULL;
 	sc->sc_blobsize = 0;
 	return error;

Index: src/sys/dev/i2c/xc3028.c
diff -u src/sys/dev/i2c/xc3028.c:1.5 src/sys/dev/i2c/xc3028.c:1.6
--- src/sys/dev/i2c/xc3028.c:1.5	Sun Oct  2 19:03:56 2011
+++ src/sys/dev/i2c/xc3028.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: xc3028.c,v 1.5 2011/10/02 19:03:56 jmcneill Exp $ */
+/* $NetBSD: xc3028.c,v 1.6 2015/01/07 07:05:48 ozaki-r Exp $ */
 
 /*-
  * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xc3028.c,v 1.5 2011/10/02 19:03:56 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xc3028.c,v 1.6 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -219,7 +219,7 @@ xc3028_firmware_open(struct xc3028 *xc)
 
 done:
 	if (fw)
-		firmware_free(fw, 0);
+		firmware_free(fw, fwlen);
 	mutex_exit(&xc3028_firmware_lock);
 
 	if (error)

Index: src/sys/dev/i2c/xc5k.c
diff -u src/sys/dev/i2c/xc5k.c:1.4 src/sys/dev/i2c/xc5k.c:1.5
--- src/sys/dev/i2c/xc5k.c:1.4	Sun Oct  2 19:03:56 2011
+++ src/sys/dev/i2c/xc5k.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: xc5k.c,v 1.4 2011/10/02 19:03:56 jmcneill Exp $ */
+/* $NetBSD: xc5k.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $ */
 
 /*-
  * Copyright (c) 2010 Jared D. McNeill <jmcne...@invisible.ca>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xc5k.c,v 1.4 2011/10/02 19:03:56 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xc5k.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -174,7 +174,7 @@ xc5k_firmware_open(struct xc5k *xc)
 
 done:
 	if (fw)
-		firmware_free(fw, 0);
+		firmware_free(fw, fwlen);
 	mutex_exit(&xc5k_firmware_lock);
 
 	if (error)

Index: src/sys/dev/ic/bwi.c
diff -u src/sys/dev/ic/bwi.c:1.24 src/sys/dev/ic/bwi.c:1.25
--- src/sys/dev/ic/bwi.c:1.24	Tue Feb 25 18:30:09 2014
+++ src/sys/dev/ic/bwi.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: bwi.c,v 1.24 2014/02/25 18:30:09 pooka Exp $	*/
+/*	$NetBSD: bwi.c,v 1.25 2015/01/07 07:05:48 ozaki-r Exp $	*/
 /*	$OpenBSD: bwi.c,v 1.74 2008/02/25 21:13:30 mglocker Exp $	*/
 
 /*
@@ -48,7 +48,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.24 2014/02/25 18:30:09 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.25 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -1939,7 +1939,7 @@ invalid:
 	error = EINVAL;
 
 free_and_fail:
-	firmware_free(fwi->fwi_data, 0);
+	firmware_free(fwi->fwi_data, fwi->fwi_size);
 	fwi->fwi_data = NULL;
 	fwi->fwi_size = 0;
 
@@ -1953,7 +1953,7 @@ bwi_mac_fw_image_free(struct bwi_mac *ma
 	if (fwi->fwi_data != NULL) {
 		DPRINTF(mac->mac_sc, BWI_DBG_FIRMWARE, "freeing firmware %s\n",
 		    fwi->fwi_name);
-		firmware_free(fwi->fwi_data, 0);
+		firmware_free(fwi->fwi_data, fwi->fwi_size);
 		fwi->fwi_data = NULL;
 		fwi->fwi_size = 0;
 	}

Index: src/sys/dev/ic/rt2661.c
diff -u src/sys/dev/ic/rt2661.c:1.29 src/sys/dev/ic/rt2661.c:1.30
--- src/sys/dev/ic/rt2661.c:1.29	Sat Feb 18 13:38:36 2012
+++ src/sys/dev/ic/rt2661.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rt2661.c,v 1.29 2012/02/18 13:38:36 drochner Exp $	*/
+/*	$NetBSD: rt2661.c,v 1.30 2015/01/07 07:05:48 ozaki-r Exp $	*/
 /*	$OpenBSD: rt2661.c,v 1.17 2006/05/01 08:41:11 damien Exp $	*/
 /*	$FreeBSD: rt2560.c,v 1.5 2006/06/02 19:59:31 csjp Exp $	*/
 
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rt2661.c,v 1.29 2012/02/18 13:38:36 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rt2661.c,v 1.30 2015/01/07 07:05:48 ozaki-r Exp $");
 
 
 #include <sys/param.h>
@@ -2572,7 +2572,7 @@ rt2661_init(struct ifnet *ifp)
 
 		if (firmware_read(fh, 0, ucode, size) != 0) {
 			aprint_error_dev(sc->sc_dev, "could not read microcode %s\n", name);
-			firmware_free(ucode, 0);
+			firmware_free(ucode, size);
 			firmware_close(fh);
 			rt2661_stop(ifp, 1);
 			return EIO;
@@ -2580,13 +2580,13 @@ rt2661_init(struct ifnet *ifp)
 
 		if (rt2661_load_microcode(sc, ucode, size) != 0) {
 			aprint_error_dev(sc->sc_dev, "could not load 8051 microcode\n");
-			firmware_free(ucode, 0);
+			firmware_free(ucode, size);
 			firmware_close(fh);
 			rt2661_stop(ifp, 1);
 			return EIO;
 		}
 
-		firmware_free(ucode, 0);
+		firmware_free(ucode, size);
 		firmware_close(fh);
 		sc->sc_flags |= RT2661_FWLOADED;
 	}

Index: src/sys/dev/pci/if_ipw.c
diff -u src/sys/dev/pci/if_ipw.c:1.57 src/sys/dev/pci/if_ipw.c:1.58
--- src/sys/dev/pci/if_ipw.c:1.57	Sat Mar 29 19:28:24 2014
+++ src/sys/dev/pci/if_ipw.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ipw.c,v 1.57 2014/03/29 19:28:24 christos Exp $	*/
+/*	$NetBSD: if_ipw.c,v 1.58 2015/01/07 07:05:48 ozaki-r 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.57 2014/03/29 19:28:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ipw.c,v 1.58 2015/01/07 07:05:48 ozaki-r Exp $");
 
 /*-
  * Intel(R) PRO/Wireless 2100 MiniPCI driver
@@ -1907,8 +1907,8 @@ ipw_cache_firmware(struct ipw_softc *sc)
 
 	return 0;
 
-fail3:	firmware_free(fw->ucode, 0);
-fail2:	firmware_free(fw->main, 0);
+fail3:	firmware_free(fw->ucode, fw->ucode_size);
+fail2:	firmware_free(fw->main, fw->main_size);
 fail1:  firmware_close(fwh);
 fail0:
 	return error;
@@ -1920,8 +1920,8 @@ ipw_free_firmware(struct ipw_softc *sc)
 	if (!(sc->flags & IPW_FLAG_FW_CACHED))
 		return;
 
-	firmware_free(sc->fw.main, 0);
-	firmware_free(sc->fw.ucode, 0);
+	firmware_free(sc->fw.main, sc->fw.main_size);
+	firmware_free(sc->fw.ucode, sc->fw.ucode_size);
 
 	sc->flags &= ~IPW_FLAG_FW_CACHED;
 }

Index: src/sys/dev/pci/if_iwi.c
diff -u src/sys/dev/pci/if_iwi.c:1.97 src/sys/dev/pci/if_iwi.c:1.98
--- src/sys/dev/pci/if_iwi.c:1.97	Sat Mar 29 19:28:24 2014
+++ src/sys/dev/pci/if_iwi.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwi.c,v 1.97 2014/03/29 19:28:24 christos Exp $  */
+/*	$NetBSD: if_iwi.c,v 1.98 2015/01/07 07:05:48 ozaki-r Exp $  */
 /*	$OpenBSD: if_iwi.c,v 1.111 2010/11/15 19:11:57 damien Exp $	*/
 
 /*-
@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.97 2014/03/29 19:28:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.98 2015/01/07 07:05:48 ozaki-r Exp $");
 
 /*-
  * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver
@@ -2187,6 +2187,7 @@ iwi_cache_firmware(struct iwi_softc *sc)
 		error = EIO;
 		goto fail1;
 	}
+	sc->sc_blobsize = size;
 
 	sc->sc_blob = firmware_malloc(size);
 	if (sc->sc_blob == NULL) {
@@ -2246,7 +2247,7 @@ iwi_cache_firmware(struct iwi_softc *sc)
 	return 0;
 
 
-fail2:	firmware_free(sc->sc_blob, 0);
+fail2:	firmware_free(sc->sc_blob, sc->sc_blobsize);
 fail1:
 	return error;
 }
@@ -2258,7 +2259,7 @@ iwi_free_firmware(struct iwi_softc *sc)
 	if (!(sc->flags & IWI_FLAG_FW_CACHED))
 		return;
 
-	firmware_free(sc->sc_blob, 0);
+	firmware_free(sc->sc_blob, sc->sc_blobsize);
 
 	sc->flags &= ~IWI_FLAG_FW_CACHED;
 }

Index: src/sys/dev/pci/if_iwivar.h
diff -u src/sys/dev/pci/if_iwivar.h:1.16 src/sys/dev/pci/if_iwivar.h:1.17
--- src/sys/dev/pci/if_iwivar.h:1.16	Tue Jan 19 22:07:00 2010
+++ src/sys/dev/pci/if_iwivar.h	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwivar.h,v 1.16 2010/01/19 22:07:00 pooka Exp $ */
+/*	$NetBSD: if_iwivar.h,v 1.17 2015/01/07 07:05:48 ozaki-r Exp $ */
 
 /*-
  * Copyright (c) 2004, 2005
@@ -123,6 +123,7 @@ struct iwi_softc {
 	struct iwi_firmware	fw;
 	const char		*sc_fwname;
 	char			*sc_blob;
+	size_t			sc_blobsize;
 
 	uint32_t		flags;
 #define IWI_FLAG_FW_CACHED	(1 << 0)

Index: src/sys/dev/usb/if_athn_usb.c
diff -u src/sys/dev/usb/if_athn_usb.c:1.6 src/sys/dev/usb/if_athn_usb.c:1.7
--- src/sys/dev/usb/if_athn_usb.c:1.6	Wed Oct 16 18:23:39 2013
+++ src/sys/dev/usb/if_athn_usb.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_athn_usb.c,v 1.6 2013/10/16 18:23:39 christos Exp $	*/
+/*	$NetBSD: if_athn_usb.c,v 1.7 2015/01/07 07:05:48 ozaki-r Exp $	*/
 /*	$OpenBSD: if_athn_usb.c,v 1.12 2013/01/14 09:50:31 jsing Exp $	*/
 
 /*-
@@ -22,7 +22,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.6 2013/10/16 18:23:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.7 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #ifdef	_KERNEL_OPT
 #include "opt_inet.h"
@@ -831,7 +831,7 @@ athn_usb_load_firmware(struct athn_usb_s
 	if (error != 0) {
 		aprint_error_dev(usc->usc_dev,
 		    "failed to read firmware (error %d)\n", error);
-		firmware_free(fw, 0);
+		firmware_free(fw, size);
 		return error;
 	}
 
@@ -848,14 +848,14 @@ athn_usb_load_firmware(struct athn_usb_s
 		USETW(req.wLength, mlen);
 		error = usbd_do_request(usc->usc_udev, &req, ptr);
 		if (error != 0) {
-			free(fw, M_DEVBUF);
+			firmware_free(fw, size);
 			return error;
 		}
 		addr += mlen >> 8;
 		ptr  += mlen;
 		size -= mlen;
 	}
-	free(fw, M_DEVBUF);
+	firmware_free(fw, size);
 
 	/* Start firmware. */
 	if (usc->usc_flags & ATHN_USB_FLAG_AR7010)

Index: src/sys/dev/usb/if_rum.c
diff -u src/sys/dev/usb/if_rum.c:1.48 src/sys/dev/usb/if_rum.c:1.49
--- src/sys/dev/usb/if_rum.c:1.48	Sat Mar 29 00:59:05 2014
+++ src/sys/dev/usb/if_rum.c	Wed Jan  7 07:05:48 2015
@@ -1,5 +1,5 @@
 /*	$OpenBSD: if_rum.c,v 1.40 2006/09/18 16:20:20 damien Exp $	*/
-/*	$NetBSD: if_rum.c,v 1.48 2014/03/29 00:59:05 zafer Exp $	*/
+/*	$NetBSD: if_rum.c,v 1.49 2015/01/07 07:05:48 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2005-2007 Damien Bergamini <damien.bergam...@free.fr>
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_rum.c,v 1.48 2014/03/29 00:59:05 zafer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_rum.c,v 1.49 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include <sys/param.h>
 #include <sys/sockio.h>
@@ -283,18 +283,18 @@ rum_attachhook(void *xsc)
 	if (error != 0) {
 		printf("%s: failed to read firmware (error %d)\n",
 		    device_xname(sc->sc_dev), error);
-		firmware_free(ucode, 0);
+		firmware_free(ucode, size);
 		return error;
 	}
 
 	if (rum_load_microcode(sc, ucode, size) != 0) {
 		printf("%s: could not load 8051 microcode\n",
 		    device_xname(sc->sc_dev));
-		firmware_free(ucode, 0);
+		firmware_free(ucode, size);
 		return ENXIO;
 	}
 
-	firmware_free(ucode, 0);
+	firmware_free(ucode, size);
 	sc->sc_flags |= RT2573_FWLOADED;
 
 	return 0;

Index: src/sys/dev/usb/if_urtwn.c
diff -u src/sys/dev/usb/if_urtwn.c:1.34 src/sys/dev/usb/if_urtwn.c:1.35
--- src/sys/dev/usb/if_urtwn.c:1.34	Fri Jul 25 15:07:03 2014
+++ src/sys/dev/usb/if_urtwn.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_urtwn.c,v 1.34 2014/07/25 15:07:03 nonaka Exp $	*/
+/*	$NetBSD: if_urtwn.c,v 1.35 2015/01/07 07:05:48 ozaki-r Exp $	*/
 /*	$OpenBSD: if_urtwn.c,v 1.20 2011/11/26 06:39:33 ckuethe Exp $	*/
 
 /*-
@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.34 2014/07/25 15:07:03 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.35 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -3085,7 +3085,7 @@ urtwn_load_firmware(struct urtwn_softc *
 	if (error != 0) {
 		aprint_error_dev(sc->sc_dev,
 		    "failed to read firmware (error %d)\n", error);
-		firmware_free(fw, 0);
+		firmware_free(fw, len);
 		return (error);
 	}
 
@@ -3175,7 +3175,7 @@ urtwn_load_firmware(struct urtwn_softc *
 		goto fail;
 	}
  fail:
-	firmware_free(fw, 0);
+	firmware_free(fw, len);
 	return (error);
 }
 

Index: src/sys/dev/usb/if_zyd.c
diff -u src/sys/dev/usb/if_zyd.c:1.36 src/sys/dev/usb/if_zyd.c:1.37
--- src/sys/dev/usb/if_zyd.c:1.36	Tue Jan 22 12:40:43 2013
+++ src/sys/dev/usb/if_zyd.c	Wed Jan  7 07:05:48 2015
@@ -1,5 +1,5 @@
 /*	$OpenBSD: if_zyd.c,v 1.52 2007/02/11 00:08:04 jsg Exp $	*/
-/*	$NetBSD: if_zyd.c,v 1.36 2013/01/22 12:40:43 jmcneill Exp $	*/
+/*	$NetBSD: if_zyd.c,v 1.37 2015/01/07 07:05:48 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2006 by Damien Bergamini <damien.bergam...@free.fr>
@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.36 2013/01/22 12:40:43 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.37 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include <sys/param.h>
 #include <sys/sockio.h>
@@ -278,7 +278,7 @@ zyd_attachhook(device_t self)
 	if (error != 0) {
 		aprint_error_dev(sc->sc_dev,
 		    "failed to read firmware (error %d)\n", error);
-		firmware_free(fw, 0);
+		firmware_free(fw, size);
 		return;
 	}
 
@@ -286,11 +286,11 @@ zyd_attachhook(device_t self)
 	if (error != 0) {
 		aprint_error_dev(sc->sc_dev,
 		    "could not load firmware (error=%d)\n", error);
-		firmware_free(fw, 0);
+		firmware_free(fw, size);
 		return;
 	}
 
-	firmware_free(fw, 0);
+	firmware_free(fw, size);
 	sc->sc_flags |= ZD1211_FWLOADED;
 
 	/* complete the attach process */

Index: src/sys/kern/kern_cpu.c
diff -u src/sys/kern/kern_cpu.c:1.66 src/sys/kern/kern_cpu.c:1.67
--- src/sys/kern/kern_cpu.c:1.66	Fri Jul 25 08:10:40 2014
+++ src/sys/kern/kern_cpu.c	Wed Jan  7 07:05:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_cpu.c,v 1.66 2014/07/25 08:10:40 dholland Exp $	*/
+/*	$NetBSD: kern_cpu.c,v 1.67 2015/01/07 07:05:48 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2008, 2009, 2010, 2012 The NetBSD Foundation, Inc.
@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.66 2014/07/25 08:10:40 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.67 2015/01/07 07:05:48 ozaki-r Exp $");
 
 #include "opt_cpu_ucode.h"
 #include "opt_compat_netbsd.h"
@@ -605,7 +605,7 @@ cpu_ucode_load(struct cpu_ucode_softc *s
 	int error;
 
 	if (sc->sc_blob != NULL) {
-		firmware_free(sc->sc_blob, 0);
+		firmware_free(sc->sc_blob, sc->sc_blobsize);
 		sc->sc_blob = NULL;
 		sc->sc_blobsize = 0;
 	}
@@ -632,7 +632,7 @@ cpu_ucode_load(struct cpu_ucode_softc *s
 	return 0;
 
 err1:
-	firmware_free(sc->sc_blob, 0);
+	firmware_free(sc->sc_blob, sc->sc_blobsize);
 	sc->sc_blob = NULL;
 	sc->sc_blobsize = 0;
 err0:

Reply via email to