+ linux-bluetooth "Grumbach, Emmanuel" <emmanuel.grumbach@xxxxxxxxx> writes: >> >> > On Oct 3, 2018, at 5:10 PM, Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote: >> > >> > Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> writes: >> > >> >> To avoid the firmware loading race between Bluetooth and WiFi on >> >> Intel 8260, load firmware exclusively when BT_INTEL is enabled. >> >> >> >> Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> >> > >> > Still the commit log tells nothing about the actual problem which >> > makes review impossible. >> >> Sorry for that. The first two patches [1] only sends to linux-bluetooth and >> LMKL. >> >> I don’t know what really happened at hardware/firmware level, but making >> btusb and iwlwifi load firmware sequentially can workaround the issue. >> >> Matt Chen may be able to explain this issue with more detail. >> >> [1] https://lkml.org/lkml/2018/10/3/322 >> > > I just read the code of this patch and I don't quite understand. > You have a function that is declared as a non-inline function in two different header files? > btintel_firmware_lock is declared here: > > --- /dev/null > +++ b/include/linux/intel-wifi-bt.h > @@ -0,0 +1,8 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef __INTEL_WIFI_BT_H__ > +#define __INTEL_WIFI_BT_H__ > + > +void btintel_firmware_lock(void); > > And ... > > diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h > index 41c642cc523f..1373ffc2b575 100644 > --- a/drivers/bluetooth/btintel.h > +++ b/drivers/bluetooth/btintel.h > @@ -102,6 +102,8 @@ int btintel_read_boot_params(struct hci_dev *hdev, > struct intel_boot_params *params); > int btintel_download_firmware(struct hci_dev *dev, const struct firmware *fw, > u32 *boot_param); > +void btintel_firmware_lock(void); > > > This can't be right. -- Kalle Valo