Message ID | 20190920022533.23085-1-Larry.Finger@lwfinger.net (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | rtlwifi: rtl_pci: Fix errors when CONFIG_RTLWIFI_DEBUG is not set | expand |
Larry Finger <Larry.Finger@lwfinger.net> writes: > When rtlwifi debugging is disabled, missing globals occur due to the > attempt execution of code that is never generated. > > Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Is this is a new regression or an old problem?
Larry Finger <Larry.Finger@lwfinger.net> writes: > When rtlwifi debugging is disabled, missing globals occur due to the > attempt execution of code that is never generated. Do you have the exact error message? I don't know why this is failing. > Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> > --- > drivers/net/wireless/realtek/rtlwifi/pci.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c > index 6087ec7a90a6..2f8aad28f1c0 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/pci.c > +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c > @@ -2298,8 +2298,10 @@ int rtl_pci_probe(struct pci_dev *pdev, > } > rtlpriv->mac80211.mac80211_registered = 1; > > +#ifdef CONFIG_RTLWIFI_DEBUG > /* add for debug */ > rtl_debug_add_one(hw); > +#endif > > /*init rfkill */ > rtl_init_rfkill(hw); /* Init PCI sw */ > @@ -2349,8 +2351,10 @@ void rtl_pci_disconnect(struct pci_dev *pdev) > wait_for_completion(&rtlpriv->firmware_loading_complete); > clear_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status); > > +#ifdef CONFIG_RTLWIFI_DEBUG > /* remove form debug */ > rtl_debug_remove_one(hw); > +#endif Then I checked debug.h I see that it's supposed to be handled already: #ifdef CONFIG_RTLWIFI_DEBUG void rtl_debug_add_one(struct ieee80211_hw *hw); void rtl_debug_remove_one(struct ieee80211_hw *hw); void rtl_debugfs_add_topdir(void); void rtl_debugfs_remove_topdir(void); #else #define rtl_debug_add_one(hw) #define rtl_debug_remove_one(hw) #define rtl_debugfs_add_topdir() #define rtl_debugfs_remove_topdir() #endif But the else part looks weird, I'm used to using inline functions instead of defines: static inline void rtl_debug_add_one(struct ieee80211_hw *hw) {} static inline void rtl_debug_remove_one(struct ieee80211_hw *hw) {} static inline void rtl_debugfs_add_topdir(void) {} static inline void rtl_debugfs_remove_topdir(void) {} Inline functions also make it possible for the compiler to check the types are correct.
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c index 6087ec7a90a6..2f8aad28f1c0 100644 --- a/drivers/net/wireless/realtek/rtlwifi/pci.c +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c @@ -2298,8 +2298,10 @@ int rtl_pci_probe(struct pci_dev *pdev, } rtlpriv->mac80211.mac80211_registered = 1; +#ifdef CONFIG_RTLWIFI_DEBUG /* add for debug */ rtl_debug_add_one(hw); +#endif /*init rfkill */ rtl_init_rfkill(hw); /* Init PCI sw */ @@ -2349,8 +2351,10 @@ void rtl_pci_disconnect(struct pci_dev *pdev) wait_for_completion(&rtlpriv->firmware_loading_complete); clear_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status); +#ifdef CONFIG_RTLWIFI_DEBUG /* remove form debug */ rtl_debug_remove_one(hw); +#endif /*ieee80211_unregister_hw will call ops_stop */ if (rtlmac->mac80211_registered == 1) {
When rtlwifi debugging is disabled, missing globals occur due to the attempt execution of code that is never generated. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> --- drivers/net/wireless/realtek/rtlwifi/pci.c | 4 ++++ 1 file changed, 4 insertions(+)