[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20130828061450.GA3365@localhost>
Date: Wed, 28 Aug 2013 14:14:50 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: fengguang.wu@...el.com, Russell King <rmk+kernel@....linux.org.uk>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org
Subject: [fourport_init] BUG: unable to handle kernel
Greetings,
FYI, one more bug triggered by
commit c817a67ecba7c3c2aaa104796d78f160af60920d
Author: Russell King <rmk+kernel@....linux.org.uk>
Date: Thu Jun 27 15:06:14 2013 +0100
kobject: delayed kobject release: help find buggy drivers
Implement debugging for kobject release functions. kobjects are
reference counted, so the drop of the last reference to them is not
predictable. However, the common case is for the last reference to be
the kobject's removal from a subsystem, which results in the release
function being immediately called.
This can hide subtle bugs, which can occur when another thread holds a
reference to the kobject at the same time that a kobject is removed.
This results in the release method being delayed.
In order to make these kinds of problems more visible, the following
patch implements a delayed release; this has the effect that the
release function will be out of order with respect to the removal of
the kobject in the same manner that it would be if a reference was
being held.
This provides us with an easy way to allow driver writers to debug
their drivers and fix otherwise hidden problems.
Signed-off-by: Russell King <rmk+kernel@....linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
[ 5.301612] WARNING: CPU: 0 PID: 1 at lib/list_debug.c:33 __list_add+0x44/0x78()
[ 5.302790] list_add corruption. prev->next should be next (79a162d8), but was (null). (prev=87b10ce8).
[ 5.304127] Modules linked in:
[ 5.304127] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.11.0-rc6-next-20130822-07070-g245f086 #1
[ 5.304127] 00000000 00000000 78049b7c 7951d86a 79724a8f 78049b94 79022c48 791fb32e
[ 5.304127] 87b10ce8 79a162d8 87b79888 78049bac 79022c85 00000009 78049ba4 79724a8f
[ 5.304127] 78049bc0 78049bd8 791fb32e 79724a65 00000021 79724a8f 79a162d8 00000000
[ 5.304127] Call Trace:
[ 5.304127] [<7951d86a>] dump_stack+0x4b/0x66
[ 5.304127] [<79022c48>] warn_slowpath_common+0x5c/0x73
[ 5.304127] [<791fb32e>] ? __list_add+0x44/0x78
[ 5.304127] [<79022c85>] warn_slowpath_fmt+0x26/0x2a
[ 5.304127] [<791fb32e>] __list_add+0x44/0x78
[ 5.304127] [<79028bb8>] __internal_add_timer+0x97/0x9b
[ 5.304127] [<79028bca>] internal_add_timer+0xe/0x26
[ 5.304127] [<79028e13>] __mod_timer+0xa2/0xb7
[ 5.304127] [<79028f3b>] mod_timer+0x5d/0x6c
[ 5.304127] [<79028f5c>] add_timer+0x12/0x14
[ 5.304127] [<79030eb5>] __queue_delayed_work+0xca/0xe4
[ 5.304127] [<79032361>] queue_delayed_work_on+0x42/0x71
[ 5.304127] [<791e26db>] kobject_release+0x6a/0x72
[ 5.304127] [<791e2724>] kobject_put+0x41/0x46
[ 5.304127] [<791e278e>] kobject_del+0x25/0x2f
[ 5.304127] [<79331f66>] device_del+0x132/0x13e
[ 5.304127] [<79331f7d>] device_unregister+0xb/0x15
[ 5.304127] [<79331fd9>] device_destroy+0x2c/0x31
[ 5.304127] [<7928f4f8>] tty_unregister_device+0x1f/0x37
[ 5.304127] [<7929b9aa>] uart_remove_one_port+0x9a/0xe7
[ 5.304127] [<7929e030>] serial8250_register_8250_port+0xc1/0x235
[ 5.304127] [<7929e353>] serial8250_probe+0xfc/0x142
[ 5.304127] [<793356bc>] platform_drv_probe+0x29/0x4b
[ 5.304127] [<7933461f>] driver_probe_device+0x88/0x17b
[ 5.304127] [<7933472e>] __device_attach+0x1c/0x2c
[ 5.304127] [<79333118>] bus_for_each_drv+0x38/0x6b
[ 5.304127] [<7933455e>] device_attach+0x63/0x83
[ 5.304127] [<79334712>] ? driver_probe_device+0x17b/0x17b
[ 5.304127] [<79333cf2>] bus_probe_device+0x25/0x84
[ 5.304127] [<7933267a>] device_add+0x3ac/0x559
[ 5.304127] [<791e2be5>] ? kobject_set_name_vargs+0x3d/0x4a
[ 5.304127] [<79331676>] ? dev_set_name+0x14/0x16
[ 5.304127] [<7933551e>] platform_device_add+0x10f/0x173
[ 5.304127] [<793359d5>] platform_device_register+0x1c/0x1f
[ 5.304127] [<7989242e>] ? setup_early_serial8250_console+0x35d/0x35d
[ 5.304127] [<7989243b>] fourport_init+0xd/0xf
[ 5.304127] [<790003da>] do_one_initcall+0x6b/0xec
[ 5.304127] [<79875400>] ? do_early_param+0x62/0x75
[ 5.304127] [<790355b8>] ? parse_args+0x16a/0x20b
[ 5.304127] [<798759fc>] kernel_init_freeable+0xd8/0x15d
[ 5.304127] [<79517fd0>] kernel_init+0x8/0xb4
[ 5.304127] [<79529e77>] ret_from_kernel_thread+0x1b/0x28
[ 5.304127] [<79517fc8>] ? rest_init+0x118/0x118
[ 5.304127] ---[ end trace c47ce39591a41369 ]---
git bisect start 5e8d1acd05687720cbb0b08975eacb7588fdfc42 v3.10 --
git bisect good 8cbd0eefcaf8cc32ded2bf229f0fc379b2ad69f2 # 15:38 55+ Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
git bisect good 60a2b977533c312d271563d955ef7b8e35a6aa38 # 16:37 55+ Merge remote-tracking branch 'infiniband/for-next'
git bisect bad 4a225b466e040a70e7d12b159d2a36da1c2ef7dc # 16:52 0- next-20130821/driver-core
git bisect good 98246c1ae6f18fe1b710cdff687b6b7077f739c9 # 17:53 55+ Merge remote-tracking branch 'virtio/virtio-next'
git bisect good 38136c1f1471c7dcbe889beb790cc4d331e9d3ad # 19:08 55+ Merge remote-tracking branch 'spi/for-next'
git bisect good dc098b35b56f83ae088e4291a4e389a6ff126965 # 21:55 55+ perf list: List kernel supplied event aliases
git bisect good 11d307c36abf44df12c3171692bd12e2ed47d291 # 00:56 55+ manual merge of x86/jumplabel
git bisect good 93d6294dfcdff81194086ed9bd6ceca3bc5e5863 # 04:00 55+ Merge remote-tracking branch 'kvm-ppc/kvm-ppc-next'
git bisect good c57e8c89b271af4ef914c439effffed53c39434c # 04:39 55+ Merge remote-tracking branch 'leds/for-next'
git bisect bad 76f411fb3a62711de7f59e0f4c56456fe356675a # 04:48 0- x86 / cpu topology: remove the stale macro arch_provides_topology_pointers
git bisect bad d79fd03fd651bd91a081fc97f5f0d221557f8cbb # 05:06 0- video: backlight: lcd: convert class code to use dev_groups
git bisect good ac3785d5c15922c8a4c6b9e050a5bc59895a6b9b # 05:53 55+ c2port: convert class code to use bin_attrs in groups
git bisect bad 58b267d3e3f3ce87c3e559e4c330c8c03e905f5e # 06:03 1- dma: convert dma_devclass to use dev_groups
git bisect good 7c42721fe0c58a848849b43ff558cf2fb86aa35a # 09:33 55+ char: tile-srom: fix build error
git bisect bad c817a67ecba7c3c2aaa104796d78f160af60920d # 09:40 0- kobject: delayed kobject release: help find buggy drivers
git bisect good 7c42721fe0c58a848849b43ff558cf2fb86aa35a # 10:28 165+ char: tile-srom: fix build error
git bisect bad 245f08699d5320f021070ed8698ac89ebf2f0670 # 10:28 0- Add linux-next specific files for 20130822
git bisect good 4bd5950280e4278c7f10726a53bdc9b6ad8dcd32 # 12:17 165+ Revert "kobject: delayed kobject release: help find buggy drivers"
git bisect good fa8218def1b1a16f0a410e2c1c767b4738cc81fa # 13:50 165+ Merge tag 'regmap-v3.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
git bisect bad e4a745f9519ef2bbb9d75212ae1cca7582d76266 # 14:02 2- Add linux-next specific files for 20130827
Thanks,
Fengguang
View attachment "dmesg-kvm-cairo-5533-20130827130110-3.11.0-rc7-00732-ge6ed952-87" of type "text/plain" (59063 bytes)
Download attachment "bisect-245f08699d5320f021070ed8698ac89ebf2f0670-i386-randconfig-j4-08271056-BUG:-unable-to-handle-kernel-28083.log" of type "application/octet-stream" (69087 bytes)
View attachment "config-3.11.0-rc6-next-20130822-07070-g245f086" of type "text/plain" (84860 bytes)
Powered by blists - more mailing lists