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
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