Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 May 2015 22:33:06 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r283332 - in stable/10/sys: arm/arm arm/mv dev/ofw
Message-ID:  <201505232233.t4NMX6SH036584@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sat May 23 22:33:06 2015
New Revision: 283332
URL: https://svnweb.freebsd.org/changeset/base/283332

Log:
  MFC r274249, r274484, r275583:
  
    Avoid panic in ofwbus caused by not released resource list entry
  
    Fix typo in ARM GIC device_printf()
  
    Fix buffer overflow in Marvell PCI/PCIe driver

Modified:
  stable/10/sys/arm/arm/gic.c
  stable/10/sys/arm/mv/mv_pci.c
  stable/10/sys/dev/ofw/ofwbus.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/arm/arm/gic.c
==============================================================================
--- stable/10/sys/arm/arm/gic.c	Sat May 23 22:28:59 2015	(r283331)
+++ stable/10/sys/arm/arm/gic.c	Sat May 23 22:33:06 2015	(r283332)
@@ -273,7 +273,7 @@ arm_gic_attach(device_t dev)
 	arm_config_irq = gic_config_irq;
 
 	icciidr = gic_c_read_4(GICC_IIDR);
-	device_printf(dev,"pn 0x%x, arch 0x%x, rev 0x%x, implementer 0x%x sc->nirqs %u\n",
+	device_printf(dev,"pn 0x%x, arch 0x%x, rev 0x%x, implementer 0x%x irqs %u\n",
 			icciidr>>20, (icciidr>>16) & 0xF, (icciidr>>12) & 0xf,
 			(icciidr & 0xfff), sc->nirqs);
 

Modified: stable/10/sys/arm/mv/mv_pci.c
==============================================================================
--- stable/10/sys/arm/mv/mv_pci.c	Sat May 23 22:28:59 2015	(r283331)
+++ stable/10/sys/arm/mv/mv_pci.c	Sat May 23 22:33:06 2015	(r283332)
@@ -1171,7 +1171,7 @@ mv_pcib_alloc_msi(device_t dev, device_t
 
 	for (i = start; i < start + count; i++) {
 		setbit(&sc->sc_msi_bitmap, i);
-		irqs[i] = MSI_IRQ + i;
+		*irqs++ = MSI_IRQ + i;
 	}
 	debugf("%s: start: %x count: %x\n", __func__, start, count);
 

Modified: stable/10/sys/dev/ofw/ofwbus.c
==============================================================================
--- stable/10/sys/dev/ofw/ofwbus.c	Sat May 23 22:28:59 2015	(r283331)
+++ stable/10/sys/dev/ofw/ofwbus.c	Sat May 23 22:33:06 2015	(r283332)
@@ -399,11 +399,17 @@ ofwbus_adjust_resource(device_t bus, dev
 }
 
 static int
-ofwbus_release_resource(device_t bus __unused, device_t child, int type,
+ofwbus_release_resource(device_t bus, device_t child, int type,
     int rid, struct resource *r)
 {
+	struct resource_list_entry *rle;
 	int error;
 
+	/* Clean resource list entry */
+	rle = resource_list_find(BUS_GET_RESOURCE_LIST(bus, child), type, rid);
+	if (rle != NULL)
+		rle->res = NULL;
+
 	if ((rman_get_flags(r) & RF_ACTIVE) != 0) {
 		error = bus_deactivate_resource(child, type, rid, r);
 		if (error)



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