2010-12-28 07:00:07

by Weedy

[permalink] [raw]
Subject: Compile error for the last week inside rtlwifi/base.c

I'm not sure if my kernel is too old or what but since nothing has changed I'm
going to ask.


CC [M]
/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/wireless/rtlwifi/
base.o
/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/wireless/rtlwifi/
base.c: In function ‘_rtl_init_deferred_work’:
/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/wireless/rtlwifi/
base.c:229: error: implicit declaration of function ‘alloc_workqueue’
/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/wireless/rtlwifi/
base.c:229: warning: assignment makes pointer from integer without a cast
make[4]: *** [/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/
wireless/rtlwifi/base.o] Error 1
make[3]: *** [/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/
wireless/rtlwifi] Error 2
make[2]: *** [/media/8G_SDcard/compat-wireless-2010-12-26-pc/drivers/net/
wireless] Error 2
make[1]: *** [_module_/media/8G_SDcard/compat-wireless-2010-12-26-pc] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-24-generic-pae'
make: *** [modules] Error 2




2010-12-28 16:22:58

by Larry Finger

[permalink] [raw]
Subject: Re: Compile error for the last week inside rtlwifi/base.c

On 12/28/2010 12:58 AM, Weedy wrote:
> I'm not sure if my kernel is too old or what but since nothing has changed I'm
> going to ask.

Older kernels used create_workqueue(), which is replaced by alloc_workqueue().
If you really need the driver for RTL8192CE/RTL8188CE, then apply the patch
shown below. If you do not need the driver, then disable it in the configuration.

Larry
---

diff --git a/drivers/net/wireless/rtlwifi/base.c
b/drivers/net/wireless/rtlwifi/base.c
index 77fa59a..f6cc073 100644
--- a/drivers/net/wireless/rtlwifi/base.c
+++ b/drivers/net/wireless/rtlwifi/base.c
@@ -225,7 +225,7 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw)

/* <2> work queue */
rtlpriv->works.hw = hw;
` rtlpriv->works.rtl_wq = alloc_workqueue(rtlpriv->cfg->name, 0, 0);
+ rtlpriv->works.rtl_wq = create_workqueue(rtlpriv->cfg->name);
INIT_DELAYED_WORK(&rtlpriv->works.watchdog_wq,
(void *)rtl_watchdog_wq_callback);
INIT_DELAYED_WORK(&rtlpriv->works.ips_nic_off_wq,


Attachments:
reverse_alloc (1.06 kB)