.file "af_unix.c" .text .type unix_poll, @function unix_poll: pushq %rbx movq %rdx, %rax movq 40(%rsi), %rbx movq 104(%rbx), %rsi testq %rdx, %rdx je .L2 testq %rsi, %rsi je .L2 call *(%rax) .L2: cmpl $1, 292(%rbx) sbbl %edx, %edx notl %edx andl $8, %edx movb 56(%rbx), %cl andl $3, %ecx cmpb $3, %cl jne .L8 orl $16, %edx .L8: leaq 152(%rbx), %rax cmpq %rax, 152(%rbx) jne .L10 andb $1, %cl je .L12 .L10: orl $65, %edx .L12: movw 58(%rbx), %ax cmpw $1, %ax je .L13 cmpw $5, %ax jne .L15 .L13: movb 2(%rbx), %al cmpb $7, %al jne .L15 orl $16, %edx .L15: movl 144(%rbx), %eax sall $2, %eax cmpl 212(%rbx), %eax jg .L17 orl $772, %edx .L17: movl %edx, %eax popq %rbx ret .size unix_poll, .-unix_poll .type unix_seq_next, @function unix_seq_next: incq (%rdx) cmpq $1, %rsi movq 88(%rdi), %rcx jne .L21 movl $0, (%rcx) xorl %edx, %edx .L23: movq unix_socket_table(,%rdx,8), %rax testq %rax, %rax jne .L40 leal 1(%rdx), %eax movl %eax, (%rcx) incq %rdx cmpq $257, %rdx jne .L23 xorl %eax, %eax ret .L21: movq 8(%rsi), %rax testq %rax, %rax je .L29 subq $8, %rax je .L29 ret .L40: subq $8, %rax ret .L29: incl (%rcx) jmp .L33 .L34: movslq %edx,%rax movq unix_socket_table(,%rax,8), %rax testq %rax, %rax jne .L40 leal 1(%rdx), %eax movl %eax, (%rcx) .L33: movl (%rcx), %edx cmpl $256, %edx jle .L34 xorl %eax, %eax ret .size unix_seq_next, .-unix_seq_next .type unix_seq_start, @function unix_seq_start: pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %rbp movq %rsi, %rbx movq $unix_table_lock, %rdi call _spin_lock movq (%rbx), %rax testq %rax, %rax jne .L44 movb $1, %al jmp .L46 .L66: subq $8, %rax jmp .L50 .L44: leaq -1(%rax), %rdi movq 88(%rbp), %rcx movl $0, (%rcx) xorl %edx, %edx .L47: movq unix_socket_table(,%rdx,8), %rax testq %rax, %rax jne .L66 leal 1(%rdx), %eax movl %eax, (%rcx) incq %rdx cmpq $257, %rdx jne .L47 xorl %eax, %eax .L50: xorl %esi, %esi jmp .L52 .L53: cmpq %rdi, %rsi je .L46 movq 8(%rax), %rax testq %rax, %rax je .L56 subq $8, %rax je .L56 jmp .L59 .L67: subq $8, %rax jmp .L59 .L56: incl (%rcx) jmp .L60 .L61: movslq %edx,%rax movq unix_socket_table(,%rax,8), %rax testq %rax, %rax jne .L67 leal 1(%rdx), %eax movl %eax, (%rcx) .L60: movl (%rcx), %edx cmpl $256, %edx jle .L61 xorl %eax, %eax .L59: incq %rsi .L52: testq %rax, %rax jne .L53 .L46: popq %rdx popq %rbx popq %rbp ret .size unix_seq_start, .-unix_seq_start .type unix_peer_get, @function unix_peer_get: pushq %rbx movq %rdi, %rbx leaq 604(%rdi), %rdi call _spin_lock movq 576(%rbx), %rax testq %rax, %rax je .L71 #APP lock ; incl 40(%rax) #NO_APP .L71: #APP movl $1,604(%rbx) #NO_APP popq %rbx ret .size unix_peer_get, .-unix_peer_get .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "Num RefCount Protocol Flags Type St Inode Path\n" .LC1: .string "%p: %08X %08X %08X %04X %02X %5lu" .text .type unix_seq_show, @function unix_seq_show: pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %r13 movq %rsi, %rbx cmpq $1, %rsi jne .L75 movq $.LC0, %rsi call seq_puts jmp .L77 .L75: leaq 604(%rsi), %rdi call _spin_lock movq %rbx, %rdi call sock_i_ino movq %rax, %rsi cmpq $0, 424(%rbx) je .L78 movb 2(%rbx), %al xorl %edx, %edx cmpb $1, %al sete %dl leal 1(%rdx,%rdx), %edx jmp .L82 .L78: movb 2(%rbx), %al xorl %edx, %edx cmpb $1, %al setne %dl leal 2(%rdx,%rdx), %edx .L82: movb 2(%rbx), %al movl $65536, %r9d cmpb $10, %al movl $0, %eax cmovne %eax, %r9d movl 40(%rbx), %ecx pushq %rdi pushq %rsi pushq %rdx movzwl 58(%rbx), %eax pushq %rax xorl %r8d, %r8d movq %rbx, %rdx movq $.LC1, %rsi movq %r13, %rdi xorl %eax, %eax call seq_printf addq $32, %rsp cmpq $0, 520(%rbx) je .L88 movl $32, %esi movq %r13, %rdi call seq_putc movq 520(%rbx), %rax movl 4(%rax), %r12d subl $2, %r12d cmpl $256, 8(%rax) jne .L90 decl %r12d xorl %ebp, %ebp jmp .L95 .L90: movl $64, %esi movq %r13, %rdi call seq_putc movl $1, %ebp jmp .L95 .L93: movq 520(%rbx), %rax movslq %ebp,%rdx movsbl 14(%rax,%rdx),%esi movq %r13, %rdi call seq_putc incl %ebp .L95: cmpl %r12d, %ebp jl .L93 .L88: #APP movl $1,604(%rbx) #NO_APP movl $10, %esi movq %r13, %rdi call seq_putc .L77: xorl %eax, %eax popq %rcx popq %rbx popq %rbp popq %r12 popq %r13 ret .size unix_seq_show, .-unix_seq_show .type unix_seq_open, @function unix_seq_open: pushq %r12 pushq %rbp pushq %rbx movq %rsi, %r12 .L97: movl $208, %esi movq malloc_sizes+8(%rip), %rdi call kmem_cache_alloc movq %rax, %rbx movl $-12, %ebp testq %rax, %rax je .L100 movq $unix_seq_ops, %rsi movq %r12, %rdi call seq_open movl %eax, %ebp testl %eax, %eax jne .L101 movq 200(%r12), %rax movq %rbx, 88(%rax) movl $0, (%rbx) jmp .L100 .L101: movq %rbx, %rdi call kfree .L100: movl %ebp, %eax popq %rbx popq %rbp popq %r12 ret .size unix_seq_open, .-unix_seq_open .section .rodata.str1.1 .LC2: .string "net/unix/af_unix.c" .LC3: .string "sk_unhashed(sk)" .LC4: .string "<3>KERNEL: assertion (%s) failed at %s (%d)\n" .text .type __unix_insert_socket, @function __unix_insert_socket: pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %rbp movq %rsi, %rbx cmpq $0, 16(%rsi) je .L105 movl $211, %ecx movq $.LC2, %rdx movq $.LC3, %rsi movq $.LC4, %rdi xorl %eax, %eax call printk .L105: #APP lock ; incl 40(%rbx) #NO_APP leaq 8(%rbx), %rdx movq (%rbp), %rax movq %rax, 8(%rbx) testq %rax, %rax je .L107 movq %rdx, 8(%rax) .L107: movq %rdx, (%rbp) movq %rbp, 8(%rdx) popq %r8 popq %rbx popq %rbp ret .size __unix_insert_socket, .-__unix_insert_socket .type unix_copy_addr, @function unix_copy_addr: movl $0, 8(%rdi) movq 520(%rsi), %rax testq %rax, %rax je .L113 movl 4(%rax), %eax movl %eax, 8(%rdi) movq 520(%rsi), %rsi movq (%rdi), %rdi movslq 4(%rsi),%rcx addq $12, %rsi cld rep movsb .L113: ret .size unix_copy_addr, .-unix_copy_addr .type unix_detach_fds, @function unix_detach_fds: pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %rbp leaq 88(%rsi), %rdx movq 16(%rdx), %rax movq %rax, 16(%rdi) movq $sock_wfree, 160(%rsi) movq $0, 16(%rdx) movq 16(%rdi), %rax movl (%rax), %ebx jmp .L119 .L116: movq 16(%rbp), %rax movslq %ebx,%rdx movq 8(%rax,%rdx,8), %rdi call unix_notinflight .L119: decl %ebx testl %ebx, %ebx jns .L116 popq %r9 popq %rbx popq %rbp ret .size unix_detach_fds, .-unix_detach_fds .type unix_mkname, @function unix_mkname: pushq %rbp pushq %rbx subq $8, %rsp movl %esi, %ebx movq %rdx, %rbp leal -3(%rbx), %eax cmpl $107, %eax ja .L121 testq %rdi, %rdi je .L121 cmpw $1, (%rdi) jne .L121 cmpb $0, 2(%rdi) je .L125 movslq %esi,%rax movb $0, (%rdi,%rax) addq $2, %rdi cld orq $-1, %rcx xorl %eax, %eax repnz scasb notq %rcx leal 2(%rcx), %ebx jmp .L127 .L125: xorl %edx, %edx call csum_partial movl %eax, %edx shrl $16, %edx xorl %eax, %edx movl %edx, %eax shrl $8, %eax xorl %eax, %edx andl $255, %edx movl %edx, (%rbp) jmp .L127 .L121: movl $-22, %ebx .L127: movl %ebx, %eax popq %r10 popq %rbx popq %rbp ret .size unix_mkname, .-unix_mkname .type __unix_find_socket_byname, @function __unix_find_socket_byname: pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %r13 movl %esi, %r12d xorl %edx, %ecx movq unix_socket_table(,%rcx,8), %rax jmp .L130 .L131: movslq %r12d,%rdx leaq 12(%rax), %rdi movq %r13, %rsi call memcmp testl %eax, %eax je .L132 .L133: movq %rbp, %rax .L130: testq %rax, %rax je .L134 movq (%rax), %rbp #APP prefetcht0 (%rbp) #NO_APP leaq -8(%rax), %rbx movq 520(%rbx), %rax cmpl %r12d, 4(%rax) jne .L133 jmp .L131 .L134: xorl %ebx, %ebx .L132: movq %rbx, %rax popq %r11 popq %rbx popq %rbp popq %r12 popq %r13 ret .size __unix_find_socket_byname, .-__unix_find_socket_byname .section .rodata.str1.1 .LC5: .string "include/net/sock.h" .LC6: .string "Badness in %s at %s:%d\n" .text .type __unix_remove_socket, @function __unix_remove_socket: pushq %rbx movq %rdi, %rbx cmpq $0, 16(%rdi) je .L144 movq 8(%rdi), %rax movq 16(%rdi), %rdx movq %rax, (%rdx) testq %rax, %rax je .L140 movq %rdx, 8(%rax) .L140: movq $0, 16(%rbx) movl 40(%rbx), %eax decl %eax jne .L142 movl $330, %ecx movq $.LC5, %rdx movq $__func__.18751, %rsi movq $.LC6, %rdi xorl %eax, %eax call printk call dump_stack .L142: #APP lock ; decl 40(%rbx) #NO_APP .L144: popq %rbx ret .size __unix_remove_socket, .-__unix_remove_socket .section .rodata.str1.1 .LC7: .string "%05x" .text .type unix_autobind, @function unix_autobind: pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx movq %rdi, %r14 movq 40(%rdi), %r12 leaq 544(%r12), %r13 call cond_resched movq %r13, %rdi #APP # atomic down operation lock ; decl 544(%r12) js 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __down_failed jmp 1b .previous #NO_APP cmpq $0, 520(%r12) jne .L161 .L146: movl $208, %esi movq malloc_sizes+8(%rip), %rdi call kmem_cache_alloc movq %rax, %rbp movl $-12, %eax testq %rbp, %rbp je .L148 cld movl $30, %ecx xorl %eax, %eax movq %rbp, %rdi rep stosb movw $1, 12(%rbp) movl $1, (%rbp) .L162: movl ordernum.20442(%rip), %edx leaq 15(%rbp), %rdi movq $.LC7, %rsi xorl %eax, %eax call sprintf leal 3(%rax), %esi movl %esi, 4(%rbp) leaq 12(%rbp), %rbx xorl %edx, %edx movq %rbx, %rdi call csum_partial movl %eax, %edx shrl $16, %edx xorl %eax, %edx movl %edx, %eax shrl $8, %eax xorl %eax, %edx andl $255, %edx movl %edx, 8(%rbp) movq $unix_table_lock, %rdi call _spin_lock movl ordernum.20442(%rip), %eax incl %eax andl $1048575, %eax movl %eax, ordernum.20442(%rip) movl 8(%rbp), %ecx movswl 72(%r14),%edx movl 4(%rbp), %esi movq %rbx, %rdi call __unix_find_socket_byname testq %rax, %rax je .L152 #APP movl $1,unix_table_lock(%rip) #NO_APP cmpb $0, ordernum.20442(%rip) jne .L162 call yield jmp .L162 .L152: movzwl 58(%r12), %eax xorl %eax, 8(%rbp) movq %r12, %rdi call __unix_remove_socket movq %rbp, 520(%r12) mov 8(%rbp), %edi leaq unix_socket_table(,%rdi,8), %rdi movq %r12, %rsi call __unix_insert_socket #APP movl $1,unix_table_lock(%rip) #NO_APP .L161: xorl %eax, %eax .L148: movq %r13, %rdi #APP # atomic up operation lock ; incl (%r13) jle 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __up_wakeup jmp 1b .previous #NO_APP popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 ret .size unix_autobind, .-unix_autobind .type unix_attach_fds, @function unix_attach_fds: pushq %r12 pushq %rbp pushq %rbx movq %rdi, %rbp movq %rsi, %r12 movq 16(%rdi), %rax movl (%rax), %ebx jmp .L168 .L165: movslq %ebx,%rax movq 8(%rdx,%rax,8), %rdi call unix_inflight .L168: decl %ebx testl %ebx, %ebx movq 16(%rbp), %rdx jns .L165 movq %rdx, 104(%r12) movq $unix_destruct_fds, 160(%r12) movq $0, 16(%rbp) popq %rbx popq %rbp popq %r12 ret .size unix_attach_fds, .-unix_attach_fds .type unix_dgram_disconnected, @function unix_dgram_disconnected: pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %rbp movq %rsi, %rbx leaq 152(%rdi), %rdi cmpq %rdi, 152(%rbp) je .L174 call skb_queue_purge leaq 608(%rbp), %rdi xorl %ecx, %ecx xorl %edx, %edx movl $1, %esi call __wake_up movl 224(%rbx), %eax testb $1, %al jne .L174 cmpq %rbp, 576(%rbx) jne .L174 movl $104, 292(%rbx) movq %rbx, %rdi movq 496(%rbx), %r11 popq %rbp popq %rbx popq %rbp jmp *%r11 .L174: popq %rbx popq %rbx popq %rbp ret .size unix_dgram_disconnected, .-unix_dgram_disconnected .type unix_wait_for_peer, @function unix_wait_for_peer: pushq %rbp pushq %rbx subq $104, %rsp movq %rdi, %rbx movq %rsi, %rbp movq %rsp, %rdi cld movl $10, %ecx xorl %eax, %eax rep stosl leaq 48(%rsp), %rdi movq %rsp, %rsi movb $10, %cl rep movsl #APP movq %gs:0,%rax #NO_APP movq %rax, 56(%rsp) movq $autoremove_wake_function, 64(%rsp) leaq 48(%rsp), %rsi leaq 24(%rsi), %rax movq %rax, 72(%rsp) movq %rax, 80(%rsp) leaq 608(%rbx), %rdi movl $1, %edx call prepare_to_wait_exclusive movl 224(%rbx), %eax testb $1, %al jne .L176 testb $1, 56(%rbx) jne .L176 movzwl 302(%rbx), %eax cmpl %eax, 168(%rbx) seta %al movzbl %al, %eax jmp .L179 .L176: xorl %eax, %eax .L179: #APP movl $1,604(%rbx) #NO_APP testl %eax, %eax je .L180 movq %rbp, %rdi call schedule_timeout movq %rax, %rbp .L180: leaq 608(%rbx), %rdi leaq 48(%rsp), %rsi call finish_wait movq %rbp, %rax addq $104, %rsp popq %rbx popq %rbp ret .size unix_wait_for_peer, .-unix_wait_for_peer .type unix_find_other, @function unix_find_other: pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $112, %rsp movq %rdi, %rbx movl %esi, %r12d movl %edx, %r13d movl %ecx, %ebp movq %r8, %r14 cmpb $0, 2(%rdi) je .L184 leaq 2(%rdi), %rdi movq %rsp, %rdx movl $1, %esi call path_lookup movl %eax, %ebp testl %eax, %eax jne .L186 movl $2, %esi movq %rsp, %rdi call vfs_permission movl %eax, %ebp testl %eax, %eax jne .L188 movq (%rsp), %rax movq 16(%rax), %rbp movzwl 76(%rbp), %eax andl $61440, %eax cmpl $49152, %eax jne .L190 movq $unix_table_lock, %rdi call _spin_lock movzbq 64(%rbp),%rax movq unix_socket_table(,%rax,8), %rax jmp .L192 .L193: cmpq %rbp, 16(%rax) je .L212 .L194: movq %rdx, %rax .L192: testq %rax, %rax je .L197 movq (%rax), %rdx #APP prefetcht0 (%rdx) #NO_APP leaq -8(%rax), %rbx movq 528(%rbx), %rax testq %rax, %rax jne .L193 jmp .L194 .L197: xorl %ebx, %ebx .L196: #APP movl $1,unix_table_lock(%rip) #NO_APP testq %rbx, %rbx je .L190 movzwl 58(%rbx), %eax cmpl %r13d, %eax jne .L200 movq (%rsp), %rsi movq 8(%rsp), %rdi call touch_atime .L200: movq %rsp, %rdi call path_release movzwl 58(%rbx), %eax cmpl %r13d, %eax je .L202 #APP lock ; decl 40(%rbx); sete %al #NO_APP movl $-91, %ebp testb %al, %al je .L186 jmp .L204 .L212: #APP lock ; incl 40(%rbx) #NO_APP jmp .L196 .L204: movq %rbx, %rdi call sk_free movl $-91, %ebp jmp .L186 .L184: movq $unix_table_lock, %rdi call _spin_lock movl %ebp, %ecx movl %r13d, %edx movl %r12d, %esi movq %rbx, %rdi call __unix_find_socket_byname movq %rax, %rbx testq %rax, %rax je .L206 #APP lock ; incl 40(%rax) #NO_APP .L206: #APP movl $1,unix_table_lock(%rip) #NO_APP movl $-111, %ebp testq %rbx, %rbx je .L186 movq 528(%rbx), %rsi testq %rsi, %rsi je .L202 movq 536(%rbx), %rdi call touch_atime jmp .L202 .L190: movl $-111, %ebp .L188: movq %rsp, %rdi call path_release .L186: movl %ebp, (%r14) xorl %ebx, %ebx .L202: movq %rbx, %rax addq $112, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 ret .size unix_find_other, .-unix_find_other .section .rodata.str1.1 .LC8: .string "include/linux/skbuff.h" .text .type unix_dgram_sendmsg, @function unix_dgram_sendmsg: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $104, %rsp movq %rsi, %rbp movq %rdx, %r13 movq %rcx, 8(%rsp) movq 136(%rdi), %rdi movq %rdi, 24(%rsp) movq 40(%rsi), %r12 movq (%rdx), %rbx cmpq $0, 40(%rdi) jne .L214 leaq 48(%rsp), %rax movq %rax, 40(%rdi) .L214: movq 24(%rsp), %rax movq 40(%rax), %rdx cld movl $8, %ecx xorl %eax, %eax movq %rdx, %rdi rep stosl #APP movq %gs:0,%rax #NO_APP movl 656(%rax), %eax movl %eax, 4(%rdx) #APP movq %gs:0,%rax #NO_APP movl 672(%rax), %eax movl %eax, 8(%rdx) #APP movq %gs:0,%rax #NO_APP movl 264(%rax), %eax movl %eax, (%rdx) cmpq $0, 40(%r13) je .L216 movq %r13, %rsi movq %rbp, %rdi call __scm_send movl %eax, %r14d testl %eax, %eax js .L218 .L216: movl $-95, 92(%rsp) testb $1, 48(%r13) jne .L219 movl 8(%r13), %esi testl %esi, %esi je .L221 movq %rbx, 32(%rsp) leaq 88(%rsp), %rdx movq %rbx, %rdi call unix_mkname movl %eax, 44(%rsp) movl %eax, 92(%rsp) testl %eax, %eax js .L219 xorl %ebx, %ebx jmp .L224 .L221: movl $-107, 92(%rsp) movq %r12, %rdi call unix_peer_get movq %rax, %rbx testq %rax, %rax je .L219 movq $0, 32(%rsp) movl $0, 44(%rsp) .L224: movl 8(%rbp), %eax testb $8, %al je .L226 cmpq $0, 520(%r12) jne .L226 movq %rbp, %rdi call unix_autobind movl %eax, 92(%rsp) testl %eax, %eax jne .L229 .L226: movl $-90, 92(%rsp) movl 212(%r12), %eax subl $32, %eax cltq cmpq %rax, 8(%rsp) ja .L229 leaq 92(%rsp), %rcx movl 48(%r13), %edx andl $64, %edx movq 8(%rsp), %rsi movq %r12, %rdi call sock_alloc_send_skb movq %rax, %rbp testq %rax, %rax je .L229 movq 24(%rsp), %rdx movq 40(%rdx), %rax movq (%rax), %rdx movq %rdx, 88(%rbp) movl 8(%rax), %eax movl %eax, 96(%rbp) movq 24(%rsp), %rax movq 40(%rax), %rdi cmpq $0, 16(%rdi) je .L232 movq %rbp, %rsi call unix_attach_fds .L232: movq 200(%rbp), %rax movq %rax, 48(%rbp) movl 8(%rsp), %r14d movq 16(%r13), %rdx movq %rdx, 16(%rsp) movq 208(%rbp), %r15 cmpl $0, 140(%rbp) je .L234 #APP ud2 ; pushq $.LC8 ; ret $819 #NO_APP .L234: mov %r14d, %eax leaq (%r15,%rax), %rax movq %rax, 208(%rbp) addl %r14d, 136(%rbp) cmpq 216(%rbp), %rax jbe .L236 #APP leaq 1f(%rip),%rdx 1: #NO_APP movl 8(%rsp), %esi movq %rbp, %rdi call skb_over_panic .L236: movl 8(%rsp), %edx movq 16(%rsp), %rsi movq %r15, %rdi call memcpy_fromiovec movl %eax, 92(%rsp) testl %eax, %eax jne .L238 testb $64, 48(%r13) je .L240 xorl %r13d, %r13d jmp .L286 .L240: movq 336(%r12), %r13 jmp .L286 .L243: xorl %ebx, %ebx jmp .L285 .L286: testq %rbx, %rbx jne .L244 .L285: movl $-104, 92(%rsp) cmpq $0, 32(%rsp) je .L238 movl 88(%rsp), %ecx movzwl 58(%r12), %edx leaq 92(%rsp), %r8 movl 44(%rsp), %esi movq 32(%rsp), %rdi call unix_find_other movq %rax, %rbx testq %rax, %rax je .L238 .L244: leaq 604(%rbx), %rdi call _spin_lock movl $-1, 92(%rsp) movq 576(%rbx), %rax testq %rax, %rax je .L247 cmpq %r12, %rax jne .L249 .L247: movl 224(%rbx), %eax testb $1, %al je .L250 #APP movl $1,604(%rbx) lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L252 movq %rbx, %rdi call sk_free .L252: movl $0, 92(%rsp) leaq 604(%r12), %rdi call _spin_lock cmpq %rbx, 576(%r12) jne .L254 movq $0, 576(%r12) #APP movl $1,604(%r12) #NO_APP movq %rbx, %rsi movq %r12, %rdi call unix_dgram_disconnected #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L256 movq %rbx, %rdi call sk_free .L256: movl $-111, 92(%rsp) jmp .L287 .L254: #APP movl $1,604(%r12) #NO_APP cmpl $0, 92(%rsp) je .L243 .L287: xorl %ebx, %ebx jmp .L238 .L250: movl $-32, 92(%rsp) movb 56(%rbx), %al andl $3, %eax andl $1, %eax jne .L249 cmpw $5, 58(%r12) cmove 92(%rsp), %eax movl %eax, 92(%rsp) cmpq %r12, 576(%rbx) je .L262 movzwl 302(%rbx), %eax cmpl %eax, 168(%rbx) jbe .L262 testq %r13, %r13 je .L284 movq %r13, %rsi movq %rbx, %rdi call unix_wait_for_peer movq %rax, %r13 movl $-512, %edx movabsq $9223372036854775807, %rax cmpq %rax, %r13 movl $-4, %eax cmovne %eax, %edx movl %edx, 92(%rsp) #APP movq %gs:0,%rax #NO_APP movq 8(%rax), %rax movl 16(%rax), %eax testb $4, %al jne .L238 jmp .L286 .L262: leaq 152(%rbx), %rdi movq %rbp, %rsi call skb_queue_tail #APP movl $1,604(%rbx) #NO_APP movl %r14d, %esi movq %rbx, %rdi call *480(%rbx) #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L270 movq %rbx, %rdi call sk_free .L270: movq 24(%rsp), %rax movq 40(%rax), %rdi testq %rdi, %rdi je .L218 cmpq $0, 16(%rdi) je .L218 call __scm_destroy jmp .L218 .L284: movl $-11, 92(%rsp) .L249: #APP movl $1,604(%rbx) #NO_APP .L238: movl 188(%rbp), %eax decl %eax jne .L274 #APP lfence #NO_APP jmp .L276 .L274: #APP lock ; decl 188(%rbp); sete %al #NO_APP testb %al, %al je .L229 .L276: movq %rbp, %rdi call __kfree_skb .L229: testq %rbx, %rbx je .L219 #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L219 movq %rbx, %rdi call sk_free .L219: movq 24(%rsp), %rdx movq 40(%rdx), %rdi testq %rdi, %rdi je .L279 cmpq $0, 16(%rdi) je .L279 call __scm_destroy .L279: movl 92(%rsp), %r14d .L218: movl %r14d, %eax addq $104, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_dgram_sendmsg, .-unix_dgram_sendmsg .type unix_release_sock, @function unix_release_sock: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $8, %rsp movq %rdi, %rbp movl %esi, %r13d movq $unix_table_lock, %rdi call _spin_lock movq %rbp, %rdi call __unix_remove_socket #APP movl $1,unix_table_lock(%rip) #NO_APP leaq 604(%rbp), %rdi call _spin_lock leaq 288(%rbp), %rbx movq %rbx, %rdi call _write_lock_bh #APP btsl $0,224(%rbp) #NO_APP movq $0, 424(%rbp) movq $0, 104(%rbp) movq %rbx, %rdi call _write_unlock_bh orb $3, 56(%rbp) movq 528(%rbp), %r14 movq $0, 528(%rbp) movq 536(%rbp), %r12 movq $0, 536(%rbp) movb 2(%rbp), %r15b movb $7, 2(%rbp) #APP movl $1,604(%rbp) #NO_APP leaq 608(%rbp), %rdi xorl %ecx, %ecx xorl %edx, %edx movl $1, %esi call __wake_up movq 576(%rbp), %rbx testq %rbx, %rbx je .L324 movw 58(%rbp), %ax cmpw $1, %ax je .L291 cmpw $5, %ax jne .L293 .L291: leaq 604(%rbx), %rdi call _spin_lock orb $3, 56(%rbx) leaq 152(%rbp), %rax cmpq %rax, 152(%rbp) jne .L294 testl %r13d, %r13d je .L296 .L294: movl $104, 292(%rbx) .L296: #APP movl $1,604(%rbx) #NO_APP movq %rbx, %rdi call *472(%rbx) leaq 288(%rbx), %rdi call _read_lock movq 424(%rbx), %rdi testq %rdi, %rdi je .L297 cmpq $0, 24(%rdi) je .L297 movl $131078, %edx movl $1, %esi call sock_wake_async .L297: #APP lock ; incl 288(%rbx) #NO_APP .L293: #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L300 movq %rbx, %rdi call sk_free .L300: movq $0, 576(%rbp) jmp .L324 .L302: cmpb $10, %r15b jne .L303 movq 16(%rbx), %rdi movl $1, %esi call unix_release_sock .L303: movl 188(%rbx), %eax decl %eax jne .L305 #APP lfence #NO_APP jmp .L307 .L305: #APP lock ; decl 188(%rbx); sete %al #NO_APP testb %al, %al je .L324 .L307: movq %rbx, %rdi call __kfree_skb .L324: leaq 152(%rbp), %rdi call skb_dequeue movq %rax, %rbx testq %rax, %rax jne .L302 testq %r14, %r14 je .L309 movq %r14, %rdi call dput testq %r12, %r12 je .L309 movl $0, 88(%r12) movq %r12, %rdi call mntput_no_expire .L309: #APP lock ; decl 40(%rbp); sete %al #NO_APP testb %al, %al je .L312 movq %rbp, %rdi call sk_free .L312: movl unix_tot_inflight(%rip), %eax testl %eax, %eax je .L314 call unix_gc .L314: xorl %eax, %eax popq %r12 popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_release_sock, .-unix_release_sock .type unix_release, @function unix_release: movq 40(%rdi), %rax testq %rax, %rax je .L330 movq $0, 40(%rdi) xorl %esi, %esi movq %rax, %rdi jmp unix_release_sock .L330: xorl %eax, %eax ret .size unix_release, .-unix_release .type unix_create1, @function unix_create1: pushq %rbp pushq %rbx subq $24, %rsp movq %rdi, %rbp movl unix_nr_socks(%rip), %edx movl files_stat+8(%rip), %eax addl %eax, %eax cmpl %eax, %edx jl .L332 xorl %ebx, %ebx jmp .L334 .L332: movl $1, %ecx movq $unix_proto, %rdx movl $208, %esi movl $1, %edi call sk_alloc movq %rax, %rbx testq %rax, %rax je .L334 #APP lock ; incl unix_nr_socks(%rip) #NO_APP movq %rax, %rsi movq %rbp, %rdi call sock_init_data movq $unix_write_space, 488(%rbx) movl sysctl_unix_max_dgram_qlen(%rip), %eax movw %ax, 302(%rbx) movq $unix_sock_destructor, 512(%rbx) movq $0, 528(%rbx) movq $0, 536(%rbx) movl $1, 12(%rsp) movl 12(%rsp), %eax movl %eax, 604(%rbx) cmpq $1, %rbp sbbl %eax, %eax movl %eax, 600(%rbx) movl $1, 544(%rbx) movl $0, 548(%rbx) movl $1, 16(%rsp) movl 16(%rsp), %eax movl %eax, 552(%rbx) leaq 560(%rbx), %rax movq %rax, 560(%rbx) movq %rax, 8(%rax) movl $1, 20(%rsp) movl 20(%rsp), %eax movl %eax, 608(%rbx) leaq 616(%rbx), %rax movq %rax, 616(%rbx) movq %rax, 8(%rax) movq $unix_table_lock, %rdi call _spin_lock movq %rbx, %rsi movq $unix_socket_table+2048, %rdi call __unix_insert_socket #APP movl $1,unix_table_lock(%rip) #NO_APP .L334: movq %rbx, %rax addq $24, %rsp popq %rbx popq %rbp ret .size unix_create1, .-unix_create1 .type unix_create, @function unix_create: subq $8, %rsp movl $-93, %eax cmpl $1, %esi ja .L343 movl $1, (%rdi) movl 72(%rdi), %eax cmpw $2, %ax je .L346 jg .L349 decw %ax jne .L344 jmp .L345 .L349: cmpw $3, %ax je .L347 cmpw $5, %ax je .L348 .L344: movl $-94, %eax jmp .L343 .L345: movq $unix_stream_ops, 16(%rdi) jmp .L350 .L347: movw $2, 72(%rdi) .L346: movq $unix_dgram_ops, 16(%rdi) jmp .L350 .L348: movq $unix_seqpacket_ops, 16(%rdi) .L350: call unix_create1 cmpq $1, %rax sbbl %eax, %eax andl $-12, %eax .L343: popq %rdx ret .size unix_create, .-unix_create .section .rodata.str1.1 .LC9: .string "<2>%s: Cannot create unix_sock SLAB cache!\n" .LC10: .string "unix" .section .init.text,"ax",@progbits .type af_unix_init, @function af_unix_init: pushq %rbx movl $1, %esi movq $unix_proto, %rdi call proto_register movl %eax, %ebx testl %eax, %eax je .L355 movq $__func__.21370, %rsi movq $.LC9, %rdi xorl %eax, %eax call printk jmp .L357 .L355: movq $unix_family_ops, %rdi call sock_register movq proc_net(%rip), %rdx xorl %esi, %esi movq $.LC10, %rdi call create_proc_entry testq %rax, %rax je .L358 movq $unix_seq_fops, 56(%rax) .L358: call unix_sysctl_register .L357: movl %ebx, %eax popq %rbx ret .size af_unix_init, .-af_unix_init .section .exit.text,"ax",@progbits .type af_unix_exit, @function af_unix_exit: subq $8, %rsp movl $1, %edi call sock_unregister call unix_sysctl_unregister movq proc_net(%rip), %rsi movq $.LC10, %rdi call remove_proc_entry movq $unix_proto, %rdi popq %rcx jmp proto_unregister .size af_unix_exit, .-af_unix_exit .text .type unix_accept, @function unix_accept: pushq %r12 pushq %rbp pushq %rbx subq $16, %rsp movq %rsi, %rbp movq 40(%rdi), %r12 movl $-95, 12(%rsp) movl 72(%rdi), %eax cmpw $1, %ax je .L364 cmpw $5, %ax jne .L366 .L364: movl $-22, 12(%rsp) movb 2(%r12), %al cmpb $10, %al jne .L366 leaq 12(%rsp), %rcx andl $2048, %edx xorl %esi, %esi movq %r12, %rdi call skb_recv_datagram movq %rax, %rsi testq %rax, %rax jne .L368 cmpl $0, 12(%rsp) jne .L366 movl $-22, 12(%rsp) jmp .L366 .L368: movq 16(%rax), %rbx movq %r12, %rdi call skb_free_datagram leaq 608(%r12), %rdi xorl %ecx, %ecx movl $1, %edx movl $1, %esi call __wake_up leaq 604(%rbx), %rdi call _spin_lock movl $3, (%rbp) leaq 288(%rbx), %r12 movq %r12, %rdi call _write_lock_bh leaq 48(%rbp), %rax movq %rax, 104(%rbx) movq %rbx, 40(%rbp) movq %rbp, 424(%rbx) movq %r12, %rdi call _write_unlock_bh #APP movl $1,604(%rbx) #NO_APP xorl %eax, %eax jmp .L371 .L366: movl 12(%rsp), %eax .L371: popq %rsi popq %rdi popq %rbx popq %rbp popq %r12 ret .size unix_accept, .-unix_accept .type unix_ioctl, @function unix_ioctl: pushq %rbp pushq %rbx subq $8, %rsp movq %rdx, %rbp movq 40(%rdi), %rbx cmpl $21521, %esi je .L375 movl $-515, %edi cmpl $21531, %esi jne .L377 jmp .L376 .L375: movl 144(%rbx), %edx movslq %edx,%rdx movq %rbp, %rcx #APP call __put_user_4 #NO_APP jmp .L390 .L376: movb 2(%rbx), %al movl $-22, %edi cmpb $10, %al je .L377 leaq 172(%rbx), %rdi call _spin_lock movw 58(%rbx), %ax cmpw $1, %ax je .L380 cmpw $5, %ax jne .L382 .L380: movq 152(%rbx), %rcx xorl %esi, %esi jmp .L383 .L384: mov 136(%rcx), %eax addq %rax, %rsi movq %rdx, %rcx .L383: movq (%rcx), %rdx #APP prefetcht0 (%rdx) #NO_APP leaq 152(%rbx), %rax cmpq %rax, %rcx jne .L384 jmp .L385 .L382: leaq 152(%rbx), %rax movq 152(%rbx), %rdx cmpq %rax, %rdx je .L386 testq %rdx, %rdx je .L386 mov 136(%rdx), %esi jmp .L385 .L386: xorl %esi, %esi .L385: #APP movl $1,172(%rbx) #NO_APP movq %rbp, %rcx movl %esi, %edx #APP call __put_user_4 #NO_APP .L390: movl %eax, %edi .L377: movl %edi, %eax popq %r8 popq %rbx popq %rbp ret .size unix_ioctl, .-unix_ioctl .type unix_seq_stop, @function unix_seq_stop: #APP movl $1,unix_table_lock(%rip) #NO_APP ret .size unix_seq_stop, .-unix_seq_stop .type unix_listen, @function unix_listen: pushq %rbp pushq %rbx subq $8, %rsp movl %esi, %ebp movq 40(%rdi), %rbx movl 72(%rdi), %eax cmpw $1, %ax je .L394 movl $-95, %edx cmpw $5, %ax jne .L397 .L394: movl $-22, %edx cmpq $0, 520(%rbx) je .L397 leaq 604(%rbx), %rdi call _spin_lock movb 2(%rbx), %al cmpb $7, %al je .L400 movb 2(%rbx), %al movl $-22, %edx cmpb $10, %al jne .L403 .L400: movzwl 302(%rbx), %eax cmpl %eax, %ebp jle .L404 leaq 608(%rbx), %rdi xorl %ecx, %ecx xorl %edx, %edx movl $1, %esi call __wake_up .L404: movw %bp, 302(%rbx) movb $10, 2(%rbx) #APP movq %gs:0,%rax #NO_APP movl 264(%rax), %eax movl %eax, 308(%rbx) #APP movq %gs:0,%rax #NO_APP movl 660(%rax), %eax movl %eax, 312(%rbx) #APP movq %gs:0,%rax #NO_APP movl 676(%rax), %eax movl %eax, 316(%rbx) xorl %edx, %edx .L403: #APP movl $1,604(%rbx) #NO_APP .L397: movl %edx, %eax popq %r9 popq %rbx popq %rbp ret .size unix_listen, .-unix_listen .type unix_socketpair, @function unix_socketpair: movq 40(%rdi), %rdx movq 40(%rsi), %rcx #APP lock ; incl 40(%rdx) lock ; incl 40(%rcx) #NO_APP movq %rcx, 576(%rdx) movq %rdx, 576(%rcx) #APP movq %gs:0,%rax #NO_APP movl 264(%rax), %eax movl %eax, 308(%rcx) movl %eax, 308(%rdx) #APP movq %gs:0,%rax #NO_APP movl 660(%rax), %eax movl %eax, 312(%rcx) movl %eax, 312(%rdx) #APP movq %gs:0,%rax #NO_APP movl 676(%rax), %eax movl %eax, 316(%rcx) movl %eax, 316(%rdx) cmpw $2, 58(%rdx) je .L408 movb $1, 2(%rdx) movb $1, 2(%rcx) movl $3, (%rdi) movl $3, (%rsi) .L408: xorl %eax, %eax ret .size unix_socketpair, .-unix_socketpair .section .rodata.str1.1 .LC11: .string "!atomic_read(&sk->sk_wmem_alloc)" .LC12: .string "!sk->sk_socket" .LC13: .string "Attempt to release alive unix socket: %p\n" .text .type unix_sock_destructor, @function unix_sock_destructor: pushq %rbx movq %rdi, %rbx leaq 152(%rdi), %rdi call skb_queue_purge movl 144(%rbx), %eax testl %eax, %eax je .L412 movl $326, %ecx movq $.LC2, %rdx movq $.LC11, %rsi movq $.LC4, %rdi xorl %eax, %eax call printk .L412: cmpq $0, 16(%rbx) je .L414 movl $327, %ecx movq $.LC2, %rdx movq $.LC3, %rsi movq $.LC4, %rdi xorl %eax, %eax call printk .L414: cmpq $0, 424(%rbx) je .L416 movl $328, %ecx movq $.LC2, %rdx movq $.LC12, %rsi movq $.LC4, %rdi xorl %eax, %eax call printk .L416: movl 224(%rbx), %eax testb $1, %al jne .L418 movq %rbx, %rsi movq $.LC13, %rdi xorl %eax, %eax popq %rbx jmp printk .L418: movq 520(%rbx), %rdi testq %rdi, %rdi je .L420 #APP lock ; decl (%rdi); sete %al #NO_APP testb %al, %al je .L420 call kfree .L420: #APP lock ; decl unix_nr_socks(%rip) #NO_APP popq %rbx ret .size unix_sock_destructor, .-unix_sock_destructor .type unix_seqpacket_sendmsg, @function unix_seqpacket_sendmsg: movq 40(%rsi), %r8 cmpl $0, 292(%r8) je .L426 xorl %eax, %eax #APP xchgl %eax,292(%r8) #NO_APP movl %eax, %r9d negl %r9d jne .L428 .L426: movb 2(%r8), %al movl $-107, %r9d decb %al jne .L428 cmpl $0, 8(%rdx) je .L431 movl $0, 8(%rdx) .L431: jmp unix_dgram_sendmsg .L428: movl %r9d, %eax ret .size unix_seqpacket_sendmsg, .-unix_seqpacket_sendmsg .type unix_bind, @function unix_bind: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $152, %rsp movq %rdi, (%rsp) movq %rsi, %r14 movl %edx, %esi movq 40(%rdi), %r13 movl $-22, %r15d cmpw $1, (%r14) jne .L437 cmpl $2, %edx jne .L438 call unix_autobind movl %eax, %r15d jmp .L437 .L438: leaq 140(%rsp), %rdx movq %r14, %rdi call unix_mkname movl %eax, %r15d testl %eax, %eax js .L437 leaq 544(%r13), %rax movq %rax, 8(%rsp) call cond_resched movq 8(%rsp), %rdi #APP # atomic down operation lock ; decl 544(%r13) js 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __down_failed jmp 1b .previous #NO_APP movl $-22, %r12d cmpq $0, 520(%r13) jne .L443 movslq %r15d,%rbx leaq 12(%rbx), %rdi movl $208, %esi call __kmalloc movq %rax, %rbp movl $-12, %r12d testq %rax, %rax je .L443 leaq 12(%rax), %rdi cld movq %r14, %rsi movq %rbx, %rcx rep movsb movl %r15d, 4(%rax) movzwl 58(%r13), %eax xorl 140(%rsp), %eax movl %eax, 8(%rbp) movl $1, (%rbp) cmpb $0, 2(%r14) jne .L446 xorl %ebx, %ebx jmp .L448 .L446: leaq 16(%rsp), %rbx leaq 2(%r14), %rdi movq %rbx, %rdx movl $16, %esi call path_lookup movl %eax, %r12d testl %eax, %eax jne .L449 xorl %esi, %esi movq %rbx, %rdi call lookup_create movq %rax, %rbx cmpq $-1000, %rax jbe .L451 movl %eax, %r12d jmp .L453 .L451: movq (%rsp), %rax movzwl 156(%rax), %edx #APP movq %gs:0,%rax #NO_APP movq 1456(%rax), %rax movl 8(%rax), %eax notl %eax andl %eax, %edx orb $192, %dh movq 16(%rsp), %rax movq 16(%rax), %rdi xorl %ecx, %ecx movq %rbx, %rsi call vfs_mknod movl %eax, %r12d testl %eax, %eax jne .L454 movq 16(%rsp), %rax movq 16(%rax), %rdi addq $192, %rdi call mutex_unlock movq 16(%rsp), %rdi call dput movq %rbx, 16(%rsp) movl $256, 8(%rbp) .L448: movq $unix_table_lock, %rdi call _spin_lock cmpb $0, 2(%r14) jne .L456 movl 140(%rsp), %ecx movzwl 58(%r13), %edx movl %r15d, %esi movq %r14, %rdi call __unix_find_socket_byname testq %rax, %rax je .L458 #APP lock ; decl (%rbp); sete %al #NO_APP movl $-98, %r12d testb %al, %al je .L462 movq %rbp, %rdi call kfree jmp .L462 .L458: mov 8(%rbp), %eax leaq unix_socket_table(,%rax,8), %rbx jmp .L463 .L456: movq 16(%rbx), %rax movzbq 64(%rax),%rax leaq unix_socket_table(,%rax,8), %rbx movq 16(%rsp), %rax movq %rax, 528(%r13) movq 24(%rsp), %rax movq %rax, 536(%r13) .L463: movq %r13, %rdi call __unix_remove_socket movq %rbp, 520(%r13) movq %r13, %rsi movq %rbx, %rdi call __unix_insert_socket xorl %r12d, %r12d .L462: #APP movl $1,unix_table_lock(%rip) #NO_APP .L443: movq 8(%rsp), %rdi #APP # atomic up operation lock ; incl (%rdi) jle 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __up_wakeup jmp 1b .previous #NO_APP movl %r12d, %r15d jmp .L437 .L454: movq %rbx, %rdi call dput .L453: movq 16(%rsp), %rax movq 16(%rax), %rdi addq $192, %rdi call mutex_unlock leaq 16(%rsp), %rdi call path_release .L449: cmpl $-17, %r12d movl $-98, %eax cmove %eax, %r12d #APP lock ; decl (%rbp); sete %al #NO_APP testb %al, %al je .L443 movq %rbp, %rdi call kfree jmp .L443 .L437: movl %r15d, %eax addq $152, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_bind, .-unix_bind .type unix_stream_recvmsg, @function unix_stream_recvmsg: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $200, %rsp movq %rsi, 24(%rsp) movq %rdx, %r13 movq %rcx, 16(%rsp) movl %r8d, 12(%rsp) movq 136(%rdi), %r15 movq 40(%rsi), %r12 movq (%rdx), %rsi movb 2(%r12), %al movl $-22, %edx decb %al jne .L471 movb $-95, %dl testb $1, %r8b jne .L471 movl 16(%rsp), %r14d andl $256, %r8d jne .L474 movl 320(%r12), %eax cmpl %eax, %r14d cmovg %eax, %r14d .L474: testl %r14d, %r14d movl $1, %eax cmove %eax, %r14d testb $64, 12(%rsp) je .L478 movq $0, 56(%rsp) jmp .L480 .L546: movl $0, 52(%rsp) jmp .L486 .L547: movl $-11, 52(%rsp) jmp .L486 .L478: movq 328(%r12), %rax movq %rax, 56(%rsp) .L480: movl $0, 8(%r13) cmpq $0, 40(%r15) jne .L481 leaq 160(%rsp), %rdi movq %rdi, 40(%r15) cld movl $8, %ecx xorl %eax, %eax rep stosl .L481: movq %rsi, 32(%rsp) leaq 544(%r12), %rbx call cond_resched movq %rbx, %rdi #APP # atomic down operation lock ; decl 544(%r12) js 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __down_failed jmp 1b .previous #NO_APP movl $0, 44(%rsp) movl $0, 48(%rsp) movl $-95, 52(%rsp) .L483: leaq 152(%r12), %rbx movq %rbx, %rdi call skb_dequeue movq %rax, %rbp testq %rax, %rax jne .L484 cmpl %r14d, 44(%rsp) jge .L486 cmpl $0, 292(%r12) je .L488 #APP xchgl %ebp,292(%r12) #NO_APP movl %ebp, %eax negl %eax movl %eax, 52(%rsp) jne .L486 .L488: movb 56(%r12), %al andl $3, %eax andl $1, %eax jne .L546 cmpq $0, 56(%rsp) je .L547 leaq 544(%r12), %rdi #APP # atomic up operation lock ; incl 544(%r12) jle 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __up_wakeup jmp 1b .previous #NO_APP leaq 64(%rsp), %rdi cld movl $10, %ecx rep stosl leaq 112(%rsp), %rdi leaq 64(%rsp), %rsi movb $10, %cl rep movsl #APP movq %gs:0,%rax #NO_APP movq %rax, 120(%rsp) movq $autoremove_wake_function, 128(%rsp) leaq 136(%rsp), %rax movq %rax, 136(%rsp) movq %rax, 144(%rsp) leaq 604(%r12), %rdi call _spin_lock .L494: movq 104(%r12), %rdi leaq 112(%rsp), %rsi movl $1, %edx call prepare_to_wait leaq 152(%r12), %rax cmpq %rax, 152(%r12) jne .L495 cmpl $0, 292(%r12) jne .L495 testb $1, 56(%r12) jne .L495 #APP movq %gs:0,%rax #NO_APP movq 8(%rax), %rax movl 16(%rax), %eax testb $4, %al jne .L495 cmpq $0, 56(%rsp) je .L495 movq 424(%r12), %rax #APP lock ; btsl $1,8(%rax) #NO_APP leaq 604(%r12), %rbx #APP movl $1,604(%r12) #NO_APP movq 56(%rsp), %rdi call schedule_timeout movq %rax, 56(%rsp) movq %rbx, %rdi call _spin_lock movq 424(%r12), %rax #APP lock ; btrl $1,8(%rax) #NO_APP jmp .L494 .L495: movq 104(%r12), %rdi leaq 112(%rsp), %rsi call finish_wait #APP movl $1,604(%r12) movq %gs:0,%rax #NO_APP movq 8(%rax), %rax movl 16(%rax), %eax testb $4, %al je .L501 movl $-4, 52(%rsp) movabsq $9223372036854775807, %rax cmpq %rax, 56(%rsp) jne .L505 jmp .L548 .L501: leaq 544(%r12), %rbx call cond_resched movq %rbx, %rdi #APP # atomic down operation lock ; decl 544(%r12) js 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __down_failed jmp 1b .previous #NO_APP movl $-11, 52(%rsp) jmp .L506 .L484: cmpl $0, 48(%rsp) movq 40(%r15), %rsi leaq 88(%rax), %rdi je .L507 movl $12, %edx call memcmp testl %eax, %eax je .L509 movq %rbp, %rsi movq %rbx, %rdi jmp .L552 .L507: movq 88(%rax), %rax movq %rax, (%rsi) movl 8(%rdi), %eax movl %eax, 8(%rsi) movl $1, 48(%rsp) .L509: cmpq $0, 32(%rsp) je .L511 movq 16(%rbp), %rsi movq %r13, %rdi call unix_copy_addr .L511: movl 136(%rbp), %eax movl 16(%rsp), %ebx cmpl %eax, %ebx cmova %eax, %ebx movq 200(%rbp), %rsi movq 16(%r13), %rdi movl %ebx, %edx call memcpy_toiovec testl %eax, %eax je .L513 leaq 152(%r12), %rdi movq %rbp, %rsi call skb_queue_head cmpl $0, 44(%rsp) jne .L486 movl $-14, 44(%rsp) jmp .L486 .L513: addl %ebx, 44(%rsp) testb $2, 12(%rsp) jne .L516 movl 136(%rbp), %eax cmpl %eax, %ebx ja .L518 subl %ebx, %eax movl %eax, 136(%rbp) cmpl 140(%rbp), %eax jae .L520 #APP ud2 ; pushq $.LC8 ; ret $855 #NO_APP .L520: mov %ebx, %eax addq %rax, 200(%rbp) .L518: cmpq $0, 104(%rbp) je .L522 movq 40(%r15), %rdi movq %rbp, %rsi call unix_detach_fds .L522: cmpl $0, 136(%rbp) jne .L531 movl 188(%rbp), %eax decl %eax jne .L526 #APP lfence #NO_APP jmp .L528 .L526: #APP lock ; decl 188(%rbp); sete %al #NO_APP testb %al, %al je .L529 .L528: movq %rbp, %rdi call __kfree_skb .L529: movq 40(%r15), %rax cmpq $0, 16(%rax) je .L551 jmp .L486 .L516: movq 104(%rbp), %rdi testq %rdi, %rdi je .L531 movq 40(%r15), %rbx call scm_fp_dup movq %rax, 16(%rbx) .L531: leaq 152(%r12), %rdi movq %rbp, %rsi .L552: call skb_queue_head jmp .L486 .L551: movslq %ebx,%rax subq %rax, 16(%rsp) movq $0, 32(%rsp) .L506: cmpq $0, 16(%rsp) jne .L483 .L486: leaq 544(%r12), %rdi #APP # atomic up operation lock ; incl 544(%r12) jle 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __up_wakeup jmp 1b .previous #NO_APP movq 40(%r15), %rbx cmpq $0, 32(%r13) jne .L533 movq 24(%rsp), %rdx movl 8(%rdx), %eax testb $8, %al jne .L535 cmpq $0, 16(%rbx) jne .L537 jmp .L538 .L535: orl $8, 48(%r13) testq %rbx, %rbx je .L505 .L538: cmpq $0, 16(%rbx) je .L505 movq %rbx, %rdi call __scm_destroy jmp .L505 .L548: movl $-512, 52(%rsp) jmp .L505 .L533: movq 24(%rsp), %rdi movl 8(%rdi), %eax testb $8, %al je .L540 movq %rbx, %r8 movl $12, %ecx movl $2, %edx movl $1, %esi movq %r13, %rdi call put_cmsg .L540: cmpq $0, 16(%rbx) je .L505 movq %rbx, %rsi movq %r13, %rdi call scm_detach_fds .L505: cmpl $0, 44(%rsp) jne .L543 movl 52(%rsp), %eax movl %eax, 44(%rsp) jmp .L543 .L471: movl %edx, 44(%rsp) jmp .L543 .L537: orl $8, 48(%r13) jmp .L538 .L543: movl 44(%rsp), %eax addq $200, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_stream_recvmsg, .-unix_stream_recvmsg .type unix_dgram_recvmsg, @function unix_dgram_recvmsg: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $88, %rsp movq %rsi, 8(%rsp) movq %rdx, %rbp movq %rcx, %rbx movl %r8d, %r14d movq 136(%rdi), %r13 movq 40(%rsi), %rax movq %rax, 24(%rsp) movl $-95, 76(%rsp) testb $1, %r8b jne .L554 movl $0, 8(%rdx) movq %rax, %r15 addq $544, %r15 call cond_resched movq %r15, %rdi movq 24(%rsp), %rax #APP # atomic down operation lock ; decl 544(%rax) js 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __down_failed jmp 1b .previous #NO_APP leaq 76(%rsp), %rcx movl %r14d, %edx andl $64, %edx movl %r14d, %esi movq %rax, %rdi call skb_recv_datagram movq %rax, %r12 testq %rax, %rax je .L556 movq 24(%rsp), %rdi addq $608, %rdi xorl %ecx, %ecx movl $1, %edx movl $1, %esi call __wake_up cmpq $0, (%rbp) je .L558 movq 16(%r12), %rsi movq %rbp, %rdi call unix_copy_addr .L558: mov 136(%r12), %ecx cmpq %rcx, %rbx jbe .L560 movq %rcx, %rbx jmp .L562 .L560: jae .L562 orl $32, 48(%rbp) .L562: movl %ebx, 20(%rsp) movq 16(%rbp), %rdx movl %ebx, %ecx xorl %esi, %esi movq %r12, %rdi call skb_copy_datagram_iovec movl %eax, 76(%rsp) testl %eax, %eax jne .L564 cmpq $0, 40(%r13) jne .L566 leaq 32(%rsp), %rdi movq %rdi, 40(%r13) cld movl $8, %ecx rep stosl .L566: leaq 88(%r12), %rcx movq 40(%r13), %rax movq 88(%r12), %rdx movq %rdx, (%rax) movl 8(%rcx), %edx movl %edx, 8(%rax) andb $2, %r14b jne .L568 cmpq $0, 16(%rcx) je .L570 movq 40(%r13), %rdi movq %r12, %rsi call unix_detach_fds jmp .L570 .L568: movq 16(%rcx), %rdi testq %rdi, %rdi je .L570 movq 40(%r13), %rbx call scm_fp_dup movq %rax, 16(%rbx) .L570: movl 20(%rsp), %edx movl %edx, 76(%rsp) movq 40(%r13), %rbx cmpq $0, 32(%rbp) jne .L573 movq 8(%rsp), %rdi movl 8(%rdi), %eax testb $8, %al jne .L575 cmpq $0, 16(%rbx) jne .L577 jmp .L564 .L575: orl $8, 48(%rbp) testq %rbx, %rbx je .L564 .L578: cmpq $0, 16(%rbx) je .L564 movq %rbx, %rdi call __scm_destroy jmp .L564 .L573: movq 8(%rsp), %rdx movl 8(%rdx), %eax testb $8, %al je .L580 movq %rbx, %r8 movl $12, %ecx movl $2, %edx movl $1, %esi movq %rbp, %rdi call put_cmsg .L580: cmpq $0, 16(%rbx) je .L564 movq %rbx, %rsi movq %rbp, %rdi call scm_detach_fds .L564: movq %r12, %rsi movq 24(%rsp), %rdi call skb_free_datagram .L556: movq %r15, %rdi #APP # atomic up operation lock ; incl (%r15) jle 2f 1: .subsection 1 .ifndef .text.lock.af_unix .text.lock.af_unix: .endif 2: call __up_wakeup jmp 1b .previous #NO_APP jmp .L554 .L577: orl $8, 48(%rbp) jmp .L578 .L554: movl 76(%rsp), %eax addq $88, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_dgram_recvmsg, .-unix_dgram_recvmsg .type unix_destruct_fds, @function unix_destruct_fds: pushq %rbp pushq %rbx subq $40, %rsp movq %rdi, %rbp cld movl $8, %ecx xorl %eax, %eax movq %rsp, %rdi rep stosl movq %rbp, %rsi movq %rsp, %rdi call unix_detach_fds cmpq $0, 16(%rsp) je .L585 movq %rsp, %rdi call __scm_destroy .L585: movq %rbp, %rdi call sock_wfree addq $40, %rsp popq %rbx popq %rbp ret .size unix_destruct_fds, .-unix_destruct_fds .type unix_stream_sendmsg, @function unix_stream_sendmsg: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $88, %rsp movq %rsi, %r8 movq %rdx, %r15 movq %rcx, (%rsp) movq 136(%rdi), %rdi movq %rdi, 16(%rsp) movq 40(%rsi), %rax movq %rax, 24(%rsp) cmpq $0, 40(%rdi) jne .L589 leaq 32(%rsp), %rax movq %rax, 40(%rdi) .L589: movq 16(%rsp), %rcx movq 40(%rcx), %rdx cld movl $8, %ecx xorl %eax, %eax movq %rdx, %rdi rep stosl #APP movq %gs:0,%rax #NO_APP movl 656(%rax), %eax movl %eax, 4(%rdx) #APP movq %gs:0,%rax #NO_APP movl 672(%rax), %eax movl %eax, 8(%rdx) #APP movq %gs:0,%rax #NO_APP movl 264(%rax), %eax movl %eax, (%rdx) cmpq $0, 40(%r15) je .L591 movq %r15, %rsi movq %r8, %rdi call __scm_send movl %eax, %r13d testl %eax, %eax js .L593 .L591: movl $-95, 76(%rsp) testb $1, 48(%r15) jne .L594 cmpl $0, 8(%r15) je .L596 movq 24(%rsp), %rdx movb 2(%rdx), %al movl $-106, %edx decb %al movl $-95, %eax cmovne %eax, %edx movl %edx, 76(%rsp) jmp .L594 .L596: movl $-107, 76(%rsp) movq 24(%rsp), %rcx movq 576(%rcx), %r12 testq %r12, %r12 je .L594 testb $2, 56(%rcx) je .L603 xorl %r13d, %r13d jmp .L605 .L603: xorl %r13d, %r13d jmp .L606 .L607: movl (%rsp), %ebp subl %r13d, %ebp movq 24(%rsp), %rdx movl 212(%rdx), %eax movl $2, %edx movl %edx, %ecx cltd idivl %ecx subl $64, %eax cmpl %eax, %ebp cmovg %eax, %ebp cmpl $16001, %ebp movl $16000, %eax cmovae %eax, %ebp leaq 76(%rsp), %rcx movl 48(%r15), %edx andl $64, %edx movslq %ebp,%rsi movq 24(%rsp), %rdi call sock_alloc_send_skb movq %rax, %rbx testq %rax, %rax je .L601 cmpl $0, 140(%rax) je .L613 xorl %eax, %eax jmp .L615 .L613: movq 216(%rax), %rax subl 208(%rbx), %eax .L615: cmpl %ebp, %eax cmovle %eax, %ebp movq 16(%rsp), %rdx movq 40(%rdx), %rax movq (%rax), %rdx movq %rdx, 88(%rbx) movl 8(%rax), %eax movl %eax, 96(%rbx) movq 16(%rsp), %rcx movq 40(%rcx), %rdi cmpq $0, 16(%rdi) je .L616 movq %rbx, %rsi call unix_attach_fds .L616: movq 16(%r15), %rax movq %rax, 8(%rsp) movq 208(%rbx), %r14 cmpl $0, 140(%rbx) je .L618 #APP ud2 ; pushq $.LC8 ; ret $819 #NO_APP .L618: mov %ebp, %eax leaq (%r14,%rax), %rax movq %rax, 208(%rbx) addl %ebp, 136(%rbx) cmpq 216(%rbx), %rax jbe .L620 #APP leaq 1f(%rip),%rdx 1: #NO_APP movl %ebp, %esi movq %rbx, %rdi call skb_over_panic .L620: movl %ebp, %edx movq 8(%rsp), %rsi movq %r14, %rdi call memcpy_fromiovec movl %eax, 76(%rsp) testl %eax, %eax je .L622 movl 188(%rbx), %eax decl %eax jne .L624 #APP lfence #NO_APP jmp .L626 .L624: #APP lock ; decl 188(%rbx); sete %al #NO_APP testb %al, %al je .L601 .L626: movq %rbx, %rdi call __kfree_skb jmp .L601 .L622: leaq 604(%r12), %rdi call _spin_lock movl 224(%r12), %eax testb $1, %al jne .L627 testb $1, 56(%r12) jne .L627 leaq 152(%r12), %rdi movq %rbx, %rsi call skb_queue_tail #APP movl $1,604(%r12) #NO_APP movl %ebp, %esi movq %r12, %rdi call *480(%r12) addl %ebp, %r13d .L606: movslq %r13d,%rax cmpq (%rsp), %rax jb .L607 movq 16(%rsp), %rdx movq 40(%rdx), %rdi testq %rdi, %rdi je .L631 cmpq $0, 16(%rdi) je .L631 call __scm_destroy .L631: movq 16(%rsp), %rcx movq $0, 40(%rcx) jmp .L593 .L627: #APP movl $1,604(%r12) #NO_APP movl 188(%rbx), %eax decl %eax jne .L634 #APP lfence #NO_APP jmp .L636 .L634: #APP lock ; decl 188(%rbx); sete %al #NO_APP testb %al, %al je .L637 .L636: movq %rbx, %rdi call __kfree_skb .L637: testl %r13d, %r13d jne .L638 .L605: testb $64, 49(%r15) jne .L638 #APP movq %gs:0,%rsi #NO_APP xorl %edx, %edx movl $13, %edi call send_sig .L638: movl $-32, 76(%rsp) jmp .L601 .L594: xorl %r13d, %r13d .L601: movq 16(%rsp), %rax movq 40(%rax), %rdi testq %rdi, %rdi je .L640 cmpq $0, 16(%rdi) je .L640 call __scm_destroy .L640: movq 16(%rsp), %rdx movq $0, 40(%rdx) testl %r13d, %r13d jne .L593 movl 76(%rsp), %r13d .L593: movl %r13d, %eax addq $88, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_stream_sendmsg, .-unix_stream_sendmsg .type unix_dgram_connect, @function unix_dgram_connect: pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $24, %rsp movq %rdi, %rbp movq %rsi, %r13 movl %edx, %esi movq 40(%rdi), %r12 cmpw $0, (%r13) je .L646 leaq 20(%rsp), %rdx movq %r13, %rdi call unix_mkname movl %eax, %ebx movl %eax, 16(%rsp) testl %eax, %eax js .L648 movl 8(%rbp), %eax testb $8, %al je .L650 cmpq $0, 520(%r12) jne .L650 movq %rbp, %rdi call unix_autobind movl %eax, 16(%rsp) testl %eax, %eax jne .L648 .L650: movl 20(%rsp), %ecx movswl 72(%rbp),%edx leaq 16(%rsp), %r8 movl %ebx, %esi movq %r13, %rdi call unix_find_other movq %rax, %rbp testq %rax, %rax je .L648 leaq 604(%r12), %rdi call _spin_lock movl $-1, 16(%rsp) movq 576(%rbp), %rax testq %rax, %rax je .L654 cmpq %r12, %rax jne .L656 .L654: movl $0, 16(%rsp) jmp .L657 .L646: leaq 604(%r12), %rdi call _spin_lock xorl %ebp, %ebp .L657: movq 576(%r12), %rbx testq %rbx, %rbx je .L658 movq %rbp, 576(%r12) #APP movl $1,604(%r12) #NO_APP cmpq %rbx, %rbp je .L660 movq %rbx, %rsi movq %r12, %rdi call unix_dgram_disconnected .L660: #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L667 movq %rbx, %rdi call sk_free .L667: xorl %eax, %eax jmp .L664 .L658: movq %rbp, 576(%r12) #APP movl $1,604(%r12) #NO_APP jmp .L667 .L656: #APP movl $1,604(%r12) lock ; decl 40(%rbp); sete %al #NO_APP testb %al, %al je .L648 movq %rbp, %rdi call sk_free .L648: movl 16(%rsp), %eax .L664: addq $24, %rsp popq %rbx popq %rbp popq %r12 popq %r13 ret .size unix_dgram_connect, .-unix_dgram_connect .section .rodata.str1.1 .LC14: .string "include/linux/dcache.h" .text .type unix_stream_connect, @function unix_stream_connect: pushq %r15 pushq %r14 pushq %r13 pushq %r12 pushq %rbp pushq %rbx subq $40, %rsp movq %rdi, 16(%rsp) movq %rsi, 8(%rsp) movl %edx, %esi movl %ecx, %ebx movq 40(%rdi), %r12 leaq 36(%rsp), %rdx movq 8(%rsp), %rdi call unix_mkname movl %eax, %r14d movl %eax, 32(%rsp) testl %eax, %eax js .L669 movq 16(%rsp), %rdx movl 8(%rdx), %eax testb $8, %al je .L671 cmpq $0, 520(%r12) jne .L671 movq %rdx, %rdi call unix_autobind movl %eax, 32(%rsp) testl %eax, %eax jne .L669 .L671: andb $8, %bh je .L674 xorl %r15d, %r15d jmp .L676 .L674: movq 336(%r12), %r15 .L676: movl $-12, 32(%rsp) xorl %edi, %edi call unix_create1 movq %rax, %rbp testq %rax, %rax je .L669 movl $208, %ecx xorl %edx, %edx movl $1, %esi movq %rax, %rdi call sock_wmalloc movq %rax, %r13 testq %rax, %rax je .L678 .L733: movl 36(%rsp), %ecx movzwl 58(%r12), %edx leaq 32(%rsp), %r8 movl %r14d, %esi movq 8(%rsp), %rdi call unix_find_other movq %rax, %rbx testq %rax, %rax je .L680 leaq 604(%rax), %rdi call _spin_lock movl 224(%rbx), %eax testb $1, %al jne .L730 movl $-111, 32(%rsp) movb 2(%rbx), %al cmpb $10, %al jne .L685 movzwl 302(%rbx), %eax cmpl %eax, 168(%rbx) jbe .L687 movl $-11, 32(%rsp) testq %r15, %r15 je .L685 movq %r15, %rsi movq %rbx, %rdi call unix_wait_for_peer movq %rax, %r15 movl $-512, %edx movabsq $9223372036854775807, %rax cmpq %rax, %r15 movl $-4, %eax cmovne %eax, %edx movl %edx, 32(%rsp) #APP movq %gs:0,%rax #NO_APP movq 8(%rax), %rax movl 16(%rax), %eax testb $4, %al jne .L680 jmp .L731 .L687: movb 2(%r12), %al cmpb $1, %al je .L696 cmpb $7, %al jne .L726 jmp .L697 .L696: movl $-106, 32(%rsp) jmp .L685 .L726: movl $-22, 32(%rsp) jmp .L685 .L697: leaq 604(%r12), %rdi call _spin_lock movb 2(%r12), %al cmpb $7, %al je .L698 #APP movl $1,604(%r12) #NO_APP .L730: #APP movl $1,604(%rbx) #NO_APP .L731: #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L733 movq %rbx, %rdi call sk_free jmp .L733 .L698: movl $0, 32(%rsp) #APP lock ; incl 40(%r12) #NO_APP movq %r12, 576(%rbp) movb $1, 2(%rbp) movw 58(%r12), %ax movw %ax, 58(%rbp) #APP movq %gs:0,%rax #NO_APP movl 264(%rax), %eax movl %eax, 308(%rbp) #APP movq %gs:0,%rax #NO_APP movl 660(%rax), %eax movl %eax, 312(%rbp) #APP movq %gs:0,%rax #NO_APP movl 676(%rax), %eax movl %eax, 316(%rbp) leaq 608(%rbp), %rax movq %rax, 104(%rbp) movq 520(%rbx), %rax testq %rax, %rax je .L701 #APP lock ; incl (%rax) #NO_APP movq 520(%rbx), %rax movq %rax, 520(%rbp) .L701: movq 528(%rbx), %rdx testq %rdx, %rdx je .L703 movl (%rdx), %eax testl %eax, %eax jne .L707 #APP ud2 ; pushq $.LC14 ; ret $300 #NO_APP .L707: #APP lock ; incl (%rdx) #NO_APP movq %rdx, 528(%rbp) movq 536(%rbx), %rax testq %rax, %rax je .L709 #APP lock ; incl 80(%rax) #NO_APP .L709: movq %rax, 536(%rbp) .L703: movq 308(%rbx), %rax movq %rax, 308(%r12) movl 316(%rbx), %eax movl %eax, 316(%r12) movq 16(%rsp), %rax movl $3, (%rax) movb $1, 2(%r12) #APP lock ; incl 40(%rbp) #NO_APP movq %rbp, 576(%r12) #APP movl $1,604(%r12) #NO_APP leaq 172(%rbx), %rdi call _spin_lock leaq 152(%rbx), %rax incl 16(%rax) movq 8(%rax), %rdx movq %rax, (%r13) movq %rdx, 8(%r13) movq %r13, (%rdx) movq %r13, 8(%rax) #APP lock ; incl 600(%rbp) movl $1,172(%rbx) movl $1,604(%rbx) #NO_APP xorl %esi, %esi movq %rbx, %rdi call *480(%rbx) #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L732 movq %rbx, %rdi call sk_free .L732: xorl %eax, %eax jmp .L713 .L685: #APP movl $1,604(%rbx) #NO_APP jmp .L680 .L714: #APP lfence #NO_APP jmp .L715 .L727: #APP lock ; decl 188(%r13); sete %al #NO_APP testb %al, %al je .L717 .L715: movq %r13, %rdi call __kfree_skb jmp .L717 .L718: #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L669 movq %rbx, %rdi call sk_free .L669: movl 32(%rsp), %eax jmp .L713 .L680: movl 188(%r13), %eax decl %eax je .L714 jmp .L727 .L717: xorl %esi, %esi movq %rbp, %rdi call unix_release_sock testq %rbx, %rbx jne .L718 jmp .L669 .L678: xorl %esi, %esi movq %rbp, %rdi call unix_release_sock jmp .L669 .L713: addq $40, %rsp popq %rbx popq %rbp popq %r12 popq %r13 popq %r14 popq %r15 ret .size unix_stream_connect, .-unix_stream_connect .type unix_getname, @function unix_getname: pushq %r12 pushq %rbp pushq %rbx movq %rsi, %rbp movq %rdx, %r12 movq 40(%rdi), %rbx testl %ecx, %ecx je .L735 movq %rbx, %rdi call unix_peer_get movq %rax, %rbx movl $-107, %eax testq %rbx, %rbx je .L739 jmp .L737 .L735: #APP lock ; incl 40(%rbx) #NO_APP .L737: leaq 604(%rbx), %rdi call _spin_lock movq 520(%rbx), %rax testq %rax, %rax jne .L740 movw $1, (%rbp) movb $0, 2(%rbp) movl $2, (%r12) jmp .L742 .L740: movslq 4(%rax),%rcx movl %ecx, (%r12) leaq 12(%rax), %rsi cld movq %rbp, %rdi rep movsb .L742: #APP movl $1,604(%rbx) lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al je .L746 movq %rbx, %rdi call sk_free .L746: xorl %eax, %eax .L739: popq %rbx popq %rbp popq %r12 ret .size unix_getname, .-unix_getname .type unix_write_space, @function unix_write_space: pushq %rbx movq %rdi, %rbx leaq 288(%rdi), %rdi call _read_lock movl 144(%rbx), %eax sall $2, %eax cmpl 212(%rbx), %eax jg .L748 movq 104(%rbx), %rdi testq %rdi, %rdi je .L750 leaq 8(%rdi), %rax cmpq %rax, 8(%rdi) je .L750 xorl %ecx, %ecx movl $1, %edx movl $1, %esi call __wake_up .L750: movq 424(%rbx), %rdi testq %rdi, %rdi je .L748 cmpq $0, 24(%rdi) je .L748 movl $131074, %edx movl $2, %esi call sock_wake_async .L748: #APP lock ; incl 288(%rbx) #NO_APP popq %rbx ret .size unix_write_space, .-unix_write_space .type unix_shutdown, @function unix_shutdown: pushq %r12 pushq %rbp pushq %rbx movq 40(%rdi), %rbp leal 1(%rsi), %r12d movl %r12d, %ebx andl $3, %ebx je .L757 leaq 604(%rbp), %rdi call _spin_lock movb 56(%rbp), %dl andl $3, %edx orl %ebx, %edx movb 56(%rbp), %al andl $-4, %eax orl %edx, %eax movb %al, 56(%rbp) movq 576(%rbp), %rbx testq %rbx, %rbx je .L759 #APP lock ; incl 40(%rbx) #NO_APP .L759: #APP movl $1,604(%rbp) #NO_APP movq %rbp, %rdi call *472(%rbp) testq %rbx, %rbx je .L757 movw 58(%rbp), %ax cmpw $1, %ax je .L762 cmpw $5, %ax jne .L764 .L762: movl %r12d, %ebp andl $1, %ebp negl %ebp andl $2, %ebp andb $2, %r12b je .L768 orl $1, %ebp .L768: leaq 604(%rbx), %rdi call _spin_lock movb 56(%rbx), %dl orl %ebp, %edx andl $3, %edx movb 56(%rbx), %al andl $-4, %eax orl %edx, %eax movb %al, 56(%rbx) #APP movl $1,604(%rbx) #NO_APP movq %rbx, %rdi call *472(%rbx) leaq 288(%rbx), %rdi call _read_lock cmpl $3, %ebp jne .L770 movq 424(%rbx), %rdi testq %rdi, %rdi je .L772 cmpq $0, 24(%rdi) je .L772 movl $131078, %edx jmp .L780 .L770: andb $1, %bpl je .L772 movq 424(%rbx), %rdi testq %rdi, %rdi je .L772 cmpq $0, 24(%rdi) je .L772 movl $131073, %edx .L780: movl $1, %esi call sock_wake_async .L772: #APP lock ; incl 288(%rbx) #NO_APP jmp .L764 .L778: movq %rbx, %rdi call sk_free jmp .L757 .L764: #APP lock ; decl 40(%rbx); sete %al #NO_APP testb %al, %al jne .L778 .L757: xorl %eax, %eax popq %rbx popq %rbp popq %r12 ret .size unix_shutdown, .-unix_shutdown .globl sysctl_unix_max_dgram_qlen .data .align 4 .type sysctl_unix_max_dgram_qlen, @object .size sysctl_unix_max_dgram_qlen, 4 sysctl_unix_max_dgram_qlen: .long 10 .globl unix_table_lock .align 4 .type unix_table_lock, @object .size unix_table_lock, 4 unix_table_lock: .long 1 .section .initcall6.init,"aw",@progbits .align 8 .type __initcall_af_unix_init, @object .size __initcall_af_unix_init, 8 __initcall_af_unix_init: .quad af_unix_init .section .exitcall.exit,"aw",@progbits .align 8 .type __exitcall_af_unix_exit, @object .size __exitcall_af_unix_exit, 8 __exitcall_af_unix_exit: .quad af_unix_exit .data .align 32 .type unix_proto, @object .size unix_proto, 560 unix_proto: .zero 216 .long 632 .zero 28 .quad 0 .string "UNIX" .zero 27 .zero 272 .align 32 .type unix_family_ops, @object .size unix_family_ops, 32 unix_family_ops: .long 1 .zero 4 .quad unix_create .zero 8 .quad 0 .align 32 .type unix_seq_fops, @object .size unix_seq_fops, 216 unix_seq_fops: .quad 0 .quad seq_lseek .quad seq_read .zero 72 .quad unix_seq_open .zero 8 .quad seq_release_private .zero 96 .section .rodata .type __func__.21370, @object .size __func__.21370, 13 __func__.21370: .string "af_unix_init" .data .align 32 .type unix_seq_ops, @object .size unix_seq_ops, 32 unix_seq_ops: .quad unix_seq_start .quad unix_seq_stop .quad unix_seq_next .quad unix_seq_show .section .rodata .align 32 .type unix_stream_ops, @object .size unix_stream_ops, 144 unix_stream_ops: .long 1 .zero 4 .quad 0 .quad unix_release .quad unix_bind .quad unix_stream_connect .quad unix_socketpair .quad unix_accept .quad unix_getname .quad unix_poll .quad unix_ioctl .quad unix_listen .quad unix_shutdown .quad sock_no_setsockopt .quad sock_no_getsockopt .quad unix_stream_sendmsg .quad unix_stream_recvmsg .quad sock_no_mmap .quad sock_no_sendpage .align 32 .type unix_dgram_ops, @object .size unix_dgram_ops, 144 unix_dgram_ops: .long 1 .zero 4 .quad 0 .quad unix_release .quad unix_bind .quad unix_dgram_connect .quad unix_socketpair .quad sock_no_accept .quad unix_getname .quad datagram_poll .quad unix_ioctl .quad sock_no_listen .quad unix_shutdown .quad sock_no_setsockopt .quad sock_no_getsockopt .quad unix_dgram_sendmsg .quad unix_dgram_recvmsg .quad sock_no_mmap .quad sock_no_sendpage .align 32 .type unix_seqpacket_ops, @object .size unix_seqpacket_ops, 144 unix_seqpacket_ops: .long 1 .zero 4 .quad 0 .quad unix_release .quad unix_bind .quad unix_stream_connect .quad unix_socketpair .quad unix_accept .quad unix_getname .quad datagram_poll .quad unix_ioctl .quad unix_listen .quad unix_shutdown .quad sock_no_setsockopt .quad sock_no_getsockopt .quad unix_seqpacket_sendmsg .quad unix_dgram_recvmsg .quad sock_no_mmap .quad sock_no_sendpage .data .align 4 .type ordernum.20442, @object .size ordernum.20442, 4 ordernum.20442: .long 1 .section .rodata .align 16 .type __func__.18751, @object .size __func__.18751, 17 __func__.18751: .string "sk_del_node_init" .local unix_nr_socks .comm unix_nr_socks,4,4 .globl unix_socket_table .bss .align 32 .type unix_socket_table, @object .size unix_socket_table, 2056 unix_socket_table: .zero 2056 .ident "GCC: (GNU) 4.1.0 20060211 (prerelease) [gcc-4_1-branch revision 110873 clean]" .section .note.GNU-stack,"",@progbits