On Sat, May 11, 2013 at 3:26 PM, richard -rw- weinberger
<richard.weinber...@gmail.com> wrote:
> On Sat, May 11, 2013 at 3:19 PM, Toralf Förster <toralf.foers...@gmx.de> 
> wrote:
>> On 05/11/2013 02:27 PM, richard -rw- weinberger wrote:
>>> On Sat, May 11, 2013 at 2:26 PM, richard -rw- weinberger
>>> <richard.weinber...@gmail.com> wrote:
>>>> On Sat, May 11, 2013 at 1:01 PM, Sergei Trofimovic>> Toralf, please use 
>>>> the attached patch.
>>>> Maybe it helps us.
>>>> In theory we call kmalloc() with at most PAGE_SIZE, which is okay.
>>>
>>> fixing -ENOATTACHMENT...
>>
>> applying that patch on top of Linus' tree (v3.9-12555-g2dbd3ca) gives :
>>
>>
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 5
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 5
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 12
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 12
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 12
>> 2013-05-11T15:15:37.166+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 12
>> 2013-05-11T15:15:37.000+02:00 trinity haveged: haveged starting up
>> 2013-05-11T15:15:37.000+02:00 trinity haveged: haveged: Completed tot 
>> procedure B after 1171643 bytes
>> 2013-05-11T15:15:38.000+02:00 trinity dhcpcd[777]: version 5.6.4 starting
>> 2013-05-11T15:15:38.000+02:00 trinity dhcpcd[777]: ipv6_open: Address family 
>> not supported by protocol
>> 2013-05-11T15:15:38.000+02:00 trinity haveged: haveged: Completed tot 
>> procedure A after 1035716 bytes
>> 2013-05-11T15:15:38.000+02:00 trinity haveged: haveged: version: 1.5; arch: 
>> x86; vendor: GenuineIntel; cores: 1/1, buffer: 128
>> 2013-05-11T15:15:38.000+02:00 trinity haveged: haveged: d_cache: 32K 
>> (000020), i_cache: 32K (000020), i_index: 19/40, i_size: 32653/60731
>> 2013-05-11T15:15:38.000+02:00 trinity haveged: haveged: tot tests: BA8, 
>> continuous tests: B
>> 2013-05-11T15:15:38.000+02:00 trinity haveged: haveged: Completed continuous 
>> procedure B after 1171643 bytes
>> 2013-05-11T15:15:38.000+02:00 trinity dhcpcd[777]: eth0: rebinding lease of 
>> 192.168.1.63
>> 2013-05-11T15:15:38.000+02:00 trinity dhcpcd[777]: eth0: acknowledged 
>> 192.168.1.63 from 192.168.0.254
>> 2013-05-11T15:15:38.000+02:00 trinity dhcpcd[777]: eth0: checking for 
>> 192.168.1.63
>> 2013-05-11T15:15:43.000+02:00 trinity dhcpcd[777]: eth0: leased 192.168.1.63 
>> for infinity
>> 2013-05-11T15:15:43.000+02:00 trinity dhcpcd[777]: forked to background, 
>> child pid 811
>> 2013-05-11T15:15:44.000+02:00 trinity cron[855]: (CRON) STARTUP (V5.0)
>> 2013-05-11T15:15:44.944+02:00 trinity kernel: Virtual console 1 assigned 
>> device '/dev/pts/6'
>> 2013-05-11T15:16:01.000+02:00 trinity sshd[874]: pam_unix(sshd:session): 
>> session opened for user tfoerste by (uid=0)
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 1
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 1
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 25
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 25
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: -14
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: ------------[ cut here 
>> ]------------
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: WARNING: at 
>> mm/slab_common.c:376 kmalloc_slab+0x33/0x80()
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: CPU: 0 PID: 880 Comm: 
>> trinity-child0 Not tainted 3.9.0-12555-g2dbd3ca-dirty #1
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: 40db7da0 40db7dcc 0807bfca 
>> 083d3e6c 083d8623 00000178 080e1273 080e1273
>> 2013-05-11T15:16:02.827+02:00 trinity kernel: ffffffea 000000d0 00001000 
>> 40db7ddc 0807c093 00000009 00000000 40db7df0
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 080e1273 083d8623 00000178 
>> 00000000 40db7e14 080fac7b fffffff2 000000d0 40db7d74:  [<08060cff>] 
>> show_stack+0xcf/0x100
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7d98:  [<0835d63a>] 
>> dump_stack+0x26/0x28
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7da8:  [<0807bfca>] 
>> warn_slowpath_common+0x5a/0x80
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7dd0:  [<0807c093>] 
>> warn_slowpath_null+0x23/0x30
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7de0:  [<080e1273>] 
>> kmalloc_slab+0x33/0x80
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7df4:  [<080fac7b>] 
>> __kmalloc_track_caller+0x1b/0x110
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7e18:  [<080de1a6>] 
>> memdup_user+0x26/0x70
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7e34:  [<080de3de>] 
>> strndup_user_debug+0x6e/0xb0
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7e58:  [<0811dd48>] 
>> copy_mount_string+0x38/0x50
>> 2013-05-11T15:16:02.835+02:00 trinity kernel: 40db7e70:  [<0811e760>] 
>> SyS_mount+0x30/0xf0
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: 40db7eac:  [<08062ac2>] 
>> handle_syscall+0x82/0xb0
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: 40db7ef4:  [<0807519d>] 
>> userspace+0x46d/0x590
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: 40db7fec:  [<0805f7fc>] 
>> fork_handler+0x6c/0x70
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: 40db7ffc:  [<00000000>] 0x0
>> 2013-05-11T15:16:02.842+02:00 trinity kernel:
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: ---[ end trace 
>> 06fc96a70dca162e ]---
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: -14
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: -14
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: -14
>> 2013-05-11T15:16:02.842+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 16
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 16
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 1
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 1
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: 70
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: 70
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: 
>> strnlen_user() returned: -14
>> 2013-05-11T15:16:02.850+02:00 trinity kernel: strndup_user_debug: calling 
>> memdup_user() with length: -14
>>
>> --
>> MfG/Sincerely
>> Toralf Förster
>> pgp finger print: 7B1A 07F4 EC82 0F90 D4C2 8936 872A E508 7DB6 9DA3
>
> Does the attached patch fix the problem?

Found the real problem, UML's strnlen_user() is broken.
Please test the attached patch.

--
Thanks,
//richard

Attachment: um_strnlen_user.patch
Description: Binary data

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to