[dm-devel] [PATCH] fix rmmod oops

Mike Christie mikenc at us.ibm.com
Wed Nov 26 08:41:01 UTC 2003


I am running 2.6.0-test9-udm5. When I do a rmmod of dm-mirror and dm-mod
I get the following oops:

Nov 24 02:35:14 minna kernel: device-mapper: 4.0.0-ioctl (2003-06-04)
initialised: dm at uk.sistina.com
Nov 24 02:35:59 minna kernel: device-mapper: cleaned up
Nov 24 02:35:59 minna kernel: Unable to handle kernel paging request at
virtual address d09bdca6
Nov 24 02:35:59 minna kernel:  printing eip:
Nov 24 02:35:59 minna kernel: d09bdca6
Nov 24 02:35:59 minna kernel: *pde = 013e0067
Nov 24 02:35:59 minna kernel: *pte = 00000000
Nov 24 02:35:59 minna kernel: Oops: 0000 [#1]
Nov 24 02:35:59 minna kernel: CPU:    0
Nov 24 02:35:59 minna kernel: EIP:    0060:[<d09bdca6>]    Not tainted
Nov 24 02:35:59 minna kernel: EFLAGS: 00010246
Nov 24 02:35:59 minna kernel: EIP is at 0xd09bdca6
Nov 24 02:35:59 minna kernel: eax: 00000000   ebx: c72fa000   ecx:
d09c2810   edx: d09c2834
Nov 24 02:35:59 minna kernel: esi: d09c27e0   edi: ffffe000   ebp:
c72fbfc0   esp: c72fbf98
Nov 24 02:35:59 minna kernel: ds: 007b   es: 007b   ss: 0068
Nov 24 02:35:59 minna kernel: Process kcopyd (pid: 1675,
threadinfo=c72fa000 task=c80e3330)
Nov 24 02:35:59 minna kernel: Stack: d09be011 00000077 00000000 c80e3330
c0121070 00000000 00000000 00000001
Nov 24 02:35:59 minna kernel:        c7bcfeec c0109a42 00000000 c80e3330
c0121070 00100100 00200200 00000000
Nov 24 02:35:59 minna kernel:        00000000 00000000 d09bd9d0 00000000
00000000 00000000 c0107349 d09c27e0
Nov 24 02:35:59 minna kernel: Call Trace:
Nov 24 02:35:59 minna kernel:  [<c0121070>] default_wake_function+0x0/0x30
Nov 24 02:35:59 minna kernel:  [<c0109a42>] ret_from_fork+0x6/0x14
Nov 24 02:35:59 minna kernel:  [<c0121070>] default_wake_function+0x0/0x30
Nov 24 02:35:59 minna kernel:  [<c0107349>] kernel_thread_helper+0x5/0xc
Nov 24 02:35:59 minna kernel:
Nov 24 02:35:59 minna kernel: Code:  Bad EIP value.


The attached patch (rmmod_daemon.patch) fixes this by replacing the
semaphores with completions, and uses complete_and_exit() to make
sure the daemon thread is completely broken down before exiting the 
module (complete() passes 1 for the sync variable to __wake_up_common() 
where up() passes zero).

The patch was built and tested against 2.6.0-test9-udm5.


Mike Christie
mikenc at us.ibm.com

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rmmod_daemon.patch
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20031126/dc37a029/attachment.ksh>


More information about the dm-devel mailing list