summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/sk/if_sk.c22
-rw-r--r--sys/pci/if_sk.c22
2 files changed, 44 insertions, 0 deletions
diff --git a/sys/dev/sk/if_sk.c b/sys/dev/sk/if_sk.c
index 44bd447..9f148a1 100644
--- a/sys/dev/sk/if_sk.c
+++ b/sys/dev/sk/if_sk.c
@@ -1821,13 +1821,35 @@ skc_attach(dev)
}
sc->sk_devs[SK_PORT_A] = device_add_child(dev, "sk", -1);
+ if (sc->sk_devs[SK_PORT_A] == NULL) {
+ device_printf(dev, "failed to add child for PORT_A\n");
+ error = ENXIO;
+ goto fail;
+ }
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
+ if (port == NULL) {
+ device_printf(dev, "failed to allocate memory for "
+ "ivars of PORT_A\n");
+ error = ENXIO;
+ goto fail;
+ }
*port = SK_PORT_A;
device_set_ivars(sc->sk_devs[SK_PORT_A], port);
if (!(sk_win_read_1(sc, SK_CONFIG) & SK_CONFIG_SINGLEMAC)) {
sc->sk_devs[SK_PORT_B] = device_add_child(dev, "sk", -1);
+ if (sc->sk_devs[SK_PORT_B] == NULL) {
+ device_printf(dev, "failed to add child for PORT_B\n");
+ error = ENXIO;
+ goto fail;
+ }
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
+ if (port == NULL) {
+ device_printf(dev, "failed to allocate memory for "
+ "ivars of PORT_B\n");
+ error = ENXIO;
+ goto fail;
+ }
*port = SK_PORT_B;
device_set_ivars(sc->sk_devs[SK_PORT_B], port);
}
diff --git a/sys/pci/if_sk.c b/sys/pci/if_sk.c
index 44bd447..9f148a1 100644
--- a/sys/pci/if_sk.c
+++ b/sys/pci/if_sk.c
@@ -1821,13 +1821,35 @@ skc_attach(dev)
}
sc->sk_devs[SK_PORT_A] = device_add_child(dev, "sk", -1);
+ if (sc->sk_devs[SK_PORT_A] == NULL) {
+ device_printf(dev, "failed to add child for PORT_A\n");
+ error = ENXIO;
+ goto fail;
+ }
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
+ if (port == NULL) {
+ device_printf(dev, "failed to allocate memory for "
+ "ivars of PORT_A\n");
+ error = ENXIO;
+ goto fail;
+ }
*port = SK_PORT_A;
device_set_ivars(sc->sk_devs[SK_PORT_A], port);
if (!(sk_win_read_1(sc, SK_CONFIG) & SK_CONFIG_SINGLEMAC)) {
sc->sk_devs[SK_PORT_B] = device_add_child(dev, "sk", -1);
+ if (sc->sk_devs[SK_PORT_B] == NULL) {
+ device_printf(dev, "failed to add child for PORT_B\n");
+ error = ENXIO;
+ goto fail;
+ }
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
+ if (port == NULL) {
+ device_printf(dev, "failed to allocate memory for "
+ "ivars of PORT_B\n");
+ error = ENXIO;
+ goto fail;
+ }
*port = SK_PORT_B;
device_set_ivars(sc->sk_devs[SK_PORT_B], port);
}
OpenPOWER on IntegriCloud