You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(9) |
Aug
(16) |
Sep
(11) |
Oct
(113) |
Nov
(136) |
Dec
(123) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(61) |
Feb
(42) |
Mar
(114) |
Apr
(34) |
May
(5) |
Jun
(26) |
Jul
(4) |
Aug
(29) |
Sep
(62) |
Oct
(24) |
Nov
(3) |
Dec
(9) |
2005 |
Jan
(23) |
Feb
(8) |
Mar
(36) |
Apr
(75) |
May
(10) |
Jun
(109) |
Jul
(54) |
Aug
(135) |
Sep
(163) |
Oct
(83) |
Nov
(32) |
Dec
(44) |
2006 |
Jan
(134) |
Feb
(78) |
Mar
(27) |
Apr
(10) |
May
(16) |
Jun
(5) |
Jul
(6) |
Aug
(3) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
(9) |
2007 |
Jan
(8) |
Feb
(4) |
Mar
(2) |
Apr
|
May
(7) |
Jun
(14) |
Jul
(16) |
Aug
(4) |
Sep
(2) |
Oct
(1) |
Nov
(2) |
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(27) |
Jun
(2) |
Jul
(29) |
Aug
(5) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(5) |
2009 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2010 |
Jan
(9) |
Feb
|
Mar
(7) |
Apr
(5) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(152) |
May
(248) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
From: Florian F. <f.f...@gm...> - 2016-10-13 14:43:36
|
We want to know the size of the pointed object, not the pointer. Signed-off-by: Florian Fainelli <f.f...@gm...> --- cardsetting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cardsetting.c b/cardsetting.c index aae3be1433ce..e2555bd96b63 100644 --- a/cardsetting.c +++ b/cardsetting.c @@ -589,7 +589,7 @@ int acx1xx_update_antenna(acx_device_t *adev) log(L_INIT, "Updating antenna[0,1]: 0x%02X 0x%02X\n", adev->antenna[0], adev->antenna[1]); - memset(antenna, 0, sizeof(antenna)); + memset(antenna, 0, sizeof(*antenna)); antenna[4] = adev->antenna[0]; antenna[5] = adev->antenna[1]; res = acx_configure(adev, antenna, -- 2.7.4 |
From: Florian F. <f.f...@gm...> - 2016-10-13 14:43:36
|
This macro is now going away, so expand it for >= v4.8 Signed-off-by: Florian Fainelli <f.f...@gm...> --- pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pci.c b/pci.c index ae07f5aae304..72d542f04579 100644 --- a/pci.c +++ b/pci.c @@ -1495,7 +1495,11 @@ static struct acxpci_device_info acxpci_info_tbl[] __devinitdata = { #endif #ifdef CONFIG_PCI +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0) static DEFINE_PCI_DEVICE_TABLE(acxpci_id_tbl) = { +#else +static const struct pci_device_id acxpci_id_tbl[] = { +#endif { PCI_VDEVICE(TI, PCI_DEVICE_ID_TI_TNETW1100A), .driver_data = CHIPTYPE_ACX100, }, -- 2.7.4 |
From: Florian F. <f.f...@gm...> - 2016-10-13 14:43:35
|
Take into account a few API changes: * hw->flags converted to a bitmap array (4.2) * FIF_PROMISC_IN_BSS removed (4.2) * ieee80211_probereq_get() takes an address argument instead of vif (3.19) * hw_scan passes an ieee80211_scan_request (3.17) Signed-off-by: Florian Fainelli <f.f...@gm...> --- main.c | 25 ++++++++++++++++++++++++- main.h | 5 +++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index bfec85685f2d..a4e8761392b9 100644 --- a/main.c +++ b/main.c @@ -497,7 +497,11 @@ int acx_free_mechanics(acx_device_t *adev) int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; +#else + __clear_bit(IEEE80211_HW_RX_INCLUDES_FCS, hw->flags); +#endif hw->queues = 1; hw->wiphy->max_scan_ssids = 1; @@ -525,7 +529,11 @@ int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw) /* We base signal quality on winlevel approach of previous driver * TODO OW 20100615 This should into a common init code */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) hw->flags |= IEEE80211_HW_SIGNAL_UNSPEC; +#else + ieee80211_hw_set(hw, SIGNAL_UNSPEC); +#endif hw->max_signal = 100; if (IS_ACX100(adev)) { @@ -945,8 +953,11 @@ void acx_op_configure_filter(struct ieee80211_hw *hw, changed_flags, *total_flags); /* OWI TODO: Set also FIF_PROBE_REQ ? */ - *total_flags &= (FIF_PROMISC_IN_BSS | FIF_ALLMULTI | FIF_FCSFAIL + *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_CONTROL | FIF_OTHER_BSS); +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) + *total_flags &= FIF_PROMISC_IN_BSS; +#endif logf1(L_DEBUG, "2: *total_flags=0x%08x\n", *total_flags); @@ -1044,9 +1055,16 @@ void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, #endif } +#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 17, 0) int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_scan_request *req) { +#else +int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_scan_request *hw_req) +{ + struct cfg80211_scan_request *req = &hw_req->req; +#endif acx_device_t *adev = hw2adev(hw); struct sk_buff *skb; size_t ssid_len = 0; @@ -1082,8 +1100,13 @@ int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, goto out; } #else +#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 19, 0) skb = ieee80211_probereq_get(adev->hw, adev->vif, ssid, ssid_len, req->ie_len); +#else + skb = ieee80211_probereq_get(adev->hw, adev->vif->addr, ssid, ssid_len, + req->ie_len); +#endif if (!skb) { ret = -ENOMEM; goto out; diff --git a/main.h b/main.h index 293f5c897638..f07cbb69411f 100644 --- a/main.h +++ b/main.h @@ -61,8 +61,13 @@ void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, struct sk_buff *skb); #endif +#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 17, 0) int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_scan_request *req); +#else +int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_scan_request *req); +#endif int acx_recover_hw(acx_device_t *adev); -- 2.7.4 |
From: Florian F. <f.f...@gm...> - 2016-10-13 14:43:34
|
Hi Oliver, Long time no see! I dug an old DWL-650+ PCMCIA card that I wanted to test on my laptop and had to solve a few build failures first. Cheers Florian Fainelli (3): cardsetting: Fix size argument to memset() main: Fix API changes from mac80211 pci: Expand DEFINE_PCI_DEVICE_TABLE macro for >= v4.8 cardsetting.c | 2 +- main.c | 25 ++++++++++++++++++++++++- main.h | 5 +++++ pci.c | 4 ++++ 4 files changed, 34 insertions(+), 2 deletions(-) -- 2.7.4 |
From: Oliver W. <oli...@ol...> - 2014-02-06 19:22:16
|
Thanks for the patch, Hauke. I'll have a look at it soon and also if channel_change_time is actually required, as Larry indicated. BR, Oliver On Wed, 5 Feb 2014 20:58:17 +0100 Hauke Mehrtens <ha...@ha...> wrote: > Signed-off-by: Hauke Mehrtens <ha...@ha...> > --- > main.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/main.c b/main.c > index 841592f..f202627 100644 > --- a/main.c > +++ b/main.c > @@ -500,7 +500,9 @@ int acx_init_ieee80211(acx_device_t *adev, struct > ieee80211_hw *hw) hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; > hw->queues = 1; > hw->wiphy->max_scan_ssids = 1; > +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) > hw->channel_change_time = 10000; > +#endif > > /* OW TODO Check if RTS/CTS threshold can be included here */ > |
From: Larry F. <Lar...@lw...> - 2014-02-05 20:39:06
|
On 02/05/2014 01:58 PM, Hauke Mehrtens wrote: > Signed-off-by: Hauke Mehrtens <ha...@ha...> > --- > main.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/main.c b/main.c > index 841592f..f202627 100644 > --- a/main.c > +++ b/main.c > @@ -500,7 +500,9 @@ int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw) > hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; > hw->queues = 1; > hw->wiphy->max_scan_ssids = 1; > +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) > hw->channel_change_time = 10000; > +#endif > > /* OW TODO Check if RTS/CTS threshold can be included here */ The commit message that removed channel_change_time from mac80211 says that it was never used there. Why not just remove it unconditionally? Larry |
From: Hauke M. <ha...@ha...> - 2014-02-05 20:24:20
|
Signed-off-by: Hauke Mehrtens <ha...@ha...> --- main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main.c b/main.c index 841592f..f202627 100644 --- a/main.c +++ b/main.c @@ -500,7 +500,9 @@ int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw) hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; hw->queues = 1; hw->wiphy->max_scan_ssids = 1; +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) hw->channel_change_time = 10000; +#endif /* OW TODO Check if RTS/CTS threshold can be included here */ -- 1.7.10.4 |
From: Uwe Kleine-K. <uw...@kl...> - 2014-01-05 21:52:33
|
Hello, On 01/05/2014 05:07 PM, Marcel Period wrote: > I have the exact same error as Uwe. Same hardware (Raspberry Pi, Fritz > WLAN Stick 1.1) and Linux 3.6. I also tried with kernel versions 3.2 and > 3.10 and I tried the driver on a x86 Debian Wheezy (Linux 3.2), but it > has the same effect. > > Uwe, have you been able to fix it? I exchanged a few emails with Oliver Winker in private. The result was that the chipset in the fritz wlan stick isn't really supported and he recommended to look for an alternative solution with different hardware. The chip is old, there is no documentation available and the alternatives are not that expensive[1]. Best regards Uwe [1] http://kaffeeringe.de/708/wlan-stick-finden-und-installieren/ suggests Edimax Wifi EW-7811UN. |
From: Marcel P. <mar...@gm...> - 2014-01-05 16:07:21
|
Hello, I have the exact same error as Uwe. Same hardware (Raspberry Pi, Fritz WLAN Stick 1.1) and Linux 3.6. I also tried with kernel versions 3.2 and 3.10 and I tried the driver on a x86 Debian Wheezy (Linux 3.2), but it has the same effect. Uwe, have you been able to fix it? Thanks for your good work. Regards. Marcel |
From: James Le C. <ch...@au...> - 2013-09-19 21:33:56
|
--- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 841592f..b30d837 100644 --- a/main.c +++ b/main.c @@ -682,7 +682,7 @@ int acx_op_config(struct ieee80211_hw *hw, u32 changed) if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL," -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) +#if CONFIG_ACX_MAC80211_VERSION >= KERNEL_VERSION(3, 10, 0) "channel->hw_value=%i\n", conf->chandef.chan->hw_value); acx_set_channel(adev, conf->chandef.chan->hw_value, -- 1.8.2.1 |
From: Igor B <ig...@gm...> - 2013-09-17 19:45:30
|
Hi all, I found the acx100 driver in the list of linux out-of-tree driver list. I want to try and contribute to the effort of placing this driver to the linux-next driver tree. Is there any working group that I can join? Thanks, Igor |
From: Uwe Kleine-K. <uw...@kl...> - 2013-09-05 21:21:19
|
Hello, I think the oops includes most necessary information for my problem: [ 31.964713] usb 1-1.3: new high-speed USB device number 6 using dwc_otg [ 32.086227] usb 1-1.3: New USB device found, idVendor=057c, idProduct=6201 [ 32.086257] usb 1-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 32.086274] usb 1-1.3: Product: WLAN USB Device [ 32.086289] usb 1-1.3: Manufacturer: AVM GmbH [ 32.086306] usb 1-1.3: SerialNumber: 001C4AF9602F [ 32.211339] cfg80211: Calling CRDA to update world regulatory domain [ 32.387702] acx.acx_init_module: acx-mac80211, version: v0.6.0-gv20130127-3-g1daf4bf (git: v20130127-3-g1daf4bf) [ 32.387735] acx.acx_init_module: this driver is still EXPERIMENTAL [ 32.387735] acx: please read the README file and/or go to http://acx100.sourceforge.net/wiki for further information [ 32.387805] acx.acxpci_init_module: built with CONFIG_ACX_MAC80211_PCI [ 32.387821] acx.acxpci_init_module: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them [ 32.387834] acx.acxpci_init_module: acx: running on a little-endian CPU [ 32.387834] PCI/VLYNQ module initialized, waiting for cards to probe... [ 32.387849] acxusb.acxusb_init_module: built with CONFIG_ACX_MAC80211_USB [ 32.387859] acxusb.acxusb_init_module: USB module initialized, probing for devices... [ 32.388253] acx.acx_read_fw: requesting firmware image 'tiacx111usbc1B' [ 32.483637] acxusb.acxusb_boot: firmware size: 97388 bytes [ 32.487205] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=8) [ 32.487799] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=2056) [ 32.488216] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=4104) [ 32.488722] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=6152) [ 32.489237] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=8200) [ 32.489720] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=10248) [ 32.490254] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=12296) [ 32.490764] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=14344) [ 32.491226] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=16392) [ 32.491713] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=18440) [ 32.492218] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=20488) [ 32.492747] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=22536) [ 32.493222] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=24584) [ 32.493744] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=26632) [ 32.494227] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=28680) [ 32.494734] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=30728) [ 32.495228] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=32776) [ 32.495755] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=34824) [ 32.497120] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=36872) [ 32.500382] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=38920) [ 32.500904] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=40968) [ 32.501343] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=43016) [ 32.501863] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=45064) [ 32.502361] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=47112) [ 32.502843] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=49160) [ 32.503366] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=51208) [ 32.503837] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=53256) [ 32.504423] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=55304) [ 32.504845] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=57352) [ 32.505389] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=59400) [ 32.505862] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=61448) [ 32.506345] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=63496) [ 32.506859] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=65544) [ 32.507364] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=67592) [ 32.507855] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=69640) [ 32.508340] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=71688) [ 32.508846] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=73736) [ 32.509361] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=75784) [ 32.509841] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=77832) [ 32.510354] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=79880) [ 32.510852] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=81928) [ 32.511356] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=83976) [ 32.511844] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=86024) [ 32.512363] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=88072) [ 32.513783] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=90120) [ 32.515241] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=92168) [ 32.515754] acxusb.acxusb_boot: acx: uploading firmware (2048 bytes, offset=94216) [ 32.516220] acxusb.acxusb_boot: acx: uploading firmware (1124 bytes, offset=96264) [ 32.631488] acxusb.acxusb_boot: TNETW1450 firmware successfully uploaded [ 32.631642] acx.acx_alloc_hw: wiphy: phy0 [ 32.631669] acx.acx_init_mechanics: ie_cmd_buf_len=336 [ 32.632158] acx.acx_init_packet_templates: initializing max packet templates [ 32.636343] acx.acx_interrogate: (type:ACX111_IE_QUEUE_CONFIG,len:56) [ 32.636931] acx.acx111_create_dma_regions: Queue head: len=56, tx_memory_block_address=1F900, rx_memory_block_address=18300 [ 32.636953] acx.acx111_create_dma_regions: Queue head: rx_queue_start=15534 [ 32.636966] acx.acx111_create_dma_regions: Queue head: tx_queue_start[0]=165B4 [ 32.636978] acx.acx111_create_dma_regions: Queue head: tx_queue_start[1]=16234 [ 32.636989] acx.acx111_create_dma_regions: Queue head: tx_queue_start[2]=15EB4 [ 32.637002] acx.acx111_create_dma_regions: Queue head: tx_queue_start[3]=15B34 [ 32.637013] acx.acx111_create_dma_regions: Queue head: tx_queue_start[4]=157B4 [ 32.637031] acx.acx_create_tx_desc_queue: adev->iobase2= (null),tx_queue_start=000165B4,tx->desc_start=000165b4 [ 32.637073] Unable to handle kernel paging request at virtual address 000165d8 [ 32.646403] pgd = da23c000 [ 32.651035] [000165d8] *pgd=00000000 [ 32.656594] Internal error: Oops: 805 [#1] ARM [ 32.662971] Modules linked in: acx_mac80211(O+) mac80211 cfg80211 rfkill snd_bcm2835 snd_pcm snd_page_alloc snd_seq snd_timer snd_seq_device snd soundcore sg sr_mod sd_mod cdrom crc_t10dif usb_storage scsi_mod [ 32.687939] CPU: 0 Tainted: G O (3.6-trunk-rpi #1 Debian 3.6.9-1~experimental.1+rpi6) [ 32.701234] PC is at acx_create_desc_queues+0x110/0xd34 [acx_mac80211] [ 32.710005] LR is at acx_create_desc_queues+0xc0/0xd34 [acx_mac80211] [ 32.718565] pc : [<bf1a0120>] lr : [<bf1a00d0>] psr: 60000013 [ 32.718565] sp : db591cb8 ip : 00000000 fp : c04dbfa0 [ 32.734158] r10: da4f97d4 r9 : 000165b4 r8 : 00000000 [ 32.741438] r7 : 000165b4 r6 : 00015534 r5 : 00000005 r4 : da4f9140 [ 32.750034] r3 : 00000010 r2 : ffffff80 r1 : da4f9140 r0 : da4f9140 [ 32.758618] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 32.767836] Control: 00c5387d Table: 1a23c008 DAC: 00000015 [ 32.775634] Process modprobe (pid: 1464, stack limit = 0xdb590268) [ 32.783850] Stack: (0xdb591cb8 to 0xdb592000) [ 32.807534] 1ca0: 000165b4 00000000 [ 32.819962] 1cc0: 00000000 da4f9140 00015534 da4f9140 00000000 00000000 00000000 000010e8 [ 32.832313] 1ce0: db591d88 00000005 bf1b5198 da4f9140 00000005 00015534 bf1b82bc 00004a40 [ 32.845633] 1d00: 00004a40 000010e8 00000000 bf1a91f4 00018300 00000000 00000000 00380005 [ 32.858220] 1d20: 0001f900 00018300 00015534 00070000 000165b4 04000000 00016234 02000001 [ 32.870851] 1d40: 00015eb4 00000002 00015b34 00000003 000157b4 00000004 00280003 00800001 [ 32.883484] 1d60: 0005010a 0000000f 00070010 00000000 04000010 03000010 02000010 01000010 [ 32.896167] 1d80: 00000010 000165b4 00016234 00015eb4 00015b34 000157b4 db400480 da4f9140 [ 32.908938] 1da0: da4f8320 00000008 da0254e0 bf1a9864 00004a40 000010e8 00000000 bf1a8adc [ 32.921838] 1dc0: 00000032 bf1b473d da4f9140 da4f8320 00000008 bf1a8b24 00000032 00000011 [ 32.941109] 1de0: da4f9140 bf19ba18 da1c4400 bf1aebfc da1c4420 da2e8800 bf1b822c 00000000 [ 32.968016] 1e00: da1c4400 00000000 bf1aebfc c0235a40 da1c4420 da1c4454 bf1b822c bf1b822c [ 32.981499] 1e20: 00000001 00000024 0000001c c020e078 00000000 da1c4420 da1c4454 bf1b822c [ 32.996571] 1e40: 00000000 c020e208 bf1b822c db591e58 c020e1a8 c020cba8 db4684ac da2fda50 [ 33.011297] 1e60: bf1b822c bf1b822c da2fdb40 c0506cf8 00000000 c020d808 bf1b15d7 bf1b15d8 [ 33.034365] 1e80: bf1b822c bf1b81fc bf1b15a8 bf1b822c 00000001 c020e6b4 bf1b8224 bf1b865c [ 33.047970] 1ea0: bf1b81fc bf1b15a8 bf1b822c 00000001 0000001c c0234a18 c04dc874 bf1b865c [ 33.062400] 1ec0: 00000000 00000000 da4ae560 bf1bf140 bf1bf10c 00000000 00000000 bf1b865c [ 33.077096] 1ee0: bf1bf10c c000855c 00000000 00000001 bf1b865c bf1b865c 00000001 bf1b865c [ 33.090697] 1f00: 00000001 bf1b86a4 da4ae560 00000001 00000024 c005b7e4 bf1b8668 00007fff [ 33.112445] 1f20: c0057914 00000002 00000124 c0058f30 c036246c bf1b87c0 b6eee930 dce6d67c [ 33.126101] 1f40: dce4f000 0002d278 dce6fb38 dce6f923 dce74650 0001fc3c 0002207c 00000000 [ 33.139598] 1f60: 00000000 0000002f 00000030 00000024 00000028 0000001d 00000000 c046efa4 [ 33.153061] 1f80: 0002d278 00000000 00060000 b8e293f0 00000080 c000d7e8 db590000 00000000 [ 33.166533] 1fa0: 00000000 c000d660 00000000 00060000 b6cb2000 0002d278 b6eee930 b6cb2000 [ 33.184240] 1fc0: 00000000 00060000 b8e293f0 00000080 b8e2c6a8 0002d278 b6eee930 00000000 [ 33.214446] 1fe0: 00000000 beb9290c b6ee5f9c b6e50ec4 60000010 b6cb2000 eb00156d e1a00008 [ 33.228313] [<bf1a0120>] (acx_create_desc_queues+0x110/0xd34 [acx_mac80211]) from [<bf1a91f4>] (acx111_create_dma_regions+0x1cc/0x210 [acx_mac80211]) [ 33.247298] [<bf1a91f4>] (acx111_create_dma_regions+0x1cc/0x210 [acx_mac80211]) from [<bf1a9864>] (acx_init_mac+0x58/0x198 [acx_mac80211]) [ 33.265282] [<bf1a9864>] (acx_init_mac+0x58/0x198 [acx_mac80211]) from [<bf19ba18>] (acxusb_probe+0x368/0x590 [acx_mac80211]) [ 33.282104] [<bf19ba18>] (acxusb_probe+0x368/0x590 [acx_mac80211]) from [<c0235a40>] (usb_probe_interface+0x158/0x214) [ 33.298199] [<c0235a40>] (usb_probe_interface+0x158/0x214) from [<c020e078>] (driver_probe_device+0xb0/0x1e0) [ 33.313446] [<c020e078>] (driver_probe_device+0xb0/0x1e0) from [<c020e208>] (__driver_attach+0x60/0x84) [ 33.328125] [<c020e208>] (__driver_attach+0x60/0x84) from [<c020cba8>] (bus_for_each_dev+0x4c/0x78) [ 33.342420] [<c020cba8>] (bus_for_each_dev+0x4c/0x78) from [<c020d808>] (bus_add_driver+0x9c/0x210) [ 33.356704] [<c020d808>] (bus_add_driver+0x9c/0x210) from [<c020e6b4>] (driver_register+0x9c/0x138) [ 33.370983] [<c020e6b4>] (driver_register+0x9c/0x138) from [<c0234a18>] (usb_register_driver+0x64/0x120) [ 33.385795] [<c0234a18>] (usb_register_driver+0x64/0x120) from [<bf1bf140>] (acx_init_module+0x34/0x9c [acx_mac80211]) [ 33.401847] [<bf1bf140>] (acx_init_module+0x34/0x9c [acx_mac80211]) from [<c000855c>] (do_one_initcall+0x90/0x160) [ 33.417474] [<c000855c>] (do_one_initcall+0x90/0x160) from [<c005b7e4>] (sys_init_module+0x1764/0x18e4) [ 33.432111] [<c005b7e4>] (sys_init_module+0x1764/0x18e4) from [<c000d660>] (ret_fast_syscall+0x0/0x30) [ 33.504440] Code: 1a000013 e59d0014 e3a03010 e3e0207f (e5c72024) [ 33.513239] ---[ end trace d45e4150e443ff96 ]--- The compiled module with some debug info can be found at http://www.kleine-koenig.org/tmp/acx-mac80211.ko This is an Raspberry Pi (i.e. ARM) machine using an AVM Fritz WLan Stick. The firmware in use is http://acx100.erley.org/fw/acx111_2.4.0.70-USB/tiacx111usbc1B Debugging is a bit hard, as I only have remote access by wired network. I hope it's ok to mail this to the devel list and not the users list. If you need more info, don't hesitate to ask. I also idle in freenode's #acx100 for quick roundtrip stuff. Best regards and thanks in advance Uwe |
From: Oliver W. <oli...@ol...> - 2013-02-17 14:17:33
|
Hello, We have upgraded the acx100 SourceForge project to the new SF Allura platform. The git repository URL got changed with this. The new URL is: git://git.code.sf.net/p/acx100/acx-mac80211 The old repo is still available read-only, but will receive no updates anymore. At this occasion also all open/pending tickets in the trackers were closed. Best Regards, Oliver |
From: Oliver W. <oli...@ol...> - 2013-01-27 19:30:45
|
Hi Hauke, Thanks! Will check this one soon as well ;). Best Regards, Oliver On Sun, 27 Jan 2013 19:32:49 +0100 Hauke Mehrtens <ha...@ha...> wrote: > These attributes where removed with kernel 3.8. > > Signed-off-by: Hauke Mehrtens <ha...@ha...> > --- > mem.c | 6 +++--- > pci.c | 12 ++++++------ > 2 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/mem.c b/mem.c > index 87e01f1..923488a 100644 > --- a/mem.c > +++ b/mem.c > @@ -2216,7 +2216,7 @@ int acx100mem_ioctl_set_phy_amp_bias(struct > ieee80211_hw *hw, > * ================================================== |
From: Hauke M. <ha...@ha...> - 2013-01-27 18:33:11
|
These attributes where removed with kernel 3.8. Signed-off-by: Hauke Mehrtens <ha...@ha...> --- mem.c | 6 +++--- pci.c | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mem.c b/mem.c index 87e01f1..923488a 100644 --- a/mem.c +++ b/mem.c @@ -2216,7 +2216,7 @@ int acx100mem_ioctl_set_phy_amp_bias(struct ieee80211_hw *hw, * ================================================== */ -static int __devinit acxmem_probe(struct platform_device *pdev) +static int acxmem_probe(struct platform_device *pdev) { acx_device_t *adev = NULL; const char *chip_name; @@ -2392,7 +2392,7 @@ static int __devinit acxmem_probe(struct platform_device *pdev) * pdev - ptr to PCI device structure containing info about pci * configuration */ -static int __devexit acxmem_remove(struct platform_device *pdev) +static int acxmem_remove(struct platform_device *pdev) { struct ieee80211_hw *hw = (struct ieee80211_hw *) platform_get_drvdata(pdev); @@ -2594,7 +2594,7 @@ static struct platform_driver acxmem_driver = { .name = "acx-mem", }, .probe = acxmem_probe, - .remove = __devexit_p(acxmem_remove), + .remove = acxmem_remove, #ifdef CONFIG_PM .suspend = acxmem_e_suspend, diff --git a/pci.c b/pci.c index ab09758..db12352 100644 --- a/pci.c +++ b/pci.c @@ -1039,7 +1039,7 @@ int acx100pci_ioctl_set_phy_amp_bias(struct net_device *ndev, * id - ptr to the device id entry that matched this device */ #ifdef CONFIG_PCI -static int __devinit acxpci_probe(struct pci_dev *pdev, +static int acxpci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { unsigned long mem_region1 = 0; @@ -1292,7 +1292,7 @@ static int __devinit acxpci_probe(struct pci_dev *pdev, * * pdev - ptr to PCI device structure containing info about pci configuration */ -static void __devexit acxpci_remove(struct pci_dev *pdev) +static void acxpci_remove(struct pci_dev *pdev) { struct ieee80211_hw *hw = (struct ieee80211_hw *) pci_get_drvdata(pdev); @@ -1478,7 +1478,7 @@ static int acxpci_e_resume(struct pci_dev *pdev) */ #if 0 // use later ? -static struct acxpci_device_info acxpci_info_tbl[] __devinitdata = { +static struct acxpci_device_info acxpci_info_tbl[] = { [0] = { .part_name = "acx111", .helper_image = "tiacx1111r16", // probly wrong !! @@ -1505,7 +1505,7 @@ static struct pci_driver acxpci_driver = { .name = "acx_pci", .id_table = acxpci_id_tbl, .probe = acxpci_probe, - .remove = __devexit_p(acxpci_remove), + .remove = acxpci_remove, #ifdef CONFIG_PM .suspend = acxpci_e_suspend, .resume = acxpci_e_resume @@ -1603,7 +1603,7 @@ static struct vlynq_device_id acx_vlynq_id[] = { }; -static __devinit int vlynq_probe(struct vlynq_device *vdev, +static int vlynq_probe(struct vlynq_device *vdev, struct vlynq_device_id *id) { int result = -EIO, i; @@ -1851,7 +1851,7 @@ static struct vlynq_driver vlynq_acx = { .name = "acx_vlynq", .id_table = acx_vlynq_id, .probe = vlynq_probe, - .remove = __devexit_p(vlynq_remove), + .remove = vlynq_remove, }; #endif /* CONFIG_VLYNQ */ -- 1.7.10.4 |
From: Oliver W. <oli...@ol...> - 2013-01-03 19:32:58
|
Hi Hauke, Indeed, you're probably right ;)! I didn't test either yet (for one time) and actually wanted to do that the weekend. I'll check the fix and push it soon then, and also look at the other patches you sent. Thanks a lot for notifying! Best Regards, Oliver On Thu, 03 Jan 2013 14:36:09 +0100 Hauke Mehrtens <ha...@ha...> wrote: > Hi Oliver, > > I just saw your commit: > > commit cc9cc94298fb18809852c6e72f6d51a7f92bc58f > Author: Oliver Winker <ol...@ol...> > Date: Wed Jan 2 20:47:06 2013 +0100 > > main: mac80211 api changes for 3.8 > > and I think it is wrong. > > This was done to adapt the changes done in: > > commit b9a9ada14aab17f08c1d9735601f1097cdcfc6de > Author: Johannes Berg <joh...@in...> > Date: Thu Nov 29 13:00:10 2012 +0100 > > mac80211: remove probe response temporary buffer allocation > > Instead of allocating a temporary buffer to build IEs > build them right into the SKB. > > Signed-off-by: Johannes Berg <joh...@in...> > > The memcpy was removed from mac80211 code and should now be done in > the driver, at least it is done so in all the drivers affected by this > commit. Could you add something like this: > > if (req->ie_len) > memcpy(skb_put(skb, req->ie_len), req->ie, > req->ie_len); > > I do not have the hardware at hand to test this. > > Hauke > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills > current with LearnDevNow - 3,200 step-by-step video tutorials by > Microsoft MVPs and experts. ON SALE this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122712 > _______________________________________________ > Acx100-devel mailing list > Acx...@li... > https://lists.sourceforge.net/lists/listinfo/acx100-devel > |
From: Hauke M. <ha...@ha...> - 2013-01-03 15:22:22
|
This fixes the following warning: acx-mac80211/main.c: In function ‘acx_recover_hw’: acx-mac80211/main.c:1115:2: warning: passing argument 2 of ‘acx_remove_interface’ from incompatible pointer type [enabled by default] acx-mac80211/main.c:629:6: note: expected ‘struct ieee80211_if_init_conf *’ but argument is of type ‘struct ieee80211_vif *’ LD [M] acx-mac80211/acx-mac80211.o Signed-off-by: Hauke Mehrtens <ha...@ha...> --- main.c | 4 ++-- main.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 6c80479..7f6f449 100644 --- a/main.c +++ b/main.c @@ -626,7 +626,7 @@ out_unlock: return err; } -void acx_remove_interface(acx_device_t *adev, struct ieee80211_VIF *vif) +void acx_remove_interface(acx_device_t *adev, struct ieee80211_vif *vif) { if (vif->type == NL80211_IFTYPE_MONITOR) adev->vif_monitor--; @@ -647,7 +647,7 @@ void acx_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_VIF *vif) mac_vif = VIF_addr(vif); - acx_remove_interface(adev, vif); + acx_remove_interface(adev, VIF_vif(vif)); log(L_ANY, "Virtual interface removed: type=%d, MAC=%s\n", vif->type, acx_print_mac(mac, mac_vif)); diff --git a/main.h b/main.h index 3df808c..293f5c8 100644 --- a/main.h +++ b/main.h @@ -24,7 +24,7 @@ void acx_schedule_task(acx_device_t *adev, unsigned int set_flag); void acx_timer(unsigned long address); int acx_op_add_interface(struct ieee80211_hw *ieee, struct ieee80211_VIF *vif); -void acx_remove_interface(acx_device_t *adev, struct ieee80211_VIF *vif); +void acx_remove_interface(acx_device_t *adev, struct ieee80211_vif *vif); void acx_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_VIF *vif); int acx_op_config(struct ieee80211_hw *hw, u32 changed); void acx_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, -- 1.7.10.4 |
From: Hauke M. <ha...@ha...> - 2013-01-03 15:21:48
|
printk_ratelimited was added to kernel version 2.6.32 later and it is not needed to use this backport any more. commit 74e8e01d2c9f10b4b1ae559e1fd281bd00741d79 Author: Joe Perches <jo...@pe...> Date: Tue Jan 17 04:06:18 2012 +0000 kernel.h: add printk_ratelimited and pr_<level>_rl commit 8a64f336bc1d4aa203b138d29d5a9c414a9fbb47 upstream. Signed-off-by: Hauke Mehrtens <ha...@ha...> --- acx_compat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acx_compat.h b/acx_compat.h index 41e705c..e599026 100644 --- a/acx_compat.h +++ b/acx_compat.h @@ -5,7 +5,7 @@ #include <linux/ratelimit.h> #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 32) #define printk_ratelimited(args...) \ do { \ -- 1.7.10.4 |
From: Hauke M. <ha...@ha...> - 2013-01-03 15:21:48
|
These patches are fixing some warnings I got when compiling against various kernel versions. I test compiled this against kernel version 2.6.32 to 3.8-rc1, compilation against older kernel versions does not work. I do not have this hardware at hand now, so this was not runtime tested. Hauke Mehrtens (3): fix a section mismatch printk_ratelimited is available in kernel version 2.6.32 fix warning when building against kernel 2.6.32 acx_compat.h | 2 +- debug.c | 2 +- debug.h | 4 ++-- main.c | 4 ++-- main.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) -- 1.7.10.4 |
From: Hauke M. <ha...@ha...> - 2013-01-03 15:21:43
|
WARNING: /home/hauke/linux/acx-mac80211/acx-mac80211.o(.init.text+0x1bc): Section mismatch in reference from the function init_module() to the function .exit.text:acx_debugfs_exit() The function __init init_module() references a function __exit acx_debugfs_exit(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __exit annotation of acx_debugfs_exit() so it may be used outside an exit section. Signed-off-by: Hauke Mehrtens <ha...@ha...> --- debug.c | 2 +- debug.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debug.c b/debug.c index ce9e4ca..5b5587d 100644 --- a/debug.c +++ b/debug.c @@ -951,7 +951,7 @@ int __init acx_debugfs_init(void) return 0; } -void __exit acx_debugfs_exit(void) +void acx_debugfs_exit(void) { debugfs_remove_recursive(acx_dbgfs_dir); } diff --git a/debug.h b/debug.h index ff4e3f4..5853c40 100644 --- a/debug.h +++ b/debug.h @@ -9,14 +9,14 @@ typedef ssize_t ((acx_dbgfs_write_t)(acx_device_t *adev, struct file *, const ch int acx_debugfs_add_adev(struct acx_device *adev); void acx_debugfs_remove_adev(struct acx_device *adev); int __init acx_debugfs_init(void); -void __exit acx_debugfs_exit(void); +void acx_debugfs_exit(void); #else static int acx_debugfs_add_adev(struct acx_device *adev) { return 0; } static void acx_debugfs_remove_adev(struct acx_device *adev) { } static int __init acx_debugfs_init(void) { return 0; } -static void __exit acx_debugfs_exit(void) { } +static void acx_debugfs_exit(void) { } #endif /* defined CONFIG_DEBUG_FS */ -- 1.7.10.4 |
From: Hauke M. <ha...@ha...> - 2013-01-03 13:53:09
|
Hi Oliver, I just saw your commit: commit cc9cc94298fb18809852c6e72f6d51a7f92bc58f Author: Oliver Winker <ol...@ol...> Date: Wed Jan 2 20:47:06 2013 +0100 main: mac80211 api changes for 3.8 and I think it is wrong. This was done to adapt the changes done in: commit b9a9ada14aab17f08c1d9735601f1097cdcfc6de Author: Johannes Berg <joh...@in...> Date: Thu Nov 29 13:00:10 2012 +0100 mac80211: remove probe response temporary buffer allocation Instead of allocating a temporary buffer to build IEs build them right into the SKB. Signed-off-by: Johannes Berg <joh...@in...> The memcpy was removed from mac80211 code and should now be done in the driver, at least it is done so in all the drivers affected by this commit. Could you add something like this: if (req->ie_len) memcpy(skb_put(skb, req->ie_len), req->ie, req->ie_len); I do not have the hardware at hand to test this. Hauke |
From: Oliver W. <oli...@ol...> - 2012-05-29 18:13:53
|
Hi Jim, The series is pushed! Thanks again ;)! I did the usual (full) test-program, with one interesting finding, more below. Regarding _acx_issue_cmd_timeo_debug(), I included the common acx_wait_cmd_status(), but with an msleep() for pci instead of an udelay(). Since in the pci case we may sleep, I prefer the possibility to be able to schedule away to let the CPU other things. In pci, especially in AP-mode we also execute more often fw-commands, so the possibility to sleep accumulates and the increased cpu utilization pays-off still more over time. The checkpatch problem in "patch#05, whitespace", acxpci_issue_cmd_timeo_debug() seems to be #ifdef out, so left it for the moment. Then there is a strange problem with my DWL-650+ acx100-pci card: Doesn't associate anymore with kernel 3.4, neither driver version v20120522 nor this one. Scanning works, so there is some radio path, but no assoc anymore. Kernel 3.3 works fine with both driver versions ?! => Need to look into that in more detail. Cheers, Oliver On 05/25/2012 08:48 PM, Jim Cromie wrote: > Current logging messages look like: > > acx.log_fn_exit_v: 95382776 <== acx_read_cmd_type_status: 00000000 > acx.log_fn_enter: 95382776 ==> acx_write_cmd_type_status > acx.log_fn_exit: 95382776 <== acx_write_cmd_type_status > acx.log_fn_enter: 95382776 ==> acx_mwait > > fix this by: > - adding space at beginning of log_fn_exit format string > - drop last _ from log_fn_exit_v so it matches length of log_fn_enter > > Result is that the numbers and arrows line up nicely. > > Signed-off-by: Jim Cromie <jim...@gm...> > --- > acx_func.h | 4 ++-- > common.c | 6 +++--- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/acx_func.h b/acx_func.h > index fbad144..af20ab5 100644 > --- a/acx_func.h > +++ b/acx_func.h > @@ -169,7 +169,7 @@ void acx_lock_unhold(void); > #if ACX_DEBUG > void log_fn_enter(const char *funcname); > void log_fn_exit(const char *funcname); > -void log_fn_exit_v(const char *funcname, int v); > +void log_fn_exitv(const char *funcname, int v); > /* > * char *acx_print_mac(char *buf, const u8 *mac); > * void acx_print_mac2(const char *head, const u8 *mac, const char *tail); > @@ -189,7 +189,7 @@ const char *acx_cmd_status_str(unsigned int state); > #define FN_EXIT1(v) \ > do { \ > if (unlikely(acx_debug & L_FUNC)) { \ > - log_fn_exit_v(__func__, v); \ > + log_fn_exitv(__func__, v); \ > } \ > } while (0) > #define FN_EXIT0 \ > diff --git a/common.c b/common.c > index 5c526cc..adca18a 100644 > --- a/common.c > +++ b/common.c > @@ -66,7 +66,7 @@ static inline const char *acx_sanitize_str(const char *s); > /* Logging */ > void log_fn_enter(const char *funcname); > void log_fn_exit(const char *funcname); > -void log_fn_exit_v(const char *funcname, int v); > +void log_fn_exitv(const char *funcname, int v); > char *acx_print_mac(char *buf, const u8 *mac); > void acx_print_mac2(const char *head, const u8 *mac, const char *tail); > void acxlog_mac(int level, const char *head, const u8 *mac, const char *tail); > @@ -794,12 +794,12 @@ void log_fn_exit(const char *funcname) > if (indent >= sizeof(acx_debug_spaces)) > indent = sizeof(acx_debug_spaces) - 1; > > - pr_info("%08ld %s<== %s\n", d % 100000000, > + pr_info(" %08ld %s<== %s\n", d % 100000000, > acx_debug_spaces + (sizeof(acx_debug_spaces) - 1) - indent, > funcname); > } > > -void log_fn_exit_v(const char *funcname, int v) > +void log_fn_exitv(const char *funcname, int v) > { > int indent; > TIMESTAMP(d); |
From: Oliver W. <oli...@ol...> - 2012-05-25 21:10:00
|
Hi Jim, Just tried kmemleak and loaded the module (pci,usb,mem on), ifup/down, but I couldn't reproduce the BUG below. --- > Linux lapix 3.4.0-owidebug1+ #1 SMP Thu May 24 22:29:58 CEST 2012 i686 > model name : Intel(R) Pentium(R) M processor 1400MHz > MemTotal: 1290484 kB --- > CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4000 --- Thanks also again for the new series! I'll have a look. Best Regards, Oliver On 05/23/2012 10:51 PM, Oliver Winker wrote: > Hi Jim, > > I never tried kmemleak, but I can add it one time and see what it gives > here. Maybe something gets corrupted somehow (?) > > arch/x86/mm/fault.c > --- > * Handle a spurious fault caused by a stale TLB entry. > static noinline __kprobes int > spurious_fault(unsigned long error_code, unsigned long address) > --- > > Best Regards, Oliver > > On 05/23/2012 06:44 PM, Jim Cromie wrote: >> hi Oliver, Larry, >> >> Ive recently been seeing more noise on my console, >> for a hand-wavy definition of recent. >> >> At first, I thought it might be the __acquire/__release trick, >> but that doesnt quite fit - >> I built with -f Makefile.nomem, and that build does NOT >> get the logs below. >> >> I recently added KMEMLEAK to my kernel, do you have that >> on yours ? Would you add it to one of your test-boxes, >> see if you get same reports ? >> >> I'll try on my desktop too, the 586 box box Im using is somewhat >> limited in Disk and memory, and a KERNEL_DEBUG build is pretty big. >> >> >> acxusb.acxusb_init_module: built with CONFIG_ACX_MAC80211_USB >> acxusb.acxusb_init_module: USB module initialized, probing for devices... >> usbcore: registered new interface driver acx_usb >> acx.acxmem_init_module: built with CONFIG_ACX_MAC80211_MEM >> acx.acxmem_init_module: compiled to use 32bit I/O access. I/O timing >> issues might occur, such as non-working firmware upload. Report them >> acx.acxmem_init_module: acx: running on a little-endian CPU >> acx: Slave-memory module initialized, waiting for cards to probe... >> BUG: unable to handle kernel paging request at c88f9000 >> IP: [<c02f68fe>] crc32_body+0x4e/0xf8 >> *pde = 069fa067 *pte = 00000000 >> Oops: 0000 [#1] PREEMPT >> Modules linked in: arc4 acx_mac80211(O) rtl8180 mac80211 eeprom_93cx6 >> scx200 cfg80211 ohci_hcd pata_sc1200 >> >> Pid: 31, comm: kmemleak Tainted: G O 3.4.0-rc5-ske+ #64 >> EIP: 0060:[<c02f68fe>] EFLAGS: 00010097 CPU: 0 >> EIP is at crc32_body+0x4e/0xf8 >> EAX: 00000000 EBX: c06371c0 ECX: 00000000 EDX: c88f9000 >> ESI: c88f9000 EDI: 00000286 EBP: c4ec7f54 ESP: c4ec7f38 >> DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 >> CR0: 8005003b CR2: c88f9000 CR3: 03d52000 CR4: 00000000 >> DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 >> DR6: ffff0ff0 DR7: 00000400 >> Process kmemleak (pid: 31, ti=c4ec6000 task=c4c75280 task.ti=c4ec6000) >> Stack: >> 00000286 c88f8ffc 0000028f 00000007 c4513000 00000000 00000286 c4ec7f60 >> c02f69e6 c06371c0 c4ec7f80 c01cbf39 00000000 c047336e c451302c 000249f0 >> 00000000 c01cc05f c4ec7f90 c01cc0ba c05b27c0 c7047ef8 c4ec7fe4 c0134119 >> Call Trace: >> [<c02f69e6>] crc32_le+0x12/0x14 >> [<c01cbf39>] kmemleak_scan+0x23f/0x365 >> [<c047336e>] ? mutex_lock_nested+0x3e/0x44 >> [<c01cc05f>] ? kmemleak_scan+0x365/0x365 >> [<c01cc0ba>] kmemleak_scan_thread+0x5b/0x98 >> [<c0134119>] kthread+0x76/0x7b >> [<c01340a3>] ? __init_kthread_worker+0x4a/0x4a >> [<c047ab46>] kernel_thread_helper+0x6/0x10 >> Code: 00 c1 e8 08 33 04 b3 4f 74 05 f6 c2 03 75 e5 89 f9 89 ce c1 e9 >> 03 83 e6 07 89 4d ec 8d 4a fc 89 75 f0 89 d6 89 4d e8 31 c9 eb 73 <33> >> 04 ce 8b 54 ce 04 89 45 e4 8b 7d e4 25 ff 00 00 00 8b 84 83 >> EIP: [<c02f68fe>] crc32_body+0x4e/0xf8 SS:ESP 0068:c4ec7f38 >> CR2: 00000000c88f9000 >> ---[ end trace 37592748e7ca7ba8 ]--- >> BUG: sleeping function called from invalid context at >> /home/jimc/projects/lx/linux-2.6/kernel/rwsem.c:20 >> in_atomic(): 1, irqs_disabled(): 1, pid: 31, name: kmemleak >> INFO: lockdep is turned off. >> irq event stamp: 1020924 >> hardirqs last enabled at (1020923): [<c0175fbe>] >> rcu_preempt_note_context_switch+0xaa/0xb0 >> hardirqs last disabled at (1020924): [<c0474a95>] _raw_spin_lock_irq+0x15/0x78 >> softirqs last enabled at (1020918): [<c0120d5c>] __do_softirq+0x1b5/0x1fe >> softirqs last disabled at (1020567): [<c01031c7>] do_softirq+0x53/0xa0 >> Pid: 31, comm: kmemleak Tainted: G D O 3.4.0-rc5-ske+ #64 >> Call Trace: >> [<c013ccea>] __might_sleep+0x178/0x180 >> [<c04736eb>] down_read+0x20/0x7d >> [<c012a84a>] exit_signals+0x1f/0x10b >> [<c011ecc5>] do_exit+0xcf/0x327 >> [<c0475f82>] oops_end+0x9f/0xa5 >> [<c0467dc4>] no_context+0x177/0x17f >> [<c0467f07>] __bad_area_nosemaphore+0x13b/0x143 >> [<c0105d87>] ? native_sched_clock+0x48/0xa2 >> [<c0467f26>] bad_area_nosemaphore+0x17/0x19 >> [<c04776f7>] do_page_fault+0x18f/0x365 >> [<c01571b8>] ? trace_hardirqs_on_caller+0x11/0x145 >> [<c013e077>] ? finish_task_switch.constprop.82+0x6e/0xb1 >> [<c013e036>] ? finish_task_switch.constprop.82+0x2d/0xb1 >> [<c018652f>] ? time_hardirqs_off+0x17/0x28 >> [<c0475906>] ? error_code+0x66/0x70 >> [<c0153d3b>] ? trace_hardirqs_off_caller+0x17/0x8f >> [<c0477568>] ? spurious_fault+0xb9/0xb9 >> [<c047590a>] error_code+0x6a/0x70 >> [<c02f68fe>] ? crc32_body+0x4e/0xf8 >> [<c02f69e6>] crc32_le+0x12/0x14 >> [<c01cbf39>] kmemleak_scan+0x23f/0x365 >> [<c047336e>] ? mutex_lock_nested+0x3e/0x44 >> [<c01cc05f>] ? kmemleak_scan+0x365/0x365 >> [<c01cc0ba>] kmemleak_scan_thread+0x5b/0x98 >> [<c0134119>] kthread+0x76/0x7b >> [<c01340a3>] ? __init_kthread_worker+0x4a/0x4a >> [<c047ab46>] kernel_thread_helper+0x6/0x10 >> note: kmemleak[31] exited with preempt_count 1 > |
From: Larry F. <Lar...@lw...> - 2012-05-25 19:22:01
|
On 05/25/2012 01:48 PM, Jim Cromie wrote: > Signed-off-by: Jim Cromie<jim...@gm...> > --- > pci.c | 46 ++++++++++++++++++++++------------------------ > 1 files changed, 22 insertions(+), 24 deletions(-) > > diff --git a/pci.c b/pci.c > index 3be7c12..a2a73c1 100644 > --- a/pci.c > +++ b/pci.c > @@ -207,7 +207,8 @@ acxpci_issue_cmd_timeo_debug(acx_device_t * adev, unsigned cmd, > pr_acx("%s: cmd_status is not IDLE: 0x%04X!=0\n", > devname, cmd_status); > goto bad; > - } else if (counter< 190) { /* if waited>10ms... */ > + } > + else if (counter< 190) { /* if waited>10ms... */ This change does not follow checkpatch rules. The structure should be if (condition) { statements; } else if (condition2) { statements; } else { statements; } Larry |
From: Jim C. <jim...@gm...> - 2012-05-25 18:49:49
|
Since switch to pr_fmt() and its users, we have uniform __func__ prefixing, and logf0, logf1 just add it a 2nd time. Fix this by changing macro defn rather than many spots in code; this lets us go back if, for brevity, we drop __func__ from pr_fmt(). Signed-off-by: Jim Cromie <jim...@gm...> --- acx_func.h | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/acx_func.h b/acx_func.h index af20ab5..ceba2c4 100644 --- a/acx_func.h +++ b/acx_func.h @@ -205,11 +205,12 @@ const char *acx_cmd_status_str(unsigned int state); pr_notice(args); \ } while (0) -/* Log with prefix "acx: __func__ */ -#define logf0(chan, msg) \ - log(chan, "acx: %s: " msg, __func__); -#define logf1(chan, msg, args...) \ - log(chan, "acx: %s: " msg, __func__, args); +/* Log with prefix "acx: __func__. + No - suppress this, its handled now by pr_fmt() etc. + preserve the api just in case.. + */ +#define logf0 log +#define logf1 log /* None-Debug build * OW 20100405: An none-debug build is currently probably broken -- 1.7.7.6 |