summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/agp/agp.c5
-rw-r--r--sys/dev/agp/agp_ali.c4
-rw-r--r--sys/pci/agp.c5
-rw-r--r--sys/pci/agp_ali.c4
4 files changed, 18 insertions, 0 deletions
diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c
index 7bf49b2..e664459 100644
--- a/sys/dev/agp/agp.c
+++ b/sys/dev/agp/agp.c
@@ -175,6 +175,11 @@ agp_alloc_gatt(device_t dev)
"allocating GATT for aperture of size %dM\n",
apsize / (1024*1024));
+ if (entries == 0) {
+ device_printf(dev, "bad aperture size\n");
+ return NULL;
+ }
+
gatt = malloc(sizeof(struct agp_gatt), M_AGP, M_NOWAIT);
if (!gatt)
return 0;
diff --git a/sys/dev/agp/agp_ali.c b/sys/dev/agp/agp_ali.c
index b9b2c13..fc99574 100644
--- a/sys/dev/agp/agp_ali.c
+++ b/sys/dev/agp/agp_ali.c
@@ -102,6 +102,10 @@ agp_ali_attach(device_t dev)
return error;
sc->initial_aperture = AGP_GET_APERTURE(dev);
+ if (sc->initial_aperture == 0) {
+ device_printf(dev, "bad initial aperture size, disabling\n");
+ return ENXIO;
+ }
for (;;) {
gatt = agp_alloc_gatt(dev);
diff --git a/sys/pci/agp.c b/sys/pci/agp.c
index 7bf49b2..e664459 100644
--- a/sys/pci/agp.c
+++ b/sys/pci/agp.c
@@ -175,6 +175,11 @@ agp_alloc_gatt(device_t dev)
"allocating GATT for aperture of size %dM\n",
apsize / (1024*1024));
+ if (entries == 0) {
+ device_printf(dev, "bad aperture size\n");
+ return NULL;
+ }
+
gatt = malloc(sizeof(struct agp_gatt), M_AGP, M_NOWAIT);
if (!gatt)
return 0;
diff --git a/sys/pci/agp_ali.c b/sys/pci/agp_ali.c
index b9b2c13..fc99574 100644
--- a/sys/pci/agp_ali.c
+++ b/sys/pci/agp_ali.c
@@ -102,6 +102,10 @@ agp_ali_attach(device_t dev)
return error;
sc->initial_aperture = AGP_GET_APERTURE(dev);
+ if (sc->initial_aperture == 0) {
+ device_printf(dev, "bad initial aperture size, disabling\n");
+ return ENXIO;
+ }
for (;;) {
gatt = agp_alloc_gatt(dev);
OpenPOWER on IntegriCloud