nixiaoming
c79dde629d
tty fix oops when rmmod 8250
...
After rmmod 8250.ko
tty_kref_put starts kwork (release_one_tty) to release proc interface
oops when accessing driver->driver_name in proc_tty_unregister_driver
Use jprobe, found driver->driver_name point to 8250.ko
static static struct uart_driver serial8250_reg
.driver_name= serial,
Use name in proc_dir_entry instead of driver->driver_name to fix oops
test on linux 4.1.12:
BUG: unable to handle kernel paging request at ffffffffa01979de
IP: [<ffffffff81310f40>] strchr+0x0/0x30
PGD 1a0d067 PUD 1a0e063 PMD 851c1f067 PTE 0
Oops: 0000 [#1 ] PREEMPT SMP
Modules linked in: ... ... [last unloaded: 8250]
CPU: 7 PID: 116 Comm: kworker/7:1 Tainted: G O 4.1.12 #1
Hardware name: Insyde RiverForest/Type2 - Board Product Name1, BIOS NE5KV904 12/21/2015
Workqueue: events release_one_tty
task: ffff88085b684960 ti: ffff880852884000 task.ti: ffff880852884000
RIP: 0010:[<ffffffff81310f40>] [<ffffffff81310f40>] strchr+0x0/0x30
RSP: 0018:ffff880852887c90 EFLAGS: 00010282
RAX: ffffffff81a5eca0 RBX: ffffffffa01979de RCX: 0000000000000004
RDX: ffff880852887d10 RSI: 000000000000002f RDI: ffffffffa01979de
RBP: ffff880852887cd8 R08: 0000000000000000 R09: ffff88085f5d94d0
R10: 0000000000000195 R11: 0000000000000000 R12: ffffffffa01979de
R13: ffff880852887d00 R14: ffffffffa01979de R15: ffff88085f02e840
FS: 0000000000000000(0000) GS:ffff88085f5c0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffa01979de CR3: 0000000001a0c000 CR4: 00000000001406e0
Stack:
ffffffff812349b1 ffff880852887cb8 ffff880852887d10 ffff88085f5cd6c2
ffff880852800a80 ffffffffa01979de ffff880852800a84 0000000000000010
ffff88085bb28bd8 ffff880852887d38 ffffffff812354f0 ffff880852887d08
Call Trace:
[<ffffffff812349b1>] ? __xlate_proc_name+0x71/0xd0
[<ffffffff812354f0>] remove_proc_entry+0x40/0x180
[<ffffffff815f6811>] ? _raw_spin_lock_irqsave+0x41/0x60
[<ffffffff813be520>] ? destruct_tty_driver+0x60/0xe0
[<ffffffff81237c68>] proc_tty_unregister_driver+0x28/0x40
[<ffffffff813be548>] destruct_tty_driver+0x88/0xe0
[<ffffffff813be5bd>] tty_driver_kref_put+0x1d/0x20
[<ffffffff813becca>] release_one_tty+0x5a/0xd0
[<ffffffff81074159>] process_one_work+0x139/0x420
[<ffffffff810745a1>] worker_thread+0x121/0x450
[<ffffffff81074480>] ? process_scheduled_works+0x40/0x40
[<ffffffff8107a16c>] kthread+0xec/0x110
[<ffffffff81080000>] ? tg_rt_schedulable+0x210/0x220
[<ffffffff8107a080>] ? kthread_freezable_should_stop+0x80/0x80
[<ffffffff815f7292>] ret_from_fork+0x42/0x70
[<ffffffff8107a080>] ? kthread_freezable_should_stop+0x80/0x80
Signed-off-by: nixiaoming <nixiaoming@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-10-20 14:06:45 +02:00
arch
Merge 4.14-rc4 into tty-next
2017-10-09 09:05:05 +02:00
block
bsg-lib: fix use-after-free under memory-pressure
2017-10-04 08:35:04 -06:00
certs
modsign: add markers to endif-statements in certs/Makefile
2017-07-14 11:01:37 +10:00
crypto
crypto: af_alg - update correct dst SGL entry
2017-09-20 17:42:42 +08:00
Documentation
Merge 4.14-rc4 into tty-next
2017-10-09 09:05:05 +02:00
drivers
serial: 8250: Preserve DLD[7:4] for PORT_XR17V35X
2017-10-20 14:06:45 +02:00
firmware
firmware: Restore support for built-in firmware
2017-09-16 10:58:48 -07:00
fs
tty fix oops when rmmod 8250
2017-10-20 14:06:45 +02:00
include
Merge 4.14-rc4 into tty-next
2017-10-09 09:05:05 +02:00
init
Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-09-14 18:54:01 -07:00
ipc
fix a typo in put_compat_shm_info()
2017-09-25 20:41:46 -04:00
kernel
Merge branch 'core-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-10-06 08:36:41 -07:00
lib
lib/ratelimit.c: use deferred printk() version
2017-10-03 17:54:26 -07:00
mm
mm/memory_hotplug: define find_{smallest|biggest}_section_pfn as unsigned long
2017-10-03 17:54:26 -07:00
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-10-05 08:40:09 -07:00
samples
media updates for v4.14-rc1
2017-09-07 12:53:14 -07:00
scripts
checkpatch: fix ignoring cover-letter logic
2017-10-03 17:54:26 -07:00
security
lsm: fix smack_inode_removexattr and xattr_getsecurity memleak
2017-10-04 18:03:15 +11:00
sound
sound fixes for 4.14-rc4
2017-10-05 10:39:29 -07:00
tools
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-10-01 12:06:31 -07:00
usr
ramfs: clarify help text that compression applies to ramfs as well as legacy ramdisk.
2017-07-06 16:24:30 -07:00
virt
Revert "KVM: Don't accept obviously wrong gsi values via KVM_IRQFD"
2017-09-19 08:37:17 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
kbuild: Add support to generate LLVM assembly files
2017-04-25 08:13:52 +09:00
.mailmap
Update James Hogan's email address
2017-10-04 17:11:53 -07:00
COPYING
CREDITS
selinux/stable-4.14 PR 20170831
2017-09-12 13:21:00 -07:00
Kbuild
kbuild: Consolidate header generation from ASM offset information
2017-04-13 05:43:37 +09:00
Kconfig
MAINTAINERS
ARC udpates for 4.14-rc4
2017-10-06 15:57:08 -07:00
Makefile
Linux 4.14-rc4
2017-10-08 20:53:29 -07:00
README
README: add a new README file, pointing to the Documentation/
2016-10-24 08:12:35 -02:00