[haiku-commits] haiku: hrev56190 - 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: Tue, 14 Jun 2022 03:58:03 +0000 (UTC)

hrev56190 adds 1 changeset to branch 'master'
old head: e6da31ae5de1f00e64dc2abf4be59d2a206ffa09
new head: e206b2f350bee2c103529de8eb388c51ac88b15a
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=e206b2f350be+%5Ee6da31ae5de1

----------------------------------------------------------------------------

e206b2f350be: freebsd_network: Always hold the "Giant" lock during attaches.
  
  Reduces patches to OpenBSD drivers slightly, and could potentially
  help with some of the KDLs.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev56190
Commit:      e206b2f350bee2c103529de8eb388c51ac88b15a
URL:         https://git.haiku-os.org/haiku/commit/?id=e206b2f350be
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Tue Jun 14 03:48:43 2022 UTC

----------------------------------------------------------------------------

3 files changed, 4 insertions(+), 4 deletions(-)
.../kernel/drivers/network/wlan/iaxwifi200/dev/pci/if_iwx.c       | 2 --
.../kernel/drivers/network/wlan/idualwifi7260/dev/pci/if_iwm.c    | 2 --
src/libs/compat/freebsd_network/device.c                          | 4 ++++

----------------------------------------------------------------------------

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 dcbbaddbcf..fdc656b3be 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,9 +11028,7 @@ iwx_attach(struct device *parent, struct device *self, 
void *aux)
        ic->ic_ampdu_tx_stop = NULL;
 
 #ifdef __HAIKU__
-       mtx_lock(&Giant);
        iwx_preinit(sc);
-       mtx_unlock(&Giant);
 #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 8f8f1bf50d..5d73bb2fdb 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,9 +12124,7 @@ 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__
-       mtx_lock(&Giant);
        iwm_preinit(sc);
-       mtx_unlock(&Giant);
 #else
        /*
         * We cannot read the MAC address without loading the
diff --git a/src/libs/compat/freebsd_network/device.c 
b/src/libs/compat/freebsd_network/device.c
index 7504d35cc0..05adbf5505 100644
--- a/src/libs/compat/freebsd_network/device.c
+++ b/src/libs/compat/freebsd_network/device.c
@@ -481,6 +481,9 @@ device_attach(device_t device)
                || device->methods.attach == NULL)
                return B_ERROR;
 
+       // Always hold the giant lock during attach.
+       mtx_lock(&Giant);
+
        result = device->methods.attach(device);
 
        if (result == 0)
@@ -489,6 +492,7 @@ device_attach(device_t device)
        if (result == 0 && HAIKU_DRIVER_REQUIRES(FBSD_WLAN_FEATURE))
                result = start_wlan(device);
 
+       mtx_unlock(&Giant);
        return result;
 }
 


Other related posts:

  • » [haiku-commits] haiku: hrev56190 - 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