From 3b22516ed242594360f1d63ea1d5e116e595d73f Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sat, 25 Jan 2025 17:02:45 -0500 Subject: [PATCH] drivers/network/pcnet: Allocate a small softc on the stack in probe(). Fixes #19372. --- .../kernel/drivers/network/ether/pcnet/dev/pcn/if_pcn.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/add-ons/kernel/drivers/network/ether/pcnet/dev/pcn/if_pcn.c b/src/add-ons/kernel/drivers/network/ether/pcnet/dev/pcn/if_pcn.c index 240b793db3..97cbd75c8e 100644 --- a/src/add-ons/kernel/drivers/network/ether/pcnet/dev/pcn/if_pcn.c +++ b/src/add-ons/kernel/drivers/network/ether/pcnet/dev/pcn/if_pcn.c @@ -508,6 +508,11 @@ pcn_probe(dev) int rid; u_int32_t chip_id; +#ifdef __HAIKU__ + sc = __builtin_alloca(offsetof(struct pcn_softc, pcn_ldata)); + device_set_softc(dev, sc); +#endif + t = pcn_match(pci_get_vendor(dev), pci_get_device(dev)); if (t == NULL) return (ENXIO); @@ -529,6 +534,10 @@ pcn_probe(dev) bus_release_resource(dev, PCN_RES, PCN_RID, sc->pcn_res); +#ifdef __HAIKU__ + device_set_softc(dev, NULL); +#endif + switch((chip_id >> 12) & PART_MASK) { case Am79C971: case Am79C972: