Netdev List
 help / color / mirror / Atom feed
* [PATCH] checkpatch: Improve network block comment style checking
From: Joe Perches @ 2012-10-14 19:35 UTC (permalink / raw)
  To: Larry Finger, Andrew Morton; +Cc: Andy Whitcroft, LKML, netdev
In-Reply-To: <50787432.8030805@lwfinger.net>

Some comment styles in net and drivers/net are flagged inappropriately.

Avoid proclaiming inline comments like:
	int a = b;	/* some comment */
and block comments like:
	/*********************
	 * some comment
	 ********************/
are defective.

Tested with
$ cat drivers/net/t.c
/* foo */

/*
 * foo
 */

/* foo
 */

/* foo
 * bar */

/****************************
 * some long block comment
 ***************************/

struct foo {
	int bar;	/* another test */
};
$

Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Joe Perches <joe@perches.com>
---
 scripts/checkpatch.pl |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 21a9f5d..f18750e 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1890,8 +1890,10 @@ sub process {
 		}
 
 		if ($realfile =~ m@^(drivers/net/|net/)@ &&
-		    $rawline !~ m@^\+[ \t]*(\/\*|\*\/)@ &&
-		    $rawline =~ m@^\+[ \t]*.+\*\/[ \t]*$@) {
+		    $rawline !~ m@^\+[ \t]*\*/[ \t]*$@ &&	#trailing */
+		    $rawline !~ m@^\+.*/\*.*\*/[ \t]*$@ &&	#inline /*...*/
+		    $rawline !~ m@^\+.*\*{2,}/[ \t]*$@ &&	#trailing **/
+		    $rawline =~ m@^\+[ \t]*.+\*\/[ \t]*$@) {	#non blank */
 			WARN("NETWORKING_BLOCK_COMMENT_STYLE",
 			     "networking block comments put the trailing */ on a separate line\n" . $herecurr);
 		}

^ permalink raw reply related

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 19:48 UTC (permalink / raw)
  To: Eric Dumazet, netdev
In-Reply-To: <1350242941.21172.17023.camel@edumazet-glaptop>

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> On Sun, 2012-10-14 at 17:38 +0200, Jan Hinnerk Stosch wrote:
>> Hi,
>> I detected a small regression since linux 3.6.0:
>> When I run "ntpq -p" to query the status of my ntp-daemon I receive a
>> timeout (localhost.localdomain: timed out, nothing received
>> ***Request timed out). Strace shows that connecting to the ipv6
>> loopback interface times out. If I explicitly use ipv4 (ntpq -4 -p)
>> everything works as intended. Downgrading to linux 3.5.6 solves that
>> issue.
>> I reported a bug both to my distribution
>> (https://bugs.archlinux.org/task/31775) and to the kernel bugtracker
>> (https://bugzilla.kernel.org/show_bug.cgi?id=48741) not knowing
>> exactly which component caused the regression, so I was told to ask
>> this here. At the kernel-report you find an strace and tcpdump output.
>> If you need any further information just tell me, but be patient as me
>> kernel knowledge tends to zero.
>> Thanks in advance, Jan Hinnerk
>> --
>
>
> What gives :
>
> cat /etc/ntp.conf
> lsof -p `pidof ntpd`
> ntpq -p ::1
>
>
>

ntp.conf is (without comments):
server fritz.box iburst
restrict default noquery nopeer nomodify
restrict 127.0.0.1
restrict ::1
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log

"lsof -p `pidof ntpd`" gives nothing

and "ntpq -p ::1" results in the same timeout error "::1: timed out,
nothing received
***Request timed out".

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 19:54 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot7BQqob=V9MEDSFnmCCNsxgjghC5e3NuQonqY8GCkV1Og@mail.gmail.com>

On Sun, 2012-10-14 at 21:48 +0200, Jan Hinnerk Stosch wrote:

> ntp.conf is (without comments):
> server fritz.box iburst
> restrict default noquery nopeer nomodify
> restrict 127.0.0.1
> restrict ::1
> driftfile /var/lib/ntp/ntp.drift
> logfile /var/log/ntp.log
> 
> "lsof -p `pidof ntpd`" gives nothing
> 
> and "ntpq -p ::1" results in the same timeout error "::1: timed out,
> nothing received
> ***Request timed out".

So your ntpd is not running ?

ps aux | grep ntpd

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 19:57 UTC (permalink / raw)
  To: Eric Dumazet, netdev
In-Reply-To: <1350244485.21172.17077.camel@edumazet-glaptop>

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> On Sun, 2012-10-14 at 21:48 +0200, Jan Hinnerk Stosch wrote:
>
>> ntp.conf is (without comments):
>> server fritz.box iburst
>> restrict default noquery nopeer nomodify
>> restrict 127.0.0.1
>> restrict ::1
>> driftfile /var/lib/ntp/ntp.drift
>> logfile /var/log/ntp.log
>>
>> "lsof -p `pidof ntpd`" gives nothing
>>
>> and "ntpq -p ::1" results in the same timeout error "::1: timed out,
>> nothing received
>> ***Request timed out".
>
> So your ntpd is not running ?
>
> ps aux | grep ntpd
>
>
>

No, of course it is running:
ntp        368  0.0  0.0  31288  2128 ?        Ss   16:51   0:00
/usr/bin/ntpd -g -u ntp:ntp

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 20:25 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot7wZAqqQForAe-9aLnALqm1LdeaEv+ZKqiw3V_DCfqjRw@mail.gmail.com>

On Sun, 2012-10-14 at 21:57 +0200, Jan Hinnerk Stosch wrote:
> 2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> > On Sun, 2012-10-14 at 21:48 +0200, Jan Hinnerk Stosch wrote:
> >
> >> ntp.conf is (without comments):
> >> server fritz.box iburst
> >> restrict default noquery nopeer nomodify
> >> restrict 127.0.0.1
> >> restrict ::1
> >> driftfile /var/lib/ntp/ntp.drift
> >> logfile /var/log/ntp.log
> >>
> >> "lsof -p `pidof ntpd`" gives nothing
> >>
> >> and "ntpq -p ::1" results in the same timeout error "::1: timed out,
> >> nothing received
> >> ***Request timed out".
> >
> > So your ntpd is not running ?
> >
> > ps aux | grep ntpd
> >
> >
> >
> 
> No, of course it is running:
> ntp        368  0.0  0.0  31288  2128 ?        Ss   16:51   0:00
> /usr/bin/ntpd -g -u ntp:ntp


Hmm

pidof ntpd

should give you the pid of ntpd process : 368

So try 

lsof -p 368  # instead of lsof -p `pidof ntpd`

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 20:26 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <1350246314.21172.17139.camel@edumazet-glaptop>

On Sun, 2012-10-14 at 22:25 +0200, Eric Dumazet wrote:

> 
> Hmm
> 
> pidof ntpd
> 
> should give you the pid of ntpd process : 368
> 
> So try 
> 
> lsof -p 368  # instead of lsof -p `pidof ntpd`

Also post :

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 20:28 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <1350246414.21172.17144.camel@edumazet-glaptop>

On Sun, 2012-10-14 at 22:27 +0200, Eric Dumazet wrote:

> Also post :
> 

# grep Udp6 /proc/net/snmp6

Before and after your "ntpq -p" try

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 20:39 UTC (permalink / raw)
  To: Eric Dumazet, netdev
In-Reply-To: <1350246481.21172.17147.camel@edumazet-glaptop>

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> On Sun, 2012-10-14 at 22:27 +0200, Eric Dumazet wrote:
>
>> Also post :
>>
>
> # grep Udp6 /proc/net/snmp6
>
> Before and after your "ntpq -p" try
>
>

Sorry, my fault. I executed the command as user not root:
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system
/run/user/1000/gvfs
      Output information may be incomplete.
COMMAND PID USER   FD      TYPE             DEVICE SIZE/OFF   NODE NAME
ntpd    368  ntp  cwd       DIR                8,2     4096      2 /
ntpd    368  ntp  rtd       DIR                8,2     4096      2 /
ntpd    368  ntp  txt       REG                8,2   582944 418889 /usr/bin/ntpd
ntpd    368  ntp  mem       REG                8,2    84832 396501
/usr/lib/libresolv-2.16.so
ntpd    368  ntp  mem       REG                8,2    22936 396440
/usr/lib/libnss_dns-2.16.so
ntpd    368  ntp  mem       REG                8,2    52136 396470
/usr/lib/libnss_files-2.16.so
ntpd    368  ntp  mem       REG                8,2    18760 400111
/usr/lib/libattr.so.1.1.0
ntpd    368  ntp  mem       REG                8,2   137998 396481
/usr/lib/libpthread-2.16.so
ntpd    368  ntp  mem       REG                8,2    88656 399537
/usr/lib/libz.so.1.2.7
ntpd    368  ntp  mem       REG                8,2    14648 396487
/usr/lib/libdl-2.16.so
ntpd    368  ntp  mem       REG                8,2  2009849 396474
/usr/lib/libc-2.16.so
ntpd    368  ntp  mem       REG                8,2    16776 400227
/usr/lib/libcap.so.2.22
ntpd    368  ntp  mem       REG                8,2    31760 396469
/usr/lib/librt-2.16.so
ntpd    368  ntp  mem       REG                8,2  2392233 405328
/usr/lib/libcrypto.so.1.0.0
ntpd    368  ntp  mem       REG                8,2  1022344 396456
/usr/lib/libm-2.16.so
ntpd    368  ntp  mem       REG                8,2   165344 396512
/usr/lib/ld-2.16.so
ntpd    368  ntp    0u      CHR                1,3      0t0   1028 /dev/null
ntpd    368  ntp    1u      CHR                1,3      0t0   1028 /dev/null
ntpd    368  ntp    2u      CHR                1,3      0t0   1028 /dev/null
ntpd    368  ntp    3u     unix 0xffff880214dfbb80      0t0  11432 socket
ntpd    368  ntp    5w      REG                8,2        0 664219
/var/log/ntp.log
ntpd    368  ntp   16u     IPv4              10453      0t0    UDP *:ntp
ntpd    368  ntp   17u     IPv6              10454      0t0    UDP *:ntp
ntpd    368  ntp   18u     IPv4              10460      0t0    UDP
localhost.localdomain:ntp
ntpd    368  ntp   19u     IPv4              10461      0t0    UDP
hinniepc.fritz.box:ntp
ntpd    368  ntp   20u     IPv6               8775      0t0    UDP
[fe80::922b:34ff:fe33:c292]:ntp
ntpd    368  ntp   21u  netlink                         0t0  10463 ROUTE

and here is "grep Udp6 /proc/net/snmp6" before:
Udp6InDatagrams                 	19
Udp6NoPorts                     	0
Udp6InErrors                    	0
Udp6OutDatagrams                	19
Udp6RcvbufErrors                	0
Udp6SndbufErrors                	0

and after running "ntpq -p":
Udp6InDatagrams                 	21
Udp6NoPorts                     	0
Udp6InErrors                    	0
Udp6OutDatagrams                	21
Udp6RcvbufErrors                	0
Udp6SndbufErrors                	0

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 20:45 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot5xZevtZcCS37h9HR4Zkj_Q4ny_sj+NX7oYEvazAQjxLQ@mail.gmail.com>

On Sun, 2012-10-14 at 22:39 +0200, Jan Hinnerk Stosch wrote:
> 2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> > On Sun, 2012-10-14 at 22:27 +0200, Eric Dumazet wrote:
> >
> >> Also post :
> >>
> >
> > # grep Udp6 /proc/net/snmp6
> >
> > Before and after your "ntpq -p" try
> >
> >
> 
> Sorry, my fault. I executed the command as user not root:
> lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system
> /run/user/1000/gvfs
>       Output information may be incomplete.
> COMMAND PID USER   FD      TYPE             DEVICE SIZE/OFF   NODE NAME
> ntpd    368  ntp  cwd       DIR                8,2     4096      2 /
> ntpd    368  ntp  rtd       DIR                8,2     4096      2 /
> ntpd    368  ntp  txt       REG                8,2   582944 418889 /usr/bin/ntpd
> ntpd    368  ntp  mem       REG                8,2    84832 396501
> /usr/lib/libresolv-2.16.so
> ntpd    368  ntp  mem       REG                8,2    22936 396440
> /usr/lib/libnss_dns-2.16.so
> ntpd    368  ntp  mem       REG                8,2    52136 396470
> /usr/lib/libnss_files-2.16.so
> ntpd    368  ntp  mem       REG                8,2    18760 400111
> /usr/lib/libattr.so.1.1.0
> ntpd    368  ntp  mem       REG                8,2   137998 396481
> /usr/lib/libpthread-2.16.so
> ntpd    368  ntp  mem       REG                8,2    88656 399537
> /usr/lib/libz.so.1.2.7
> ntpd    368  ntp  mem       REG                8,2    14648 396487
> /usr/lib/libdl-2.16.so
> ntpd    368  ntp  mem       REG                8,2  2009849 396474
> /usr/lib/libc-2.16.so
> ntpd    368  ntp  mem       REG                8,2    16776 400227
> /usr/lib/libcap.so.2.22
> ntpd    368  ntp  mem       REG                8,2    31760 396469
> /usr/lib/librt-2.16.so
> ntpd    368  ntp  mem       REG                8,2  2392233 405328
> /usr/lib/libcrypto.so.1.0.0
> ntpd    368  ntp  mem       REG                8,2  1022344 396456
> /usr/lib/libm-2.16.so
> ntpd    368  ntp  mem       REG                8,2   165344 396512
> /usr/lib/ld-2.16.so
> ntpd    368  ntp    0u      CHR                1,3      0t0   1028 /dev/null
> ntpd    368  ntp    1u      CHR                1,3      0t0   1028 /dev/null
> ntpd    368  ntp    2u      CHR                1,3      0t0   1028 /dev/null
> ntpd    368  ntp    3u     unix 0xffff880214dfbb80      0t0  11432 socket
> ntpd    368  ntp    5w      REG                8,2        0 664219
> /var/log/ntp.log
> ntpd    368  ntp   16u     IPv4              10453      0t0    UDP *:ntp
> ntpd    368  ntp   17u     IPv6              10454      0t0    UDP *:ntp
> ntpd    368  ntp   18u     IPv4              10460      0t0    UDP
> localhost.localdomain:ntp
> ntpd    368  ntp   19u     IPv4              10461      0t0    UDP
> hinniepc.fritz.box:ntp
> ntpd    368  ntp   20u     IPv6               8775      0t0    UDP
> [fe80::922b:34ff:fe33:c292]:ntp
> ntpd    368  ntp   21u  netlink                         0t0  10463 ROUTE
> 
> and here is "grep Udp6 /proc/net/snmp6" before:
> Udp6InDatagrams                 	19
> Udp6NoPorts                     	0
> Udp6InErrors                    	0
> Udp6OutDatagrams                	19
> Udp6RcvbufErrors                	0
> Udp6SndbufErrors                	0
> 
> and after running "ntpq -p":
> Udp6InDatagrams                 	21
> Udp6NoPorts                     	0
> Udp6InErrors                    	0
> Udp6OutDatagrams                	21
> Udp6RcvbufErrors                	0
> Udp6SndbufErrors                	0

OK so IPv6 UDP frames are delivered to ntpd

could you strace it while doing one "ntpq -p"

strace -p 368

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 20:47 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <1350247546.21172.17167.camel@edumazet-glaptop>

On Sun, 2012-10-14 at 22:45 +0200, Eric Dumazet wrote:

> OK so IPv6 UDP frames are delivered to ntpd
> 
> could you strace it while doing one "ntpq -p"
> 
> strace -p 368
> 

Also please post "ip -6 addr"

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 20:56 UTC (permalink / raw)
  To: Eric Dumazet, netdev
In-Reply-To: <1350247678.21172.17170.camel@edumazet-glaptop>

[-- Attachment #1: Type: text/plain, Size: 756 bytes --]

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> On Sun, 2012-10-14 at 22:45 +0200, Eric Dumazet wrote:
>
>> OK so IPv6 UDP frames are delivered to ntpd
>>
>> could you strace it while doing one "ntpq -p"
>>
>> strace -p 368
>>
>
> Also please post "ip -6 addr"
>
>

ip -6 addr gives:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::922b:34ff:fe33:c292/64 scope link
       valid_lft forever preferred_lft forever

And the output of "strace ntpq -p" is attached in file "ntpq-p".

I also did a tcpdump earlier this day as told in the bugtracker. Find
the parts containing "ntpd" attached in file "tcpdump".

[-- Attachment #2: ntpq-p --]
[-- Type: application/octet-stream, Size: 13327 bytes --]

execve("/usr/bin/ntpq", ["ntpq", "-p"], [/* 33 vars */]) = 0
brk(0)                                  = 0x15dd000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d0dfcc000
close(3)                                = 0
open("/usr/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0J\6\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=2392233, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dfcb000
mmap(NULL, 4230344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0d9ca000
mprotect(0x7f2d0dbaa000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0dda9000, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1df000) = 0x7f2d0dda9000
mmap(0x7f2d0ddcf000, 15560, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2d0ddcf000
close(3)                                = 0
open("/usr/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31760, ...}) = 0
mmap(NULL, 2128880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0d7c2000
mprotect(0x7f2d0d7c9000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0d9c8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f2d0d9c8000
close(3)                                = 0
open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\30\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2009849, ...}) = 0
mmap(NULL, 3828816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0d41b000
mprotect(0x7f2d0d5b9000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0d7b8000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7f2d0d7b8000
mmap(0x7f2d0d7be000, 15440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2d0d7be000
close(3)                                = 0
open("/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14648, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dfca000
mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0d217000
mprotect(0x7f2d0d21a000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0d419000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f2d0d419000
close(3)                                = 0
open("/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88656, ...}) = 0
mmap(NULL, 2183688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0d001000
mprotect(0x7f2d0d016000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0d215000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f2d0d215000
close(3)                                = 0
open("/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@l\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=137998, ...}) = 0
mmap(NULL, 2208640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0cde5000
mprotect(0x7f2d0cdfc000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0cffb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f2d0cffb000
mmap(0x7f2d0cffd000, 13184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2d0cffd000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dfc9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dfc8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dfc7000
arch_prctl(ARCH_SET_FS, 0x7f2d0dfc8700) = 0
mprotect(0x7f2d0d7b8000, 16384, PROT_READ) = 0
mprotect(0x7f2d0cffb000, 4096, PROT_READ) = 0
mprotect(0x7f2d0d215000, 4096, PROT_READ) = 0
mprotect(0x7f2d0d419000, 4096, PROT_READ) = 0
mprotect(0x7f2d0d9c8000, 4096, PROT_READ) = 0
mprotect(0x7f2d0dda9000, 110592, PROT_READ) = 0
mprotect(0x630000, 4096, PROT_READ)     = 0
mprotect(0x7f2d0dff4000, 4096, PROT_READ) = 0
munmap(0x7f2d0dfcc000, 160446)          = 0
set_tid_address(0x7f2d0dfc89d0)         = 12278
set_robust_list(0x7f2d0dfc89e0, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7f2d0cdeb7a0, [], SA_RESTORER|SA_SIGINFO, 0x7f2d0cdf4170}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f2d0cdeb820, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f2d0cdf4170}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
close(3)                                = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 3
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(3)                                = 0
brk(0)                                  = 0x15dd000
brk(0x15fe000)                          = 0x15fe000
getcwd("/home/hinnie", 4096)            = 13
stat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie/.ntprc", 0x7fff8f955dc0) = -1 ENOENT (No such file or directory)
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie/.ntprc", 0x7fff8f955dc0) = -1 ENOENT (No such file or directory)
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie/.ntprc", 0x7fff8f955dc0) = -1 ENOENT (No such file or directory)
getcwd("/home/hinnie", 4096)            = 13
stat("/home/hinnie", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("/home/hinnie/.ntprc", 0x7fff8f955dc0) = -1 ENOENT (No such file or directory)
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=223, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "# Begin /etc/nsswitch.conf\n\npass"..., 4096) = 223
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d0dfcc000
close(3)                                = 0
open("/usr/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=52136, ...}) = 0
mmap(NULL, 2148136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d0cbd8000
mprotect(0x7f2d0cbe4000, 2093056, PROT_NONE) = 0
mmap(0x7f2d0cde3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x7f2d0cde3000
close(3)                                = 0
mprotect(0x7f2d0cde3000, 4096, PROT_READ) = 0
munmap(0x7f2d0dfcc000, 160446)          = 0
open("/etc/services", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=286369, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "# See the full IANA XML file at:"..., 4096) = 4096
read(3, "     97/tcp\nswift-rvf          9"..., 4096) = 4096
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=12278, groups=00000000}, [12]) = 0
sendto(3, "\24\0\0\0\26\0\1\3e%{P\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0\0\0\0\24\0\2\0e%{P\366/\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 108
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0e%{P\366/\0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0e%{P\366/\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4)                                = 0
close(3)                                = 0
open("/etc/services", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=286369, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "# See the full IANA XML file at:"..., 4096) = 4096
read(3, "     97/tcp\nswift-rvf          9"..., 4096) = 4096
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "#\n# /etc/host.conf\n#\n\norder host"..., 4096) = 63
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
futex(0x7f2d0d7c0620, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=25, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "nameserver 192.168.178.1\n", 4096) = 25
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
uname({sys="Linux", node="hinniepc", ...}) = 0
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=213, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "#\n# /etc/hosts: static lookup ta"..., 4096) = 213
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3045, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=3045, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d0dff3000
read(3, "# Configuration for getaddrinfo("..., 4096) = 3045
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d0dff3000, 4096)            = 0
futex(0x7f2d0d7bf0b8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(51374), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
close(3)                                = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(48076), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(3)                                = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
sendto(3, "\26\1\0\1\0\0\0\0\0\0\0\0", 12, 0, NULL, 0) = 12
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
sendto(3, "\26\1\0\1\0\0\0\0\0\0\0\0", 12, 0, NULL, 0) = 12
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
write(2, "localhost.localdomain: timed out"..., 51localhost.localdomain: timed out, nothing received
) = 51
write(2, "***Request timed out\n", 21***Request timed out
)  = 21
exit_group(0)                           = ?
+++ exited with 0 +++


[-- Attachment #3: tcpdump --]
[-- Type: application/octet-stream, Size: 428 bytes --]

17:19:11.213395 IP6 (hlim 64, next-header UDP (17) payload length: 20) localhost.localdomain.46138 > localhost.localdomain.ntp: [udp sum ok] NTPv2, length 12
	Root Delay: 0.000000, Root dispersion: 0.000000 [|ntp]
17:19:16.218453 IP6 (hlim 64, next-header UDP (17) payload length: 20) localhost.localdomain.46138 > localhost.localdomain.ntp: [udp sum ok] NTPv2, length 12
	Root Delay: 0.000000, Root dispersion: 0.000000 [|ntp]

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 21:02 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot5eyNmYhMi7LSKqwsb=hFbWUqOF3rzWt7Kt-C4hJ9pOmQ@mail.gmail.com>

On Sun, 2012-10-14 at 22:56 +0200, Jan Hinnerk Stosch wrote:
> 2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> > On Sun, 2012-10-14 at 22:45 +0200, Eric Dumazet wrote:
> >
> >> OK so IPv6 UDP frames are delivered to ntpd
> >>
> >> could you strace it while doing one "ntpq -p"
> >>
> >> strace -p 368
> >>
> >
> > Also please post "ip -6 addr"
> >
> >
> 
> ip -6 addr gives:
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fe80::922b:34ff:fe33:c292/64 scope link
>        valid_lft forever preferred_lft forever
> 
> And the output of "strace ntpq -p" is attached in file "ntpq-p".
> 
> I also did a tcpdump earlier this day as told in the bugtracker. Find
> the parts containing "ntpd" attached in file "tcpdump".

I already got these files, thank you

I asked a strace of the ntpd daemon, since we now know frames are
delivered to the application. I want to check what ntpd does of these
frames, since apparently it gives no answer.

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 21:07 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot5xZevtZcCS37h9HR4Zkj_Q4ny_sj+NX7oYEvazAQjxLQ@mail.gmail.com>

On Sun, 2012-10-14 at 22:39 +0200, Jan Hinnerk Stosch wrote:

> ntpd    368  ntp   16u     IPv4              10453      0t0    UDP *:ntp
> ntpd    368  ntp   17u     IPv6              10454      0t0    UDP *:ntp
> ntpd    368  ntp   18u     IPv4              10460      0t0    UDP
> localhost.localdomain:ntp
> ntpd    368  ntp   19u     IPv4              10461      0t0    UDP
> hinniepc.fritz.box:ntp
> ntpd    368  ntp   20u     IPv6               8775      0t0    UDP
> [fe80::922b:34ff:fe33:c292]:ntp
> ntpd    368  ntp   21u  netlink                         0t0  10463 ROUTE

Hmm, your ntpd doesnt listen normally to ::1 UDP 123

grep ntpd /var/log/syslog :

(Here I have : )

ntpd[4912]: ntpd 4.2.6p3@1.2290-o Mon Aug 20 15:15:21 UTC 2012 (1)
ntpd[4913]: proto: precision = 0.980 usec
ntpd[4913]: ntp_io: estimated max descriptors: 1024, initial socket
boundary: 16
ntpd[4913]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
ntpd[4913]: Listen and drop on 1 v6wildcard :: UDP 123
ntpd[4913]: Listen normally on 2 lo 127.0.0.1 UDP 123
ntpd[4913]: Listen normally on 3 eth1 172.30.42.8 UDP 123
ntpd[4913]: Listen normally on 4 lo ::1 UDP 123
ntpd[4913]: Listen normally on 5 eth1 fe80::222:15ff:fe87:3ff6 UDP 123
ntpd[4913]: peers refreshed
ntpd[4913]: Listening on routing socket on fd #22 for interface updates

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 21:21 UTC (permalink / raw)
  To: Eric Dumazet, netdev
In-Reply-To: <1350248858.21172.17197.camel@edumazet-glaptop>

[-- Attachment #1: Type: text/plain, Size: 2269 bytes --]

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> On Sun, 2012-10-14 at 22:39 +0200, Jan Hinnerk Stosch wrote:
>
>> ntpd    368  ntp   16u     IPv4              10453      0t0    UDP *:ntp
>> ntpd    368  ntp   17u     IPv6              10454      0t0    UDP *:ntp
>> ntpd    368  ntp   18u     IPv4              10460      0t0    UDP
>> localhost.localdomain:ntp
>> ntpd    368  ntp   19u     IPv4              10461      0t0    UDP
>> hinniepc.fritz.box:ntp
>> ntpd    368  ntp   20u     IPv6               8775      0t0    UDP
>> [fe80::922b:34ff:fe33:c292]:ntp
>> ntpd    368  ntp   21u  netlink                         0t0  10463 ROUTE
>
> Hmm, your ntpd doesnt listen normally to ::1 UDP 123
>
> grep ntpd /var/log/syslog :
>
> (Here I have : )
>
> ntpd[4912]: ntpd 4.2.6p3@1.2290-o Mon Aug 20 15:15:21 UTC 2012 (1)
> ntpd[4913]: proto: precision = 0.980 usec
> ntpd[4913]: ntp_io: estimated max descriptors: 1024, initial socket
> boundary: 16
> ntpd[4913]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
> ntpd[4913]: Listen and drop on 1 v6wildcard :: UDP 123
> ntpd[4913]: Listen normally on 2 lo 127.0.0.1 UDP 123
> ntpd[4913]: Listen normally on 3 eth1 172.30.42.8 UDP 123
> ntpd[4913]: Listen normally on 4 lo ::1 UDP 123
> ntpd[4913]: Listen normally on 5 eth1 fe80::222:15ff:fe87:3ff6 UDP 123
> ntpd[4913]: peers refreshed
> ntpd[4913]: Listening on routing socket on fd #22 for interface updates
>
>

Ah, ok. Didn't read correctly..

journalctl /usr/bin/ntpd gives:
Oct 14 16:51:22 hinniepc ntpd[368]: proto: precision = 0.117 usec
Oct 14 16:51:22 hinniepc ntpd[368]: ntp_io: estimated max descriptors:
1024, initial socket boundary: 16
Oct 14 16:51:22 hinniepc ntpd[368]: Listen and drop on 0 v4wildcard
0.0.0.0 UDP 123
Oct 14 16:51:22 hinniepc ntpd[368]: Listen and drop on 1 v6wildcard :: UDP 123
Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 2 lo 127.0.0.1 UDP 123
Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 3 eth0
192.168.178.27 UDP 123
Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 4 lo ::1 UDP 123
Oct 14 16:51:22 hinniepc ntpd[368]: peers refreshed
Oct 14 16:51:22 hinniepc ntpd[368]: Listening on routing socket on fd
#21 for interface updates

and the output of strace -p `pidof ntpd` is in file "stracentpd".

[-- Attachment #2: stracentpd --]
[-- Type: application/octet-stream, Size: 5184 bytes --]

Process 368 attached
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [17])
select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [17], left {0, 0})
recvfrom(17, "\26\1\0\1\0\0\0\0\0\0\0\0", 1000, 0, {sa_family=AF_INET6, sin6_port=htons(34694), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 12
recvfrom(17, 0x7fff3c8073e0, 1000, 0, 0x7fff3c8073c0, 0x7fff3c80736c) = -1 EAGAIN (Resource temporarily unavailable)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [17])
select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [17], left {0, 0})
recvfrom(17, "\26\1\0\1\0\0\0\0\0\0\0\0", 1000, 0, {sa_family=AF_INET6, sin6_port=htons(34694), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 12
recvfrom(17, 0x7fff3c8073e0, 1000, 0, 0x7fff3c8073c0, 0x7fff3c80736c) = -1 EAGAIN (Resource temporarily unavailable)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=28729632} ---
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
select(22, [16 17 18 19 20 21], NULL, NULL, NULL^CProcess 368 detached
 <detached ...>

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 21:35 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot6w9yaWacK9kE66m+Lv0LWXY9hKzLH8b=1dp=23fo_W2A@mail.gmail.com>

On Sun, 2012-10-14 at 23:21 +0200, Jan Hinnerk Stosch wrote:
> 2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> > On Sun, 2012-10-14 at 22:39 +0200, Jan Hinnerk Stosch wrote:
> >
> >> ntpd    368  ntp   16u     IPv4              10453      0t0    UDP *:ntp
> >> ntpd    368  ntp   17u     IPv6              10454      0t0    UDP *:ntp
> >> ntpd    368  ntp   18u     IPv4              10460      0t0    UDP
> >> localhost.localdomain:ntp
> >> ntpd    368  ntp   19u     IPv4              10461      0t0    UDP
> >> hinniepc.fritz.box:ntp
> >> ntpd    368  ntp   20u     IPv6               8775      0t0    UDP
> >> [fe80::922b:34ff:fe33:c292]:ntp
> >> ntpd    368  ntp   21u  netlink                         0t0  10463 ROUTE
> >
> > Hmm, your ntpd doesnt listen normally to ::1 UDP 123
> >
> > grep ntpd /var/log/syslog :
> >
> > (Here I have : )
> >
> > ntpd[4912]: ntpd 4.2.6p3@1.2290-o Mon Aug 20 15:15:21 UTC 2012 (1)
> > ntpd[4913]: proto: precision = 0.980 usec
> > ntpd[4913]: ntp_io: estimated max descriptors: 1024, initial socket
> > boundary: 16
> > ntpd[4913]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
> > ntpd[4913]: Listen and drop on 1 v6wildcard :: UDP 123
> > ntpd[4913]: Listen normally on 2 lo 127.0.0.1 UDP 123
> > ntpd[4913]: Listen normally on 3 eth1 172.30.42.8 UDP 123
> > ntpd[4913]: Listen normally on 4 lo ::1 UDP 123
> > ntpd[4913]: Listen normally on 5 eth1 fe80::222:15ff:fe87:3ff6 UDP 123
> > ntpd[4913]: peers refreshed
> > ntpd[4913]: Listening on routing socket on fd #22 for interface updates
> >
> >
> 
> Ah, ok. Didn't read correctly..
> 
> journalctl /usr/bin/ntpd gives:
> Oct 14 16:51:22 hinniepc ntpd[368]: proto: precision = 0.117 usec
> Oct 14 16:51:22 hinniepc ntpd[368]: ntp_io: estimated max descriptors:
> 1024, initial socket boundary: 16
> Oct 14 16:51:22 hinniepc ntpd[368]: Listen and drop on 0 v4wildcard
> 0.0.0.0 UDP 123
> Oct 14 16:51:22 hinniepc ntpd[368]: Listen and drop on 1 v6wildcard :: UDP 123
> Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 2 lo 127.0.0.1 UDP 123
> Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 3 eth0
> 192.168.178.27 UDP 123
> Oct 14 16:51:22 hinniepc ntpd[368]: Listen normally on 4 lo ::1 UDP 123
> Oct 14 16:51:22 hinniepc ntpd[368]: peers refreshed
> Oct 14 16:51:22 hinniepc ntpd[368]: Listening on routing socket on fd
> #21 for interface updates

So ntpd claims to "Listen normally on 4 lo ::1 UDP 123" but lsof doesnt
display a socket bound to ::1 port 123

So I would say there is a ntpd bug.

You could try to strace ntpd from the very beginning of its life, so
that we check what it does exactly.

service ntp stop
strace -o /tmp/STRACE /usr/bin/ntpd -g -u ntp:ntp

^ permalink raw reply

* Re: r8169 delay / segfault
From: Francois Romieu @ 2012-10-14 21:32 UTC (permalink / raw)
  To: Roland Stigge; +Cc: nic_swsd, netdev, hayeswang
In-Reply-To: <50793B6F.50507@antcom.de>

Roland Stigge <stigge@antcom.de> :
[...]
> What does the different device ID, XID and IRQ number mean ?

XID identifies the chipset. If the chipset stops responding - all 1 bits -
the device can not be identified.

> How can we force the device out of D3 power state?
> 
> I also compared with kernel 3.5, and it seems like a regression to me,
> With 3.5, it works and tells on resume:

Can you try both a 3.5 kernel with the 3.6 r8169 driver and a 3.6 kernel
with the 3.5 r8169 driver ?

-- 
Ueimor

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 21:54 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev
In-Reply-To: <1350250542.21172.17229.camel@edumazet-glaptop>

[-- Attachment #1: Type: text/plain, Size: 510 bytes --]

2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> So ntpd claims to "Listen normally on 4 lo ::1 UDP 123" but lsof doesnt
> display a socket bound to ::1 port 123
>
> So I would say there is a ntpd bug.
>
> You could try to strace ntpd from the very beginning of its life, so
> that we check what it does exactly.
>
> service ntp stop
> strace -o /tmp/STRACE /usr/bin/ntpd -g -u ntp:ntp
>
>
>

Ok, here is the strace output. I wonder whether this is enough as it
exits very early - ntp still running though.

[-- Attachment #2: ntpstrace --]
[-- Type: application/octet-stream, Size: 8079 bytes --]

execve("/usr/bin/ntpd", ["/usr/bin/ntpd", "-g", "-u", "ntp:ntp"], [/* 16 vars */]) = 0
brk(0)                                  = 0xbb0000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fcfba479000
close(3)                                = 0
open("/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0V\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1022344, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba478000
mmap(NULL, 3117352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb9f86000
mprotect(0x7fcfba07f000, 2093056, PROT_NONE) = 0
mmap(0x7fcfba27e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf8000) = 0x7fcfba27e000
close(3)                                = 0
open("/usr/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0J\6\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=2392233, ...}) = 0
mmap(NULL, 4230344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb9b7d000
mprotect(0x7fcfb9d5d000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb9f5c000, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1df000) = 0x7fcfb9f5c000
mmap(0x7fcfb9f82000, 15560, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fcfb9f82000
close(3)                                = 0
open("/usr/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31760, ...}) = 0
mmap(NULL, 2128880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb9975000
mprotect(0x7fcfb997c000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb9b7b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fcfb9b7b000
close(3)                                = 0
open("/usr/lib/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=16776, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba477000
mmap(NULL, 2111968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb9771000
mprotect(0x7fcfb9775000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb9974000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fcfb9974000
close(3)                                = 0
open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\30\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2009849, ...}) = 0
mmap(NULL, 3828816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb93ca000
mprotect(0x7fcfb9568000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb9767000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7fcfb9767000
mmap(0x7fcfb976d000, 15440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fcfb976d000
close(3)                                = 0
open("/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14648, ...}) = 0
mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb91c6000
mprotect(0x7fcfb91c9000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb93c8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fcfb93c8000
close(3)                                = 0
open("/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88656, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba476000
mmap(NULL, 2183688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb8fb0000
mprotect(0x7fcfb8fc5000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb91c4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7fcfb91c4000
close(3)                                = 0
open("/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@l\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=137998, ...}) = 0
mmap(NULL, 2208640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb8d94000
mprotect(0x7fcfb8dab000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb8faa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7fcfb8faa000
mmap(0x7fcfb8fac000, 13184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fcfb8fac000
close(3)                                = 0
open("/usr/lib/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \24\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18760, ...}) = 0
mmap(NULL, 2113880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcfb8b8f000
mprotect(0x7fcfb8b93000, 2093056, PROT_NONE) = 0
mmap(0x7fcfb8d92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fcfb8d92000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba475000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba474000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba473000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba472000
arch_prctl(ARCH_SET_FS, 0x7fcfba473700) = 0
mprotect(0x7fcfb9767000, 16384, PROT_READ) = 0
mprotect(0x7fcfb8d92000, 4096, PROT_READ) = 0
mprotect(0x7fcfb8faa000, 4096, PROT_READ) = 0
mprotect(0x7fcfb91c4000, 4096, PROT_READ) = 0
mprotect(0x7fcfb93c8000, 4096, PROT_READ) = 0
mprotect(0x7fcfb9b7b000, 4096, PROT_READ) = 0
mprotect(0x7fcfb9f5c000, 110592, PROT_READ) = 0
mprotect(0x7fcfba27e000, 4096, PROT_READ) = 0
mprotect(0x686000, 4096, PROT_READ)     = 0
mprotect(0x7fcfba4a1000, 4096, PROT_READ) = 0
munmap(0x7fcfba479000, 160446)          = 0
set_tid_address(0x7fcfba4739d0)         = 12570
set_robust_list(0x7fcfba4739e0, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7fcfb8d9a7a0, [], SA_RESTORER|SA_SIGINFO, 0x7fcfb8da3170}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7fcfb8d9a820, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fcfb8da3170}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(0)                                  = 0xbb0000
brk(0xbd1000)                           = 0xbd1000
socket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_FILE, sun_path="/dev/log"}, 110) = 0
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcfba4a0000
read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 2309
lseek(4, -1467, SEEK_CUR)               = 842
read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\t\0\0\0\0"..., 4096) = 1467
lseek(4, 2308, SEEK_SET)                = 2308
close(4)                                = 0
munmap(0x7fcfba4a0000, 4096)            = 0
sendto(3, "<29>Oct 14 23:42:42 ntpd[12570]:"..., 87, MSG_NOSIGNAL, NULL, 0) = 87
umask(0)                                = 022
umask(022)                              = 0
getuid()                                = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcfba4739d0) = 12571
exit_group(0)                           = ?
+++ exited with 0 +++

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Eric Dumazet @ 2012-10-14 22:01 UTC (permalink / raw)
  To: Jan Hinnerk Stosch; +Cc: netdev
In-Reply-To: <CAO_aot4RiTbUd=7L5e4btLEeJvgy0B3iswaXo8m3AP2qp9Z0TQ@mail.gmail.com>

On Sun, 2012-10-14 at 23:54 +0200, Jan Hinnerk Stosch wrote:
> 2012/10/14 Eric Dumazet <eric.dumazet@gmail.com>:
> > So ntpd claims to "Listen normally on 4 lo ::1 UDP 123" but lsof doesnt
> > display a socket bound to ::1 port 123
> >
> > So I would say there is a ntpd bug.
> >
> > You could try to strace ntpd from the very beginning of its life, so
> > that we check what it does exactly.
> >
> > service ntp stop
> > strace -o /tmp/STRACE /usr/bin/ntpd -g -u ntp:ntp
> >
> >
> >
> 
> Ok, here is the strace output. I wonder whether this is enough as it
> exits very early - ntp still running though.

Please add -f to follow children

strace -o /tmp/STRACE -f /usr/bin/ntpd -g -u ntp:ntp

^ permalink raw reply

* Re: regression when connecting to ipv6 localhost
From: Jan Hinnerk Stosch @ 2012-10-14 22:11 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev
In-Reply-To: <1350252091.21172.17257.camel@edumazet-glaptop>

[-- Attachment #1: Type: text/plain, Size: 157 bytes --]

2012/10/15 Eric Dumazet <eric.dumazet@gmail.com>:
> Please add -f to follow children
>
> strace -o /tmp/STRACE -f /usr/bin/ntpd -g -u ntp:ntp
>
>

Ok, done.

[-- Attachment #2: STRACE --]
[-- Type: application/octet-stream, Size: 68573 bytes --]

12927 execve("/usr/bin/ntpd", ["/usr/bin/ntpd", "-g", "-u", "ntp:ntp"], [/* 16 vars */]) = 0
12927 brk(0)                            = 0x718000
12927 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
12927 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
12927 fstat(3, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
12927 mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc54a6f2000
12927 close(3)                          = 0
12927 open("/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0V\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=1022344, ...}) = 0
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6f1000
12927 mmap(NULL, 3117352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc54a1ff000
12927 mprotect(0x7fc54a2f8000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc54a4f7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf8000) = 0x7fc54a4f7000
12927 close(3)                          = 0
12927 open("/usr/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0J\6\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0555, st_size=2392233, ...}) = 0
12927 mmap(NULL, 4230344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc549df6000
12927 mprotect(0x7fc549fd6000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc54a1d5000, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1df000) = 0x7fc54a1d5000
12927 mmap(0x7fc54a1fb000, 15560, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc54a1fb000
12927 close(3)                          = 0
12927 open("/usr/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\"\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=31760, ...}) = 0
12927 mmap(NULL, 2128880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc549bee000
12927 mprotect(0x7fc549bf5000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc549df4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fc549df4000
12927 close(3)                          = 0
12927 open("/usr/lib/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\25\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=16776, ...}) = 0
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6f0000
12927 mmap(NULL, 2111968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5499ea000
12927 mprotect(0x7fc5499ee000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc549bed000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fc549bed000
12927 close(3)                          = 0
12927 open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\30\2\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=2009849, ...}) = 0
12927 mmap(NULL, 3828816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc549643000
12927 mprotect(0x7fc5497e1000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc5499e0000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7fc5499e0000
12927 mmap(0x7fc5499e6000, 15440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc5499e6000
12927 close(3)                          = 0
12927 open("/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=14648, ...}) = 0
12927 mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc54943f000
12927 mprotect(0x7fc549442000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc549641000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc549641000
12927 close(3)                          = 0
12927 open("/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\"\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=88656, ...}) = 0
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6ef000
12927 mmap(NULL, 2183688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc549229000
12927 mprotect(0x7fc54923e000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc54943d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7fc54943d000
12927 close(3)                          = 0
12927 open("/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@l\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=137998, ...}) = 0
12927 mmap(NULL, 2208640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc54900d000
12927 mprotect(0x7fc549024000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc549223000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7fc549223000
12927 mmap(0x7fc549225000, 13184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc549225000
12927 close(3)                          = 0
12927 open("/usr/lib/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
12927 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \24\0\0\0\0\0\0"..., 832) = 832
12927 fstat(3, {st_mode=S_IFREG|0755, st_size=18760, ...}) = 0
12927 mmap(NULL, 2113880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc548e08000
12927 mprotect(0x7fc548e0c000, 2093056, PROT_NONE) = 0
12927 mmap(0x7fc54900b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fc54900b000
12927 close(3)                          = 0
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6ee000
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6ed000
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6ec000
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a6eb000
12927 arch_prctl(ARCH_SET_FS, 0x7fc54a6ec700) = 0
12927 mprotect(0x7fc5499e0000, 16384, PROT_READ) = 0
12927 mprotect(0x7fc54900b000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc549223000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc54943d000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc549641000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc549df4000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc54a1d5000, 110592, PROT_READ) = 0
12927 mprotect(0x7fc54a4f7000, 4096, PROT_READ) = 0
12927 mprotect(0x686000, 4096, PROT_READ) = 0
12927 mprotect(0x7fc54a71a000, 4096, PROT_READ) = 0
12927 munmap(0x7fc54a6f2000, 160446)    = 0
12927 set_tid_address(0x7fc54a6ec9d0)   = 12927
12927 set_robust_list(0x7fc54a6ec9e0, 24) = 0
12927 rt_sigaction(SIGRTMIN, {0x7fc5490137a0, [], SA_RESTORER|SA_SIGINFO, 0x7fc54901c170}, NULL, 8) = 0
12927 rt_sigaction(SIGRT_1, {0x7fc549013820, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fc54901c170}, NULL, 8) = 0
12927 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
12927 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
12927 brk(0)                            = 0x718000
12927 brk(0x739000)                     = 0x739000
12927 socket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
12927 connect(3, {sa_family=AF_FILE, sun_path="/dev/log"}, 110) = 0
12927 open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 4
12927 fstat(4, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
12927 fstat(4, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
12927 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12927 read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 2309
12927 lseek(4, -1467, SEEK_CUR)         = 842
12927 read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\t\0\0\0\0"..., 4096) = 1467
12927 lseek(4, 2308, SEEK_SET)          = 2308
12927 close(4)                          = 0
12927 munmap(0x7fc54a719000, 4096)      = 0
12927 sendto(3, "<29>Oct 15 00:02:29 ntpd[12927]:"..., 87, MSG_NOSIGNAL, NULL, 0) = 87
12927 umask(0)                          = 022
12927 umask(022)                        = 0
12927 getuid()                          = 0
12927 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fc54a6ec9d0) = 12928
12928 set_robust_list(0x7fc54a6ec9e0, 24 <unfinished ...>
12927 exit_group(0)                     = ?
12928 <... set_robust_list resumed> )   = 0
12928 setsid()                          = 12928
12928 chdir("/")                        = 0
12927 +++ exited with 0 +++
12928 open("/dev/null", O_RDWR)         = 4
12928 fstat(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
12928 dup2(4, 0)                        = 0
12928 dup2(4, 1)                        = 1
12928 dup2(4, 2)                        = 2
12928 close(4)                          = 0
12928 rt_sigaction(SIGHUP, {0x4146c0, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGINT, {0x4146c0, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGQUIT, {0x4146c0, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGTERM, {0x4146c0, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGBUS, {0x4146c0, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGUSR1, {0x414490, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGUSR2, {0x414440, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 timer_create(CLOCK_REALTIME, {0x718120, SIGALRM, SIGEV_SIGNAL, {...}}, {0}) = 0
12928 rt_sigaction(SIGALRM, {0x42fc60, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 timer_settime(0, 0, {it_interval={1, 0}, it_value={1, 0}}, NULL) = 0
12928 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
12928 close(4)                          = 0
12928 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 4
12928 getsockname(4, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
12928 close(4)                          = 0
12928 uname({sys="Linux", node="hinniepc", ...}) = 0
12928 sendto(3, "<29>Oct 15 00:02:29 ntpd[12928]:"..., 62, MSG_NOSIGNAL, NULL, 0) = 62
12928 rt_sigaction(SIGSYS, {0x420d60, [], SA_RESTORER, 0x7fc549678020}, {SIG_DFL, [], 0}, 8) = 0
12928 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
12928 adjtimex({modes=ADJ_OFFSET|ADJ_MAXERROR|ADJ_ESTERROR|ADJ_STATUS|ADJ_TIMECONST, offset=0, freq=380673, maxerror=16, esterror=16, status=STA_PLL|STA_NANO, constant=3, precision=1, tolerance=32768000, time={1350252149, 821199283}, tick=10000, ppsfreq=0, jitter=0, shift=0, stabil=0, jitcnt=0, calcnt=0, errcnt=0, stbcnt=0}) = 0 (TIME_OK)
12928 rt_sigaction(SIGSYS, {SIG_DFL, [], SA_RESTORER, 0x7fc549678020}, NULL, 8) = 0
12928 open("/etc/ntp.conf", O_RDONLY)   = 4
12928 fstat(4, {st_mode=S_IFREG|0644, st_size=716, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12928 read(4, "# With the default settings belo"..., 4096) = 716
12928 read(4, "", 4096)                 = 0
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5
12928 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
12928 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
12928 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
12928 sendto(3, "<31>Oct 15 00:02:29 ntpd[12928]:"..., 101, MSG_NOSIGNAL, NULL, 0) = 101
12928 fcntl(5, F_DUPFD, 16)             = 16
12928 close(5)                          = 0
12928 setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(16, SOL_IP, IP_TOS, [192], 4) = 0
12928 bind(16, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
12928 setsockopt(16, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
12928 fcntl(16, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 80, MSG_NOSIGNAL, NULL, 0) = 80
12928 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5
12928 fcntl(5, F_DUPFD, 16)             = 17
12928 close(5)                          = 0
12928 setsockopt(17, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 5
12928 setsockopt(5, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
12928 close(5)                          = 0
12928 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5
12928 setsockopt(5, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
12928 close(5)                          = 0
12928 close(5)                          = -1 EBADF (Bad file descriptor)
12928 setsockopt(17, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
12928 bind(17, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
12928 setsockopt(17, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
12928 fcntl(17, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 brk(0x75a000)                     = 0x75a000
12928 brk(0x758000)                     = 0x758000
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 75, MSG_NOSIGNAL, NULL, 0) = 75
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5
12928 ioctl(5, SIOCGIFCONF, {80, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"eth0", {AF_INET, inet_addr("192.168.178.27")}}}}) = 0
12928 open("/proc/net/if_inet6", O_RDONLY) = 6
12928 fstat(6, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 lseek(6, 0, SEEK_SET)             = 0
12928 read(6, "fe80000000000000922b34fffe33c292"..., 1024) = 54
12928 ioctl(5, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
12928 ioctl(5, SIOCGIFNETMASK, {ifr_name="lo", ifr_netmask={AF_INET, inet_addr("255.0.0.0")}}) = 0
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
12928 fcntl(7, F_DUPFD, 16)             = 18
12928 close(7)                          = 0
12928 setsockopt(18, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 setsockopt(18, SOL_IP, IP_TOS, [192], 4) = 0
12928 setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 bind(18, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
12928 setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(18, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
12928 fcntl(18, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 74, MSG_NOSIGNAL, NULL, 0) = 74
12928 ioctl(5, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
12928 ioctl(5, SIOCGIFBRDADDR, {ifr_name="eth0", ifr_broadaddr={AF_INET, inet_addr("192.168.178.255")}}) = 0
12928 ioctl(5, SIOCGIFNETMASK, {ifr_name="eth0", ifr_netmask={AF_INET, inet_addr("255.255.255.0")}}) = 0
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
12928 fcntl(7, F_DUPFD, 16)             = 19
12928 close(7)                          = 0
12928 setsockopt(19, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 setsockopt(19, SOL_IP, IP_TOS, [192], 4) = 0
12928 setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 bind(19, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.27")}, 16) = 0
12928 setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(19, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
12928 fcntl(19, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 81, MSG_NOSIGNAL, NULL, 0) = 81
12928 setsockopt(19, SOL_IP, IP_MULTICAST_IF, [464693440], 4) = 0
12928 ioctl(5, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
12928 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 7
12928 fcntl(7, F_DUPFD, 16)             = 20
12928 close(7)                          = 0
12928 setsockopt(20, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 setsockopt(20, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
12928 setsockopt(17, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12928 bind(20, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "fe80::922b:34ff:fe33:c292", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=if_nametoindex("eth0")}, 28) = 0
12928 setsockopt(17, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(20, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
12928 fcntl(20, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 92, MSG_NOSIGNAL, NULL, 0) = 92
12928 setsockopt(20, SOL_IPV6, IPV6_MULTICAST_IF, [2], 4) = 0
12928 read(6, "", 1024)                 = 0
12928 close(5)                          = 0
12928 lseek(6, 54, SEEK_SET)            = 54
12928 close(6)                          = 0
12928 munmap(0x7fc54a718000, 4096)      = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 48, MSG_NOSIGNAL, NULL, 0) = 48
12928 setsockopt(20, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(19, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 setsockopt(18, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
12928 socket(PF_NETLINK, SOCK_RAW, 0)   = 5
12928 fcntl(5, F_DUPFD, 16)             = 21
12928 close(5)                          = 0
12928 bind(21, {sa_family=AF_NETLINK, pid=0, groups=00000771}, 12) = 0
12928 fcntl(21, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
12928 sendto(3, "<30>Oct 15 00:02:29 ntpd[12928]:"..., 92, MSG_NOSIGNAL, NULL, 0) = 92
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5
12928 connect(5, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(5)                          = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5
12928 connect(5, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(5)                          = 0
12928 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=223, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 read(5, "# Begin /etc/nsswitch.conf\n\npass"..., 4096) = 223
12928 read(5, "", 4096)                 = 0
12928 close(5)                          = 0
12928 munmap(0x7fc54a718000, 4096)      = 0
12928 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
12928 mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fc54a6c3000
12928 close(5)                          = 0
12928 open("/usr/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 5
12928 read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\"\0\0\0\0\0\0"..., 832) = 832
12928 fstat(5, {st_mode=S_IFREG|0755, st_size=52136, ...}) = 0
12928 mmap(NULL, 2148136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7fc548bfb000
12928 mprotect(0x7fc548c07000, 2093056, PROT_NONE) = 0
12928 mmap(0x7fc548e06000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0xb000) = 0x7fc548e06000
12928 close(5)                          = 0
12928 mprotect(0x7fc548e06000, 4096, PROT_READ) = 0
12928 munmap(0x7fc54a6c3000, 160446)    = 0
12928 open("/etc/services", O_RDONLY|O_CLOEXEC) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=286369, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 read(5, "# See the full IANA XML file at:"..., 4096) = 4096
12928 read(5, "     97/tcp\nswift-rvf          9"..., 4096) = 4096
12928 close(5)                          = 0
12928 munmap(0x7fc54a718000, 4096)      = 0
12928 open("/etc/services", O_RDONLY|O_CLOEXEC) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=286369, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 read(5, "# See the full IANA XML file at:"..., 4096) = 4096
12928 read(5, "     97/tcp\nswift-rvf          9"..., 4096) = 4096
12928 close(5)                          = 0
12928 munmap(0x7fc54a718000, 4096)      = 0
12928 open("/var/lib/ntp/ntp.drift", O_RDONLY) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=6, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 read(5, "5.928\n", 4096)          = 6
12928 close(5)                          = 0
12928 munmap(0x7fc54a718000, 4096)      = 0
12928 open("/var/log/ntp.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 5
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=163, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a718000
12928 fstat(5, {st_mode=S_IFREG|0644, st_size=163, ...}) = 0
12928 lseek(5, 163, SEEK_SET)           = 163
12928 open("/etc/services", O_RDONLY|O_CLOEXEC) = 6
12928 fstat(6, {st_mode=S_IFREG|0644, st_size=286369, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a717000
12928 read(6, "# See the full IANA XML file at:"..., 4096) = 4096
12928 read(6, "     97/tcp\nswift-rvf          9"..., 4096) = 4096
12928 close(6)                          = 0
12928 munmap(0x7fc54a717000, 4096)      = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 6
12928 connect(6, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(6)                          = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 6
12928 connect(6, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(6)                          = 0
12928 open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 6
12928 fstat(6, {st_mode=S_IFREG|0644, st_size=63, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a717000
12928 read(6, "#\n# /etc/host.conf\n#\n\norder host"..., 4096) = 63
12928 read(6, "", 4096)                 = 0
12928 close(6)                          = 0
12928 munmap(0x7fc54a717000, 4096)      = 0
12928 futex(0x7fc5499e8620, FUTEX_WAKE_PRIVATE, 2147483647) = 0
12928 open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 6
12928 fstat(6, {st_mode=S_IFREG|0644, st_size=25, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a717000
12928 read(6, "nameserver 192.168.178.1\n", 4096) = 25
12928 read(6, "", 4096)                 = 0
12928 close(6)                          = 0
12928 munmap(0x7fc54a717000, 4096)      = 0
12928 uname({sys="Linux", node="hinniepc", ...}) = 0
12928 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 6
12928 fstat(6, {st_mode=S_IFREG|0644, st_size=213, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a717000
12928 read(6, "#\n# /etc/hosts: static lookup ta"..., 4096) = 213
12928 read(6, "", 4096)                 = 0
12928 close(6)                          = 0
12928 munmap(0x7fc54a717000, 4096)      = 0
12928 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 6
12928 fstat(6, {st_mode=S_IFREG|0644, st_size=160446, ...}) = 0
12928 mmap(NULL, 160446, PROT_READ, MAP_PRIVATE, 6, 0) = 0x7fc54a6c3000
12928 close(6)                          = 0
12928 open("/usr/lib/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = 6
12928 read(6, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\21\0\0\0\0\0\0"..., 832) = 832
12928 fstat(6, {st_mode=S_IFREG|0755, st_size=22936, ...}) = 0
12928 mmap(NULL, 2117872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0x7fc5489f5000
12928 mprotect(0x7fc5489fa000, 2093056, PROT_NONE) = 0
12928 mmap(0x7fc548bf9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x4000) = 0x7fc548bf9000
12928 close(6)                          = 0
12928 open("/usr/lib/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 6
12928 read(6, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200:\0\0\0\0\0\0"..., 832) = 832
12928 fstat(6, {st_mode=S_IFREG|0755, st_size=84832, ...}) = 0
12928 mmap(NULL, 2189928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0x7fc5487de000
12928 mprotect(0x7fc5487f1000, 2097152, PROT_NONE) = 0
12928 mmap(0x7fc5489f1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x13000) = 0x7fc5489f1000
12928 mmap(0x7fc5489f3000, 6760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc5489f3000
12928 close(6)                          = 0
12928 mprotect(0x7fc5489f1000, 4096, PROT_READ) = 0
12928 mprotect(0x7fc548bf9000, 4096, PROT_READ) = 0
12928 munmap(0x7fc54a6c3000, 160446)    = 0
12928 socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 6
12928 connect(6, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.178.1")}, 16) = 0
12928 poll([{fd=6, events=POLLOUT}], 1, 0) = 1 ([{fd=6, revents=POLLOUT}])
12928 sendmmsg(6, {{{msg_name(0)=NULL, msg_iov(1)=[{"\322\207\1\0\0\1\0\0\0\0\0\0\5fritz\3box\0\0\1\0\1", 27}], msg_controllen=0, msg_flags=0}, 27}, {{msg_name(0)=NULL, msg_iov(1)=[{"@\37\1\0\0\1\0\0\0\0\0\0\5fritz\3box\0\0\34\0\1", 27}], msg_controllen=0, msg_flags=0}, 27}}, 2, MSG_NOSIGNAL) = 2
12928 poll([{fd=6, events=POLLIN}], 1, 5000) = 1 ([{fd=6, revents=POLLIN}])
12928 ioctl(6, FIONREAD, [73])          = 0
12928 recvfrom(6, "\322\207\204\200\0\1\0\1\0\1\0\1\5fritz\3box\0\0\1\0\1\300\f\0\1\0"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.178.1")}, [16]) = 73
12928 poll([{fd=6, events=POLLIN}], 1, 4998) = 1 ([{fd=6, revents=POLLIN}])
12928 ioctl(6, FIONREAD, [57])          = 0
12928 recvfrom(6, "@\37\204\200\0\1\0\0\0\1\0\1\5fritz\3box\0\0\34\0\1\300\f\0\2\0"..., 1975, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.178.1")}, [16]) = 57
12928 close(6)                          = 0
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 6
12928 connect(6, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 0
12928 getsockname(6, {sa_family=AF_INET, sin_port=htons(39782), sin_addr=inet_addr("192.168.178.27")}, [16]) = 0
12928 close(6)                          = 0
12928 close(4)                          = 0
12928 munmap(0x7fc54a719000, 4096)      = 0
12928 adjtimex({modes=ADJ_FREQUENCY, offset=0, freq=388497, maxerror=16, esterror=16, status=STA_PLL|STA_NANO, constant=3, precision=1, tolerance=32768000, time={1350252149, 833115061}, tick=10000, ppsfreq=0, jitter=0, shift=0, stabil=0, jitcnt=0, calcnt=0, errcnt=0, stbcnt=0}) = 0 (TIME_OK)
12928 prctl(PR_SET_KEEPCAPS, 1)         = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
12928 connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(4)                          = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
12928 connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(4)                          = 0
12928 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
12928 fstat(4, {st_mode=S_IFREG|0644, st_size=697, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12928 read(4, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 697
12928 close(4)                          = 0
12928 munmap(0x7fc54a719000, 4096)      = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
12928 connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(4)                          = 0
12928 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
12928 connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
12928 close(4)                          = 0
12928 open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
12928 fstat(4, {st_mode=S_IFREG|0644, st_size=588, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12928 read(4, "root:x:0:root\nbin:x:1:root,bin,d"..., 4096) = 588
12928 close(4)                          = 0
12928 munmap(0x7fc54a719000, 4096)      = 0
12928 open("/proc/sys/kernel/ngroups_max", O_RDONLY) = 4
12928 read(4, "65536\n", 31)            = 6
12928 close(4)                          = 0
12928 open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
12928 fstat(4, {st_mode=S_IFREG|0644, st_size=588, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12928 lseek(4, 0, SEEK_CUR)             = 0
12928 read(4, "root:x:0:root\nbin:x:1:root,bin,d"..., 4096) = 588
12928 read(4, "", 4096)                 = 0
12928 lseek(4, 588, SEEK_SET)           = 588
12928 close(4)                          = 0
12928 munmap(0x7fc54a719000, 4096)      = 0
12928 setgroups(1, [87])                = 0
12928 setgid(87)                        = 0
12928 setresgid(-1, 87, -1)             = 0
12928 setuid(87)                        = 0
12928 setresuid(-1, 87, -1)             = 0
12928 capget({_LINUX_CAPABILITY_VERSION_3, 0}, NULL) = 0
12928 capset({_LINUX_CAPABILITY_VERSION_3, 0}, {CAP_NET_BIND_SERVICE|CAP_SYS_TIME, CAP_NET_BIND_SERVICE|CAP_SYS_TIME, CAP_NET_BIND_SERVICE|CAP_SYS_TIME}) = 0
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "\343\0\6\351\0\0\0\0\0\0\0\0INIT\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
12928 ioctl(4, SIOCGIFCONF, {80, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"eth0", {AF_INET, inet_addr("192.168.178.27")}}}}) = 0
12928 open("/proc/net/if_inet6", O_RDONLY) = 6
12928 fstat(6, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
12928 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc54a719000
12928 lseek(6, 0, SEEK_SET)             = 0
12928 read(6, "fe80000000000000922b34fffe33c292"..., 1024) = 54
12928 ioctl(4, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
12928 ioctl(4, SIOCGIFNETMASK, {ifr_name="lo", ifr_netmask={AF_INET, inet_addr("255.0.0.0")}}) = 0
12928 ioctl(4, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
12928 ioctl(4, SIOCGIFBRDADDR, {ifr_name="eth0", ifr_broadaddr={AF_INET, inet_addr("192.168.178.255")}}) = 0
12928 ioctl(4, SIOCGIFNETMASK, {ifr_name="eth0", ifr_netmask={AF_INET, inet_addr("255.255.255.0")}}) = 0
12928 ioctl(4, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
12928 read(6, "", 1024)                 = 0
12928 close(4)                          = 0
12928 lseek(6, 54, SEEK_SET)            = 54
12928 close(6)                          = 0
12928 munmap(0x7fc54a719000, 4096)      = 0
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\234\203\274\3\335\324%\264[\27\307`O\324%\264\366\321a.h"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "\343\0\6\351\0\0\0\0\0\0\0\2INIT\0\0\0\0\0\0\0\0\324%\264\366\321\213\366Y"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\236\203\274\3\335\324%\264[\27\307`O\324%\264\370\321b%L"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "\343\0\6\351\0\0\0\0\0\0\0\4INIT\0\0\0\0\0\0\0\0\324%\264\370\321\212\351\352"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\237\203\274\3\335\324%\264[\27\307`O\324%\264\372\321a\177\213"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "\343\0\6\351\0\0\0\0\0\0\0\6INIT\0\0\0\0\0\0\0\0\324%\264\372\321\212 \226"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\240\203\274\3\335\324%\264[\27\307`O\324%\264\374\321b^\3"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 adjtimex({modes=ADJ_OFFSET|ADJ_MAXERROR|ADJ_ESTERROR|ADJ_STATUS|ADJ_TIMECONST|0x2000, offset=-28197, freq=388484, maxerror=1000703, esterror=9, status=STA_PLL|STA_NANO, constant=6, precision=1, tolerance=32768000, time={1350252156, 819317574}, tick=10000, ppsfreq=0, jitter=0, shift=0, stabil=0, jitcnt=0, calcnt=0, errcnt=0, stbcnt=0}) = 0 (TIME_OK)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 4
12928 fstat(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
12928 poll([{fd=4, events=POLLIN}], 1, 10) = 1 ([{fd=4, revents=POLLIN}])
12928 read(4, ">8\346\2017M\346ZA\245<\373\271\210\242b\272\350\212\351\341\373,x\r76\261\322\215\256\332", 32) = 32
12928 close(4)                          = 0
12928 getuid()                          = 87
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "#\3\6\351\0\0\17\212\0\0\370j\300\250\262\1\324%\264\374\321\233o:\324%\264\374\321\213\263="..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\242\203\274\3\335\324%\264[\27\307`O\324%\264\376\321dBM"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "#\3\6\351\0\0\17\212\0\0\370l\300\250\262\1\324%\264\374\321\233o:\324%\264\376\321\220(\27"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\243\203\274\3\335\324%\264[\27\307`O\324%\265\0\321c\305%"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 sendto(19, "#\3\6\351\0\0\17\212\0\0\370\244\300\250\262\1\324%\264\374\321\233o:\324%\265\0\321\214[\3"..., 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, 16) = 48
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = 1 (in [19])
12928 select(22, [16 17 18 19 20 21], NULL, NULL, {0, 0}) = 1 (in [19], left {0, 0})
12928 recvmsg(19, {msg_name(16)={sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("192.168.178.1")}, msg_iov(1)=[{"\34\2\6\355\0\0\17o\0\0\0\311\203\274\3\335\324%\264[\27\307`O\324%\2659\321c\362\353"..., 2120}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 48
12928 recvmsg(19, 0x7fff37c323f0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL) = ? ERESTARTNOHAND (Interrupted by signal)
12928 --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=7438624} ---
12928 rt_sigreturn()                    = -1 EINTR (Interrupted system call)
12928 select(22, [16 17 18 19 20 21], NULL, NULL, NULL

^ permalink raw reply

* Re: [PATCH] netrom: fix info leak via getsockname()
From: Ben Hutchings @ 2012-10-14 23:11 UTC (permalink / raw)
  To: Clément Lecigne; +Cc: netdev
In-Reply-To: <CAKSJdACRs5r9bbr=VS25YoQGYyhZDCyejftC+tg6yeeaNMnErg@mail.gmail.com>

On Sun, 2012-10-14 at 20:23 +0200, Clément Lecigne wrote:
> The following patch fixes a 3 bytes info leak via getsockname() on
> AF_NETROM socket.
> 
> Details:
> 
> typedef struct {
> 	char		ax25_call[7];	/* 6 call + SSID (shifted ascii!) */
> } ax25_address;
> 
> struct sockaddr_ax25 {
> 	__kernel_sa_family_t sax25_family;
> 	ax25_address	sax25_call;
> 	int		sax25_ndigis;
> 	/* Digipeater ax25_address sets follow */
> };
> 
> After compilation, gcc will add 3 padding bytes after sax25_call to
> align sax25_ndigis and nr_getname does not clear these padding bytes
> before returning to userland, poc attached.
> 
> Signed-off-by: Clement Lecigne <clemun@gmail.com>
> 
> --- a/net/netrom/af_netrom.c
> +++ b/net/netrom/af_netrom.c
> @@ -838,6 +838,8 @@ static int nr_getname(struct socket *sock, struct
> sockaddr *uaddr,
>         struct sock *sk = sock->sk;
>         struct nr_sock *nr = nr_sk(sk);
> 
> +    memset(sax, 0, sizeof(struct sockaddr_ax25));

This is not indented correctly.

>         lock_sock(sk);
>         if (peer != 0) {
>                 if (sk->sk_state != TCP_ESTABLISHED) {

On some architectures, structures have a minimum alignment of 4, so
there are 2 bytes of padding before sax25_call and 1 byte within it.
nr_getname() copies complete ax25_address structures, but nr_listen()
does not initialise the 1 byte of padding in user_addr:

		memset(&nr_sk(sk)->user_addr, 0, AX25_ADDR_LEN);

So I think you should address that too.  It appears that other
ax25_address structures are originally copied from userland and
therefore don't leak information, but I'm not sure.

Ben.

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

^ permalink raw reply

* [PATCH] docbook: networking: fix file paths for uapi headers
From: Randy Dunlap @ 2012-10-15  1:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Linux Kernel Mailing List, netdev@vger.kernel.org, David Miller,
	David Howells
In-Reply-To: <CA+55aFyt0KFNp5Binu-c3-XzF=MG+23EDOk1R6t4qqgW58ksAw@mail.gmail.com>

From: Randy Dunlap <rdunlap@xenotime.net>

Update file paths in Documentation/DocBook/networking.tmpl for uapi headers.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
---
 Documentation/DocBook/networking.tmpl |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- lnx-37-rc1.orig/Documentation/DocBook/networking.tmpl
+++ lnx-37-rc1/Documentation/DocBook/networking.tmpl
@@ -56,7 +56,7 @@
 !Enet/core/filter.c
      </sect1>
      <sect1><title>Generic Network Statistics</title>
-!Iinclude/linux/gen_stats.h
+!Iinclude/uapi/linux/gen_stats.h
 !Enet/core/gen_stats.c
 !Enet/core/gen_estimator.c
      </sect1>
@@ -80,7 +80,7 @@
 !Enet/wimax/op-rfkill.c
 !Enet/wimax/stack.c
 !Iinclude/net/wimax.h
-!Iinclude/linux/wimax.h
+!Iinclude/uapi/linux/wimax.h
      </sect1>
   </chapter>
 

^ permalink raw reply

* [PATCH v2] phy: add AT803x driver
From: ujhelyi.m @ 2012-10-15  5:07 UTC (permalink / raw)
  To: netdev; +Cc: davem, daniel, rd, Matus Ujhelyi

From: Matus Ujhelyi <ujhelyi.m@gmail.com>

This driver add support for wake over lan on AT803x phys.

Signed-off-by: Matus Ujhelyi <ujhelyi.m@gmail.com>
---
 drivers/net/phy/Kconfig  |    5 ++
 drivers/net/phy/Makefile |    1 +
 drivers/net/phy/at803x.c |  176 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+)
 create mode 100644 drivers/net/phy/at803x.c

diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 3090dc6..e69d74e 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -15,6 +15,11 @@ if PHYLIB
 
 comment "MII PHY device drivers"
 
+config AT803X_PHY
+	tristate "Drivers for Atheros AT803X PHYs"
+	---help---
+	  Currently supports the AT8030 and AT8035 model
+
 config AMD_PHY
 	tristate "Drivers for the AMD PHYs"
 	---help---
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index 6d2dc6c..66720a5 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_STE10XP)		+= ste10Xp.o
 obj-$(CONFIG_MICREL_PHY)	+= micrel.o
 obj-$(CONFIG_MDIO_OCTEON)	+= mdio-octeon.o
 obj-$(CONFIG_MICREL_KS8995MA)	+= spi_ks8995.o
+obj-$(CONFIG_AT803X_PHY)	+= at803x.o
 obj-$(CONFIG_AMD_PHY)		+= amd.o
 obj-$(CONFIG_MDIO_BUS_MUX)	+= mdio-mux.o
 obj-$(CONFIG_MDIO_BUS_MUX_GPIO)	+= mdio-mux-gpio.o
diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
new file mode 100644
index 0000000..45cbc10
--- /dev/null
+++ b/drivers/net/phy/at803x.c
@@ -0,0 +1,176 @@
+/*
+ * drivers/net/phy/at803x.c
+ *
+ * Driver for Atheros 803x PHY
+ *
+ * Author: Matus Ujhelyi <ujhelyi.m@gmail.com>
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/phy.h>
+#include <linux/module.h>
+#include <linux/string.h>
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+
+#define AT803X_INTR_ENABLE			0x12
+#define AT803X_INTR_STATUS			0x13
+#define AT803X_WOL_ENABLE			0x01
+#define AT803X_DEVICE_ADDR			0x03
+#define AT803X_LOC_MAC_ADDR_0_15_OFFSET		0x804C
+#define AT803X_LOC_MAC_ADDR_16_31_OFFSET	0x804B
+#define AT803X_LOC_MAC_ADDR_32_47_OFFSET	0x804A
+#define AT803X_MMD_ACCESS_CONTROL		0x0D
+#define AT803X_MMD_ACCESS_CONTROL_DATA		0x0E
+#define AT803X_FUNC_DATA			0x4003
+
+MODULE_DESCRIPTION("Atheros 803x PHY driver");
+MODULE_AUTHOR("Matus Ujhelyi");
+MODULE_LICENSE("GPL");
+
+static void at803x_set_wol_mac_addr(struct phy_device *phydev)
+{
+	struct net_device *ndev = phydev->attached_dev;
+	const u8 *mac;
+	unsigned int i, offsets[] = {
+		AT803X_LOC_MAC_ADDR_32_47_OFFSET,
+		AT803X_LOC_MAC_ADDR_16_31_OFFSET,
+		AT803X_LOC_MAC_ADDR_0_15_OFFSET,
+	};
+
+	if (!ndev)
+		return;
+
+	mac = (const u8 *) ndev->dev_addr;
+
+	if (!is_valid_ether_addr(mac))
+		return;
+
+	for (i = 0; i < 3; i++) {
+		phy_write(phydev, AT803X_MMD_ACCESS_CONTROL,
+				  AT803X_DEVICE_ADDR);
+		phy_write(phydev, AT803X_MMD_ACCESS_CONTROL_DATA,
+				  offsets[i]);
+		phy_write(phydev, AT803X_MMD_ACCESS_CONTROL,
+				  AT803X_FUNC_DATA);
+		phy_write(phydev, AT803X_MMD_ACCESS_CONTROL_DATA,
+				  mac[(i * 2) + 1] | (mac[(i * 2)] << 8));
+	}
+}
+
+static int at803x_config_init(struct phy_device *phydev)
+{
+	int val;
+	u32 features;
+	int status;
+
+	features = SUPPORTED_TP | SUPPORTED_MII | SUPPORTED_AUI |
+		   SUPPORTED_FIBRE | SUPPORTED_BNC;
+
+	val = phy_read(phydev, MII_BMSR);
+	if (val < 0)
+		return val;
+
+	if (val & BMSR_ANEGCAPABLE)
+		features |= SUPPORTED_Autoneg;
+	if (val & BMSR_100FULL)
+		features |= SUPPORTED_100baseT_Full;
+	if (val & BMSR_100HALF)
+		features |= SUPPORTED_100baseT_Half;
+	if (val & BMSR_10FULL)
+		features |= SUPPORTED_10baseT_Full;
+	if (val & BMSR_10HALF)
+		features |= SUPPORTED_10baseT_Half;
+
+	if (val & BMSR_ESTATEN) {
+		val = phy_read(phydev, MII_ESTATUS);
+		if (val < 0)
+			return val;
+
+		if (val & ESTATUS_1000_TFULL)
+			features |= SUPPORTED_1000baseT_Full;
+		if (val & ESTATUS_1000_THALF)
+			features |= SUPPORTED_1000baseT_Half;
+	}
+
+	phydev->supported = features;
+	phydev->advertising = features;
+
+	/* enable WOL */
+	at803x_set_wol_mac_addr(phydev);
+	status = phy_write(phydev, AT803X_INTR_ENABLE, AT803X_WOL_ENABLE);
+	status = phy_read(phydev, AT803X_INTR_STATUS);
+
+	return 0;
+}
+
+/* ATHEROS 8035 */
+static struct phy_driver at8035_driver = {
+	.phy_id		= 0x004dd072,
+	.name		= "Atheros 8035 ethernet",
+	.phy_id_mask	= 0xffffffef,
+	.config_init	= at803x_config_init,
+	.features	= PHY_GBIT_FEATURES,
+	.flags		= PHY_HAS_INTERRUPT,
+	.config_aneg	= &genphy_config_aneg,
+	.read_status	= &genphy_read_status,
+	.driver		= {
+		.owner = THIS_MODULE,
+	},
+};
+
+/* ATHEROS 8030 */
+static struct phy_driver at8030_driver = {
+	.phy_id		= 0x004dd076,
+	.name		= "Atheros 8030 ethernet",
+	.phy_id_mask	= 0xffffffef,
+	.config_init	= at803x_config_init,
+	.features	= PHY_GBIT_FEATURES,
+	.flags		= PHY_HAS_INTERRUPT,
+	.config_aneg	= &genphy_config_aneg,
+	.read_status	= &genphy_read_status,
+	.driver		= {
+		.owner = THIS_MODULE,
+	},
+};
+
+static int __init atheros_init(void)
+{
+	int ret;
+
+	ret = phy_driver_register(&at8035_driver);
+	if (ret)
+		goto err1;
+
+	ret = phy_driver_register(&at8030_driver);
+	if (ret)
+		goto err2;
+
+	return 0;
+
+err2:
+	phy_driver_unregister(&at8035_driver);
+err1:
+	return ret;
+}
+
+static void __exit atheros_exit(void)
+{
+	phy_driver_unregister(&at8035_driver);
+	phy_driver_unregister(&at8030_driver);
+}
+
+module_init(atheros_init);
+module_exit(atheros_exit);
+
+static struct mdio_device_id __maybe_unused atheros_tbl[] = {
+	{ 0x004dd076, 0xffffffef },
+	{ 0x004dd072, 0xffffffef },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(mdio, atheros_tbl);
-- 
1.7.9.5

^ permalink raw reply related

* [PATCHv5 0/4] modem_shm: U8500 SHaRed Memory driver(SHRM)
From: Arun Murthy @ 2012-10-15  5:28 UTC (permalink / raw)
  To: linux-kernel, netdev, linux-doc, gregkh, alan; +Cc: Arun Murthy

In u8500 platform the communication between the APE(Application Processor) and
the modem subsystem(CMT) is by means of a shared DDR. The series of patches
include a protocol called ShaRed Memory(SHRM) protocol for communicating
between the APE and the CMT.
Interrupt generation registers in CMT and PRCMU on APE side are used to support
the shrm protocol.

v2 - Included netdev mailing list
v3 - Implemented comments from Alan Cox and Greg KH
v4 - Re-worked on the ModemAccessFramework(MAF) part
v5 - Added kernel doc for exported functions in MAF.

Arun Murthy (4):
  modem_shm: Add Modem Access Framework
  modem_shm: Register u8500 client for MAF
  modem_shm: u8500-shm: U8500 Shared Memory Driver
  Doc: Add u8500_shrm document

 Documentation/DocBook/Makefile              |    2 +-
 Documentation/DocBook/shrm.tmpl             |  125 +++
 Documentation/modem_shm/u8500_shrm.txt      |  254 +++++
 drivers/Kconfig                             |    2 +
 drivers/Makefile                            |    1 +
 drivers/modem_shm/Kconfig                   |   22 +
 drivers/modem_shm/Makefile                  |    3 +
 drivers/modem_shm/modem_access.c            |  413 +++++++
 drivers/modem_shm/modem_u8500.c             |   96 ++
 drivers/modem_shm/u8500_shm/Kconfig         |   43 +
 drivers/modem_shm/u8500_shm/Makefile        |    7 +
 drivers/modem_shm/u8500_shm/shrm.h          |   23 +
 drivers/modem_shm/u8500_shm/shrm_char.c     |  816 ++++++++++++++
 drivers/modem_shm/u8500_shm/shrm_config.h   |  114 ++
 drivers/modem_shm/u8500_shm/shrm_driver.c   |  733 ++++++++++++
 drivers/modem_shm/u8500_shm/shrm_driver.h   |  226 ++++
 drivers/modem_shm/u8500_shm/shrm_fifo.c     |  838 ++++++++++++++
 drivers/modem_shm/u8500_shm/shrm_ioctl.h    |   43 +
 drivers/modem_shm/u8500_shm/shrm_net.c      |  313 ++++++
 drivers/modem_shm/u8500_shm/shrm_net.h      |   46 +
 drivers/modem_shm/u8500_shm/shrm_private.h  |  184 +++
 drivers/modem_shm/u8500_shm/shrm_protocol.c | 1591 +++++++++++++++++++++++++++
 include/linux/modem_shm/modem.h             |   64 ++
 include/linux/modem_shm/modem_client.h      |   55 +
 24 files changed, 6013 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/DocBook/shrm.tmpl
 create mode 100644 Documentation/modem_shm/u8500_shrm.txt
 create mode 100644 drivers/modem_shm/Kconfig
 create mode 100644 drivers/modem_shm/Makefile
 create mode 100644 drivers/modem_shm/modem_access.c
 create mode 100644 drivers/modem_shm/modem_u8500.c
 create mode 100644 drivers/modem_shm/u8500_shm/Kconfig
 create mode 100644 drivers/modem_shm/u8500_shm/Makefile
 create mode 100644 drivers/modem_shm/u8500_shm/shrm.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_char.c
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_config.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_driver.c
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_driver.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_fifo.c
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_ioctl.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_net.c
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_net.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_private.h
 create mode 100644 drivers/modem_shm/u8500_shm/shrm_protocol.c
 create mode 100644 include/linux/modem_shm/modem.h
 create mode 100644 include/linux/modem_shm/modem_client.h

-- 
1.7.4.3

^ permalink raw reply

* [PATCHv5 1/4] modem_shm: Add Modem Access Framework
From: Arun Murthy @ 2012-10-15  5:28 UTC (permalink / raw)
  To: linux-kernel, netdev, linux-doc, gregkh, alan; +Cc: Arun Murthy
In-Reply-To: <1350278920-25510-1-git-send-email-arun.murthy@stericsson.com>

Adds Modem Access Framework, which allows for registering platform specific
modem access mechanisms. The framework also exposes APIs for client drivers
for getting and releasing access to modem, regardless of the underlying
platform specific access mechanism.

Signed-off-by: Arun Murthy <arun.murthy@stericsson.com>
---
 drivers/Kconfig                  |    2 +
 drivers/Makefile                 |    1 +
 drivers/modem_shm/Kconfig        |    9 ++
 drivers/modem_shm/Makefile       |    1 +
 drivers/modem_shm/modem_access.c |  226 ++++++++++++++++++++++++++++++++++++++
 include/linux/modem_shm/modem.h  |   59 ++++++++++
 6 files changed, 298 insertions(+), 0 deletions(-)
 create mode 100644 drivers/modem_shm/Kconfig
 create mode 100644 drivers/modem_shm/Makefile
 create mode 100644 drivers/modem_shm/modem_access.c
 create mode 100644 include/linux/modem_shm/modem.h

diff --git a/drivers/Kconfig b/drivers/Kconfig
index ece958d..dc7c14a 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -152,4 +152,6 @@ source "drivers/vme/Kconfig"
 
 source "drivers/pwm/Kconfig"
 
+source "drivers/modem_shm/Kconfig"
+
 endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index 5b42184..902dfec 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -139,3 +139,4 @@ obj-$(CONFIG_EXTCON)		+= extcon/
 obj-$(CONFIG_MEMORY)		+= memory/
 obj-$(CONFIG_IIO)		+= iio/
 obj-$(CONFIG_VME_BUS)		+= vme/
+obj-$(CONFIG_MODEM_SHM)		+= modem_shm/
diff --git a/drivers/modem_shm/Kconfig b/drivers/modem_shm/Kconfig
new file mode 100644
index 0000000..f4b7e54
--- /dev/null
+++ b/drivers/modem_shm/Kconfig
@@ -0,0 +1,9 @@
+config MODEM_SHM
+        bool "Modem Access Framework"
+        default n
+        help
+         Add support for Modem Access Framework. It allows different
+	 platform specific drivers to register modem access mechanisms
+	 and allows transparent access to modem to the client drivers.
+
+	 If unsure, say N.
diff --git a/drivers/modem_shm/Makefile b/drivers/modem_shm/Makefile
new file mode 100644
index 0000000..b77bcc0
--- /dev/null
+++ b/drivers/modem_shm/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_MODEM_SHM)		:= modem_access.o
diff --git a/drivers/modem_shm/modem_access.c b/drivers/modem_shm/modem_access.c
new file mode 100644
index 0000000..e06c51a
--- /dev/null
+++ b/drivers/modem_shm/modem_access.c
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) ST-Ericsson SA 2011
+ *
+ * License Terms: GNU General Public License v2
+ * Author: Kumar Sanghvi
+ *	Arun Murthy <arun.murthy@stericsson.com>
+ *
+ * Heavily adapted from Regulator framework.
+ * Provides mechanisms for registering platform specific access
+ * mechanisms for modem.
+ * Also, exposes APIs for gettng/releasing the access and even
+ * query the access status, and the modem usage status.
+ */
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/printk.h>
+#include <linux/modem_shm/modem.h>
+
+static struct class *modem_class;
+
+static int __modem_get_usage(struct device *dev, void *data)
+{
+	struct modem_desc *mdesc = (struct modem_desc *)data;
+
+	if (!mdesc->mclients) {
+		printk(KERN_ERR "modem_access: modem description is NULL\n");
+		return 0;
+	}
+	return atomic_read(&mdesc->mclients->cnt);
+}
+
+/**
+ * modem_is_requested - check if modem access to APE is already enabled
+ * @mdesc:	pointer to the struct modem_desc
+ *
+ * check if any of the client on ape has requested access to modem
+ * and return non-zero on success and zero on failure.
+ */
+int modem_get_usage(struct modem_desc *mdesc)
+{
+	return class_for_each_device(modem_class, NULL, (void *)mdesc, __modem_get_usage);
+}
+
+/**
+ * modem_is_requested - check if modem access to APE is already enabled
+ * @mdesc:	pointer to the struct modem_desc
+ *
+ * check for a particular client if ape has requested access to modem
+ * and return non-zero on success and zero on failure.
+ */
+int modem_is_requested(struct modem_desc *mdesc)
+{
+	return atomic_read(&mdesc->mclients->cnt);
+}
+
+/**
+ * modem_release - disable modem access for APE
+ * @mdesc:	pointer to the struct modem_desc
+ *
+ * disable modem access to the APE. For a particluar client it checks if modem
+ * has already been releases and if so returns else will call the platform
+ * specific function to disable access to modem.
+ */
+int modem_release(struct modem_desc *mdesc)
+{
+	if (!mdesc->release)
+		return -EFAULT;
+
+	if (modem_is_requested(mdesc)) {
+		atomic_dec(&mdesc->mclients->cnt);
+		if (atomic_read(&mdesc->use_cnt) == 1) {
+			mdesc->release(mdesc);
+			atomic_dec(&mdesc->use_cnt);
+		}
+	} else
+		printk(KERN_WARNING
+			"modem_shm: client %s has not requested modem to release\n",
+			mdesc->mclients->name);
+	return 0;
+}
+
+/**
+ * modem_request - enable modem access for APE
+ * @mdesc:	pointer to the struct modem_desc
+ *
+ * enable modem access to the APE. For a particluar client it checks if modem
+ * has already been accessed and if so returns else will call the platform
+ * specific function to enable access to modem.
+ */
+int modem_request(struct modem_desc *mdesc)
+{
+	if (!mdesc->request)
+		return -EFAULT;
+
+	if (atomic_read(&mdesc->mclients->cnt) == 0) {
+		mdesc->request(mdesc);
+		atomic_inc(&mdesc->mclients->cnt);
+		atomic_inc(&mdesc->use_cnt);
+		if (atomic_read(&mdesc->use_cnt) > mdesc->no_clients) {
+			dev_warn(mdesc->dev,
+					"modem_shm: mismatch in the modem count\n");
+		}
+	} else
+		dev_warn(mdesc->dev,
+				"modem_shm: client '%s' has already requested modem\n",
+				dev_name(mdesc->mclients->dev));
+	return 0;
+}
+
+/**
+ * modem_put - free the modem corresponding to the client
+ * @mdesc:	pointer to the struct modem_desc
+ *
+ * Free the modem associated to the client, makeing the modem no more
+ * usable to the client.
+ */
+int modem_put(struct modem_desc *mdesc)
+{
+	if (atomic_read(&mdesc->cli_cnt)) {
+		atomic_dec(&mdesc->cli_cnt);
+		modem_release(mdesc);
+		kfree(mdesc->mclients);
+		return 0;
+	} else {
+		dev_err(mdesc->dev, "mismatch in the no of clients\n");
+		return -EFAULT;
+	}
+}
+
+static int modem_match_device_by_name(struct device *dev, void *data)
+{
+	const char *name = data;
+	struct modem_desc *mdesc = dev_get_drvdata(dev);
+
+	return strcmp(mdesc->name, name) == 0;
+}
+
+/**
+ * modem_get - get reference to platform specific modem
+ * @pdev:	pointer to the client's device struct
+ * @name:	pointer to the modem's name
+ *
+ * This function checks if the requested modem is present in the modem access
+ * framework and if present returns the pointer to the struct modem_desc.
+ */
+struct modem_desc *modem_get(struct device *pdev, const char *name)
+{
+	struct clients *mcli;
+	struct modem_desc *mdesc = NULL;
+	struct device *dev = class_find_device(modem_class, NULL, (void *)name,
+			modem_match_device_by_name);
+	mdesc = dev ? dev_get_drvdata(dev): NULL;
+	if (mdesc) {
+		if (atomic_read(&mdesc->cli_cnt) >= mdesc->no_clients) {
+			dev_err(pdev, "already %d clients have requested\n",
+					mdesc->no_clients);
+			return NULL;
+		}
+		mcli = kzalloc(sizeof(struct clients), GFP_KERNEL);
+		if (!mcli) {
+			dev_err(pdev, "uanable to allocate memory\n");
+			return NULL;
+		}
+		mdesc->mclients = mcli;
+		mdesc->mclients->dev = pdev;
+		atomic_inc(&mdesc->cli_cnt);
+		atomic_set(&mdesc->mclients->cnt, 0);
+	}
+	return mdesc;
+}
+
+/**
+ * modem_unregister - unregister the modem
+ * @mdec:	pointer to the struct modem_desc
+ *
+ * This function registers the modem device with the modem access framework,
+ * so that it could be used by clients for accessing and releasing modem.
+ */
+int modem_register(struct device *parent, struct modem_desc *mdesc)
+{
+	mdesc->dev = device_create(modem_class, parent, 0, mdesc, "%s", mdesc->name);
+	if (IS_ERR(mdesc->dev)) {
+		dev_err(parent, "failed to create device\n");
+		return PTR_ERR(mdesc->dev);
+	}
+
+	atomic_set(&mdesc->use_cnt, 0);
+	atomic_set(&mdesc->cli_cnt, 0);
+	return 0;
+}
+
+/**
+ * modem_unregister - unregister the modem
+ * @mdec:	pointer to the struct modem_desc
+ *
+ * This function unregisters the modem device from the modem access framework
+ * and makes the modem no more useful.
+ */
+int modem_unregister(struct modem_desc *mdesc)
+{
+	device_unregister(mdesc->dev);
+	return 0;
+}
+
+static int modem_init(void)
+{
+	modem_class = class_create(THIS_MODULE, "modem_access");
+	if (IS_ERR(modem_class)) {
+		printk(KERN_ERR "modem_access: unable to create class\n");
+		return PTR_ERR(modem_class);
+	}
+
+	if (modem_class == NULL || IS_ERR(modem_class))
+		printk(KERN_ERR "modem_access: MODEM ERR0R");
+
+	return 0;
+}
+
+static void modem_exit(void)
+{
+	class_destroy(modem_class);
+}
+
+arch_initcall(modem_init);
+module_exit(modem_exit);
diff --git a/include/linux/modem_shm/modem.h b/include/linux/modem_shm/modem.h
new file mode 100644
index 0000000..7a58fff
--- /dev/null
+++ b/include/linux/modem_shm/modem.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) ST-Ericsson SA 2011
+ *
+ * License Terms: GNU General Public License v2
+ * Author: Kumar Sanghvi
+ *	Arun Murthy <arun.murthy@stericsson.com>
+ *
+ * Heavily adapted from Regulator framework
+ */
+#ifndef __MODEM_H__
+#define __MODEM_H__
+
+#include <linux/device.h>
+
+struct clients {
+	struct device *dev;
+	const char *name;
+	atomic_t cnt;
+};
+
+struct modem_desc {
+	int (*request)(struct modem_desc *);
+	void (*release)(struct modem_desc *);
+	int (*is_requested)(struct modem_desc *);
+	struct clients *mclients;
+	struct device *dev;
+	char *name;
+	u8 no_clients;
+	atomic_t use_cnt;
+	atomic_t cli_cnt;
+};
+
+#ifdef CONFIG_MODEM_SHM
+int modem_register(struct device *parent, struct modem_desc *mdesc);
+int modem_unregister(struct modem_desc *mdesc);
+struct modem_desc *modem_get(struct device *dev, const char *name);
+int modem_put(struct modem_desc *mdesc);
+int modem_release(struct modem_desc *mdesc);
+int modem_is_requested(struct modem_desc *mdesc);
+int modem_get_usage(struct modem_desc *mdesc);
+int modem_request(struct modem_desc *mdesc);
+
+
+#else
+int modem_register(struct device *parent, struct modem_desc *mdesc)
+{
+	return NULL;
+}
+
+static inline int modem_unregister(struct modem_desc *mdesc)
+{
+	return NULL;
+}
+int modem_get_usage(struct modem_desc *mdesc)
+{
+	return 0;
+}
+#endif
+#endif /* __MODEM_H__ */
-- 
1.7.0.4

^ permalink raw reply related

* [PATCHv5 2/4] modem_shm: Register u8500 client for MAF
From: Arun Murthy @ 2012-10-15  5:28 UTC (permalink / raw)
  To: linux-kernel, netdev, linux-doc, gregkh, alan; +Cc: Arun Murthy
In-Reply-To: <1350278920-25510-1-git-send-email-arun.murthy@stericsson.com>

Register with Modem Access Framework(MAF) for u8500 platform. This will provide
interface to enable and disable modem access and also provide the status.

Signed-off-by: Arun Murthy <arun.murthy@stericsson.com>
---
 drivers/modem_shm/Kconfig       |   11 +++++
 drivers/modem_shm/Makefile      |    1 +
 drivers/modem_shm/modem_u8500.c |   91 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 103 insertions(+), 0 deletions(-)
 create mode 100644 drivers/modem_shm/modem_u8500.c

diff --git a/drivers/modem_shm/Kconfig b/drivers/modem_shm/Kconfig
index f4b7e54..f59d3dc 100644
--- a/drivers/modem_shm/Kconfig
+++ b/drivers/modem_shm/Kconfig
@@ -7,3 +7,14 @@ config MODEM_SHM
 	 and allows transparent access to modem to the client drivers.
 
 	 If unsure, say N.
+
+config MODEM_U8500
+	bool "Modem Access driver for STE U8500 platform"
+	depends on MODEM_SHM
+	default n
+	help
+	 Add support for Modem Access driver on STE U8500 platform which
+	 uses Shared Memroy as IPC mechanism between Modem processor and
+	 Application processor.
+
+	 If unsure, say N.
diff --git a/drivers/modem_shm/Makefile b/drivers/modem_shm/Makefile
index b77bcc0..a9aac0f 100644
--- a/drivers/modem_shm/Makefile
+++ b/drivers/modem_shm/Makefile
@@ -1 +1,2 @@
 obj-$(CONFIG_MODEM_SHM)		:= modem_access.o
+obj-$(CONFIG_MODEM_U8500)	+= modem_u8500.o
diff --git a/drivers/modem_shm/modem_u8500.c b/drivers/modem_shm/modem_u8500.c
new file mode 100644
index 0000000..924b6a2
--- /dev/null
+++ b/drivers/modem_shm/modem_u8500.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) ST-Ericsson SA 2011
+ *
+ * License Terms: GNU General Public License v2
+ * Author: Kumar Sanghvi
+ *	Arun Murthy <arun.murthy@stericsson.com>
+ *
+ * Platform driver implementing access mechanisms to modem
+ * on U8500 which uses Shared Memroy as IPC between Application
+ * Processor and Modem processor.
+ */
+#include <linux/module.h>
+#include <linux/err.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/modem_shm/modem.h>
+#include <linux/mfd/dbx500-prcmu.h>
+
+static int u8500_modem_request(struct modem_desc *mdesc)
+{
+	return prcmu_ac_wake_req();
+}
+
+static void u8500_modem_release(struct modem_desc *mdesc)
+{
+	prcmu_ac_sleep_req();
+}
+
+static int u8500_modem_is_requested(struct modem_desc *mdesc)
+{
+	return prcmu_is_ac_wake_requested();
+}
+
+static struct modem_desc u8500_modem_desc = {
+	.request = u8500_modem_request,
+	.release = u8500_modem_release,
+	.is_requested = u8500_modem_is_requested,
+	.name   = "u8500-shrm-modem",
+	.no_clients = 2,
+	.cli_cnt = ATOMIC_INIT(0),
+	.use_cnt = ATOMIC_INIT(0),
+};
+
+static int __devinit u8500_modem_probe(struct platform_device *pdev)
+{
+	int err = 0;
+
+	u8500_modem_desc.dev = &pdev->dev;
+	err = modem_register(&pdev->dev, &u8500_modem_desc);
+	if (err) {
+		pr_err("failed to register %s: err %i\n",
+				u8500_modem_desc.name, err);
+	}
+
+	return err;
+}
+
+static int __devexit u8500_modem_remove(struct platform_device *pdev)
+{
+	modem_unregister(&u8500_modem_desc);
+	return 0;
+}
+
+static struct platform_driver u8500_modem_driver = {
+	.driver = {
+		.name = "u8500-modem",
+		.owner = THIS_MODULE,
+	},
+	.probe = u8500_modem_probe,
+	.remove = __devexit_p(u8500_modem_remove),
+};
+
+static int __init u8500_modem_init(void)
+{
+	int ret;
+
+	ret = platform_driver_register(&u8500_modem_driver);
+	if (ret < 0) {
+		printk(KERN_ERR "u8500_modem: platform driver reg failed\n");
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static void __exit u8500_modem_exit(void)
+{
+	platform_driver_unregister(&u8500_modem_driver);
+}
+
+arch_initcall(u8500_modem_init);
-- 
1.7.0.4

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox