[haiku-commits] haiku: hrev56200 - in src: libs/compat/freebsd_network add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 20 Jun 2022 17:04:49 +0000 (UTC)

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


Other related posts:

  • » [haiku-commits] haiku: hrev56200 - in src: libs/compat/freebsd_network add-ons/kernel/drivers/network/wlan/idualwifi7260/dev/pci add-ons/kernel/drivers/network/wlan/iaxwifi200/dev/pci - waddlesplash