projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0b0595b
)
Staging: vt6656: fix the memory free bug in vntwusb_disconnect()
author
miaofng
<miaofng@gmail.com>
Tue, 29 Sep 2009 07:02:53 +0000
(15:02 +0800)
committer
Greg Kroah-Hartman
<gregkh@suse.de>
Fri, 30 Oct 2009 21:47:43 +0000
(14:47 -0700)
This patch is used to solve the memory bug when people plug out the wusb card then plug in.
Error logs are following:
root@smdk2440:~# ifdown eth1
AP deauthed me, reason=2.
Config_FileOperation file Not exist
Zone=[1][J][P]!!
WPA: Terminating
root@smdk2440:~# ----> !!!!!!!!!!!!!!here plug out the wusbcard
usb 1-1: USB disconnect, address 4
----> !!!!!!!!!!!!!!!!!!!here plug in the wusb card
usb 1-1: new full speed USB device using s3c2410-ohci and address 5
usb 1-1: New USB device found, idVendor=160a, idProduct=3184
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: VNT USB-802.11 Wireless LAN Adapter
usb 1-1: Manufacturer: VIA Networking Technologies, Inc.
usb 1-1: configuration #1 chosen from 1 choice
VIA Networking Wireless LAN USB Driver Ver. 1.19_12
Copyright (c) 2004 VIA Networking Technologies, Inc.
kernel BUG at mm/slab.c:2974!
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd =
c0004000
[
00000000
] *pgd=
00000000
Internal error: Oops: 817 [#1] PREEMPT
Modules linked in: vt6656_stage
CPU: 0 Not tainted (2.6.32-rc2 #14)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<
c002fb10
>] lr : [<
c002fb0c
>] psr:
40000093
sp :
c3867c68
ip :
c3867bd0
fp :
c3866000
r10:
c3800600
r9 :
c3802430
r8 :
00000004
r7 :
c3802428
r6 :
c3802660
r5 :
c3802420
r4 :
a0000013
r3 :
00000000
r2 :
c3866000
r1 :
00000003
r0 :
00000024
Flags: nZcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control:
0000717f
Table:
330a8000
DAC:
00000017
Process khubd (pid: 152, stack limit = 0xc3866270)
Stack: (0xc3867c68 to 0xc3868000)
7c60:
c0093fdc
c0094088
000000d0
000000d0
00000000
000080d0
7c80:
00000000
a0000013
c39ebec0
c3800600
000080d0
00000001
c03f13cc
00000006
7ca0:
c02b36f0
c0094574
c0043428
0001c9de
c39ebec0
c39ebea0
c3000c00
c02a6a84
7cc0:
89705f41
c3000c00
c39ebec0
c39ebea0
c3000c00
bf036f24
c39ebec8
00000006
7ce0:
00000000
c3000c00
c39ebec0
c39ebea0
c3000c00
bf036f24
c39ebec8
00000006
7d00:
00000000
bf003398
c00aa514
c3867d20
0000a1ff
c00e1448
c39d9f84
c39aabe8
7d20:
c3867d50
c00e1888
c39aabe8
c39ebea0
c39ebec0
bf036ebc
c3000c00
bf036f24
7d40:
0000bec8
01000000
00000000
c39ebea0
c39ebec0
bf036ebc
c3000c00
bf036f24
7d60:
c39ebec8
00000000
00000000
c0223798
c39ebec0
c01daa14
bf036eec
c3867da0
7d80:
c045a4f8
c01da6e4
c39ebec0
00000000
c01daa14
c39ebec0
c3867da0
c01d9870
7da0:
c38331a8
c39fcb94
c005b3b4
c39ebec0
c39ebec0
c39ebef4
00000000
c01da890
7dc0:
c39ebec0
c39ebec0
c3000c00
c01d97f4
00000000
c01d8470
c39ebea0
c3000c68
7de0:
00000000
c3000c68
c3218a00
c3abcd20
00000001
c39ebec0
c39ebea0
c3000c00
7e00:
00000000
c3000c68
c3218a00
c3abcd20
00000001
c0221ee8
00000001
00000000
7e20:
00000000
00000000
00001388
00000000
c3000c04
c3000c68
c3bc29c0
00000001
7e40:
c3bc29c4
00000001
c03f4af8
00000000
c39fe780
c3000c00
00000001
c045ab04
7e60:
c3867eb8
c045a3bc
c3000c70
00000000
00000000
c0229238
c3000c68
c0223210
7e80:
c3000c00
c045aaf0
c045ab04
c0223230
c3000c68
c01daa14
c045ab04
c01da6e4
7ea0:
c3000c68
00000000
c01daa14
c3000c68
c3867eb8
c01d9870
c38331a8
c3862f54
7ec0:
c005b3b4
c3000c68
c3000c68
c3000c9c
00000002
c01da890
c3867ef9
c3000c68
7ee0:
c3829f60
c01d97f4
00000000
c01d8470
c38918e0
c3aaf468
39383102
c300343a
7f00:
00000001
c0219660
c03f1768
c3000c00
00000000
c3000c68
00000002
c3aaf814
7f20:
00000001
00000101
c38918e0
c021b6e0
00000002
00000000
00000000
c3000c00
7f40:
c38917c0
c021c418
00000064
00000064
00000101
c3867f60
c005b920
c3867f94
7f60:
c3891830
c3aaf400
c3866000
c3aaf400
c3aaf800
00000000
c38918e0
c3aaf400
7f80:
00000012
00000000
00000000
c3837920
c00574a0
c3867f94
c3867f94
00000101
7fa0:
01010001
c3867fd4
c381bf48
c3867fd4
c381bf48
00000000
c021ba3c
00000000
7fc0:
00000000
00000000
00000000
c00573dc
00000000
00000000
c3867fd8
c3867fd8
7fe0:
00000000
00000000
00000000
00000000
00000000
c002ce88
00000000
ffff0000
[<
c002fb10
>] (__bug+0x1c/0x28) from [<
c0094088
>] (cache_alloc_refill+0x13c/0x594)
[<
c0094088
>] (cache_alloc_refill+0x13c/0x594) from [<
c0094574
>] (__kmalloc+0x94/0xd0)
[<
c0094574
>] (__kmalloc+0x94/0xd0) from [<
c02a6a84
>] (alloc_netdev_mq+0x48/0x1b0)
[<
c02a6a84
>] (alloc_netdev_mq+0x48/0x1b0) from [<
bf003398
>] (vntwusb_found1+0x58/0x53c [vt6656_stage])
[<
bf003398
>] (vntwusb_found1+0x58/0x53c [vt6656_stage]) from [<
c0223798
>] (usb_probe_interface+0x130/0x180)
[<
c0223798
>] (usb_probe_interface+0x130/0x180) from [<
c01da6e4
>] (driver_probe_device+0xac/0x164)
[<
c01da6e4
>] (driver_probe_device+0xac/0x164) from [<
c01d9870
>] (bus_for_each_drv+0x50/0x90)
[<
c01d9870
>] (bus_for_each_drv+0x50/0x90) from [<
c01da890
>] (device_attach+0x50/0x68)
[<
c01da890
>] (device_attach+0x50/0x68) from [<
c01d97f4
>] (bus_probe_device+0x28/0x54)
[<
c01d97f4
>] (bus_probe_device+0x28/0x54) from [<
c01d8470
>] (device_add+0x3b4/0x4f0)
[<
c01d8470
>] (device_add+0x3b4/0x4f0) from [<
c0221ee8
>] (usb_set_configuration+0x524/0x5b8)
[<
c0221ee8
>] (usb_set_configuration+0x524/0x5b8) from [<
c0229238
>] (generic_probe+0x5c/0xa0)
[<
c0229238
>] (generic_probe+0x5c/0xa0) from [<
c0223230
>] (usb_probe_device+0x48/0x54)
[<
c0223230
>] (usb_probe_device+0x48/0x54) from [<
c01da6e4
>] (driver_probe_device+0xac/0x164)
[<
c01da6e4
>] (driver_probe_device+0xac/0x164) from [<
c01d9870
>] (bus_for_each_drv+0x50/0x90)
[<
c01d9870
>] (bus_for_each_drv+0x50/0x90) from [<
c01da890
>] (device_attach+0x50/0x68)
[<
c01da890
>] (device_attach+0x50/0x68) from [<
c01d97f4
>] (bus_probe_device+0x28/0x54)
[<
c01d97f4
>] (bus_probe_device+0x28/0x54) from [<
c01d8470
>] (device_add+0x3b4/0x4f0)
[<
c01d8470
>] (device_add+0x3b4/0x4f0) from [<
c021b6e0
>] (usb_new_device+0x100/0x174)
[<
c021b6e0
>] (usb_new_device+0x100/0x174) from [<
c021c418
>] (hub_thread+0x9dc/0xeec)
[<
c021c418
>] (hub_thread+0x9dc/0xeec) from [<
c00573dc
>] (kthread+0x78/0x80)
[<
c00573dc
>] (kthread+0x78/0x80) from [<
c002ce88
>] (kernel_thread_exit+0x0/0x8)
Code:
e1a01000
e59f000c
eb005014
e3a03000
(
e5833000
)
---[ end trace
2a51e0dbab9e4fbe
]---
note: khubd[152] exited with preempt_count 1
Signed-off-by: miaofng <miaofng@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/vt6656/main_usb.c
patch
|
blob
|
history
diff --git
a/drivers/staging/vt6656/main_usb.c
b/drivers/staging/vt6656/main_usb.c
index 7f96bcaf1c601a8fa99d54ce10ed9d1aa0566c11..05186110c0294ce3218074a57216ed923754da3d 100644
(file)
--- a/
drivers/staging/vt6656/main_usb.c
+++ b/
drivers/staging/vt6656/main_usb.c
@@
-1332,7
+1332,6
@@
device_release_WPADEV(pDevice);
free_netdev(pDevice->dev);
}
- kfree(pDevice);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_disconnect3.. \n");
}