hrev56200 adds 3 changesets to branch 'master'
old head: 177a801206dc3e626a9f812433fac87d17685521
new head: 2e1033fcf1206b57b16f2a0ed26915205d3ea5ab
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=2e1033fcf120+%5E177a801206dc
----------------------------------------------------------------------------
7ac9dc661242: freebsd_network: Use a dedicated USB mutex instead of &Giant.
Fixes #17804.
f578843da43c: idualwifi7260 & iaxwifi200: Use the Haiku gDriverName instead of
hardcoding.
This also will fix what name appears in the syslog.
2e1033fcf120: idualwifi7260 & iaxwifi200: preinit() can fail.
This will prevent the device from even appearing in Network preferences
if firmware loading does not work.
[ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]
----------------------------------------------------------------------------
3 files changed, 12 insertions(+), 6 deletions(-)
.../kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c | 5 +++--
.../drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c | 5 +++--
src/libs/compat/freebsd_network/usb.cpp | 8 ++++++--
############################################################################
Commit: 7ac9dc6612421bfd5545cc9598008933775ba93b
URL: https://git.haiku-os.org/haiku/commit/?id=7ac9dc661242
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Mon Jun 20 17:02:32 2022 UTC
Ticket: https://dev.haiku-os.org/ticket/17804
freebsd_network: Use a dedicated USB mutex instead of &Giant.
Fixes #17804.
----------------------------------------------------------------------------
diff --git a/src/libs/compat/freebsd_network/usb.cpp
b/src/libs/compat/freebsd_network/usb.cpp
index 68f1088202..130be91689 100644
--- a/src/libs/compat/freebsd_network/usb.cpp
+++ b/src/libs/compat/freebsd_network/usb.cpp
@@ -26,6 +26,7 @@ extern "C" {
#include <USB3.h>
+struct mtx sUSBLock;
usb_module_info* sUSB = NULL;
struct taskqueue* sUSBTaskqueue = NULL;
@@ -40,6 +41,8 @@ init_usb()
dprintf("cannot get module \"%s\"\n", B_USB_MODULE_NAME);
return B_ERROR;
}
+
+ mtx_init(&sUSBLock, "fbsd usb", NULL, MTX_DEF);
return B_OK;
}
@@ -54,6 +57,7 @@ uninit_usb()
sUSB = NULL;
sUSBTaskqueue = NULL;
+ mtx_destroy(&sUSBLock);
}
@@ -247,13 +251,13 @@ usbd_transfer_setup(struct freebsd_usb_device* udev,
// Make sure the taskqueue exists.
if (sUSBTaskqueue == NULL) {
- mtx_lock(&Giant);
+ mtx_lock(&sUSBLock);
if (sUSBTaskqueue == NULL) {
sUSBTaskqueue = taskqueue_create("usb taskq", 0,
taskqueue_thread_enqueue, &sUSBTaskqueue);
taskqueue_start_threads(&sUSBTaskqueue, 1, PZERO, "usb
taskq");
}
- mtx_unlock(&Giant);
+ mtx_unlock(&sUSBLock);
}
const usb_configuration_info* device_config = sUSB->get_configuration(
############################################################################
Commit: f578843da43cc4fef86ae3e3e8a1219b116f0f86
URL: https://git.haiku-os.org/haiku/commit/?id=f578843da43c
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Mon Jun 20 17:03:20 2022 UTC
idualwifi7260 & iaxwifi200: Use the Haiku gDriverName instead of hardcoding.
This also will fix what name appears in the syslog.
----------------------------------------------------------------------------
diff --git
a/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
b/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
index fdc656b3be..422c52420d 100644
--- a/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
+++ b/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
@@ -135,7 +135,7 @@
#ifdef __FreeBSD_version
#include <sys/device.h>
-#define DEVNAME(_s) "iwx"
+#define DEVNAME(_s) gDriverName
#define SC_DEV_FOR_PCI sc->sc_dev
#define ifq_is_oactive(IFQ) ((if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0)
#define ifq_set_oactive(IFQ) if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0)
diff --git
a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
index 5d73bb2fdb..5ed22bb370 100644
--- a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
+++ b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
@@ -151,7 +151,7 @@
#ifdef __FreeBSD_version
#include <sys/device.h>
-#define DEVNAME(_s) "iwm"
+#define DEVNAME(_s) gDriverName
#define SC_DEV_FOR_PCI sc->sc_dev
#define ifq_is_oactive(IFQ) ((if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0)
#define ifq_set_oactive(IFQ) if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0)
############################################################################
Revision: hrev56200
Commit: 2e1033fcf1206b57b16f2a0ed26915205d3ea5ab
URL: https://git.haiku-os.org/haiku/commit/?id=2e1033fcf120
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Mon Jun 20 17:04:00 2022 UTC
idualwifi7260 & iaxwifi200: preinit() can fail.
This will prevent the device from even appearing in Network preferences
if firmware loading does not work.
----------------------------------------------------------------------------
diff --git
a/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
b/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
index 422c52420d..fa000b358b 100644
--- a/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
+++ b/src/add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c
@@ -11028,7 +11028,8 @@ iwx_attach(struct device *parent, struct device *self,
void *aux)
ic->ic_ampdu_tx_stop = NULL;
#ifdef __HAIKU__
- iwx_preinit(sc);
+ if (iwx_preinit(sc) != 0)
+ return -1;
#else
/*
* We cannot read the MAC address without loading the
diff --git
a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
index 5ed22bb370..c921580f1c 100644
--- a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
+++ b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c
@@ -12124,7 +12124,8 @@ iwm_attach(struct device *parent, struct device *self,
void *aux)
ic->ic_ampdu_tx_start = iwm_ampdu_tx_start;
ic->ic_ampdu_tx_stop = iwm_ampdu_tx_stop;
#ifdef __HAIKU__
- iwm_preinit(sc);
+ if (iwm_preinit(sc) != 0)
+ return -1;
#else
/*
* We cannot read the MAC address without loading the