From: Sergey Lapin <slapin@ossfans.org>
To: Jiri Slaby <jslaby@suse.cz>
Cc: linux-kernel@vger.kernel.org
Subject: Re: ldisc problems with 2.6.32-2.6.37-rc2 (at least)
Date: Wed, 24 Nov 2010 17:03:02 -0500 [thread overview]
Message-ID: <20101124220302.GB8691@build.ihdev.net> (raw)
In-Reply-To: <4CED6B53.50408@suse.cz>
On Wed, Nov 24, 2010 at 08:45:23PM +0100, Jiri Slaby wrote:
> On 11/24/2010 08:43 PM, Jiri Slaby wrote:
> > Could you provide disassembly of tty_set_ldisc? E.g. by extracting it from:
> > objdump -d drivers/tty/tty_ldisc.o
>
> Or maybe better after linking:
> objdump -d vmlinux
>
> thanks,
> --
> js
> suse labs
Disassembly of tty_set_ldisc
c01bbde8 <tty_set_ldisc>:
c01bbde8: e92d4ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, lr}
c01bbdec: e1a04000 mov r4, r0
c01bbdf0: e1a00001 mov r0, r1
c01bbdf4: e1a0b001 mov fp, r1
c01bbdf8: e24dd054 sub sp, sp, #84 ; 0x54
c01bbdfc: ebfffe31 bl c01bb6c8 <tty_ldisc_get>
c01bbe00: e3700a01 cmn r0, #4096 ; 0x1000
c01bbe04: e1a06000 mov r6, r0
c01bbe08: 81a05000 movhi r5, r0
c01bbe0c: 8a000100 bhi c01bc214 <tty_set_ldisc+0x42c>
c01bbe10: eb06eb04 bl c0376a28 <tty_lock>
c01bbe14: e5943024 ldr r3, [r4, #36] ; 0x24
c01bbe18: e59480a0 ldr r8, [r4, #160] ; 0xa0
c01bbe1c: e5933000 ldr r3, [r3]
c01bbe20: e5933008 ldr r3, [r3, #8]
c01bbe24: e153000b cmp r3, fp
c01bbe28: 1a000004 bne c01bbe40 <tty_set_ldisc+0x58>
c01bbe2c: eb06eae8 bl c03769d4 <tty_unlock>
c01bbe30: e1a00006 mov r0, r6
c01bbe34: ebfffeac bl c01bb8ec <put_ldisc>
c01bbe38: e3a05000 mov r5, #0
c01bbe3c: ea0000f4 b c01bc214 <tty_set_ldisc+0x42c>
c01bbe40: eb06eae3 bl c03769d4 <tty_unlock>
c01bbe44: e2847018 add r7, r4, #24
c01bbe48: e1a00004 mov r0, r4
c01bbe4c: e3a01000 mov r1, #0
c01bbe50: ebfffa07 bl c01ba674 <tty_wait_until_sent>
c01bbe54: eb06eaf3 bl c0376a28 <tty_lock>
c01bbe58: e1a00007 mov r0, r7
c01bbe5c: e284a088 add sl, r4, #136 ; 0x88
c01bbe60: eb06e62e bl c0375720 <mutex_lock>
c01bbe64: e1a0300d mov r3, sp
c01bbe68: e3c35d7f bic r5, r3, #8128 ; 0x1fc0
c01bbe6c: e3c5503f bic r5, r5, #63 ; 0x3f
c01bbe70: ea000023 b c01bbf04 <tty_set_ldisc+0x11c>
c01bbe74: e1a00007 mov r0, r7
c01bbe78: eb06e5d5 bl c03755d4 <mutex_unlock>
c01bbe7c: eb06ead4 bl c03769d4 <tty_unlock>
c01bbe80: e59a3000 ldr r3, [sl]
c01bbe84: e3130b01 tst r3, #1024 ; 0x400
c01bbe88: 0a00001a beq c01bbef8 <tty_set_ldisc+0x110>
c01bbe8c: e595300c ldr r3, [r5, #12]
c01bbe90: e28d9010 add r9, sp, #16
c01bbe94: e1a00009 mov r0, r9
c01bbe98: e3a01000 mov r1, #0
c01bbe9c: e3a02014 mov r2, #20
c01bbea0: e289900c add r9, r9, #12
c01bbea4: e58d3004 str r3, [sp, #4]
c01bbea8: ebff5fb4 bl c0193d80 <memset>
c01bbeac: e59d3004 ldr r3, [sp, #4]
c01bbeb0: e58d901c str r9, [sp, #28]
c01bbeb4: e58d9020 str r9, [sp, #32]
c01bbeb8: e58d3014 str r3, [sp, #20]
c01bbebc: e59f335c ldr r3, [pc, #860] ; c01bc220 <tty_set_ldisc+0x438>
c01bbec0: e58d3018 str r3, [sp, #24]
c01bbec4: e28d9010 add r9, sp, #16
c01bbec8: e3a02002 mov r2, #2
c01bbecc: e59f0350 ldr r0, [pc, #848] ; c01bc224 <tty_set_ldisc+0x43c>
c01bbed0: e1a01009 mov r1, r9
c01bbed4: ebfa50f5 bl c00502b0 <prepare_to_wait>
c01bbed8: e59a3000 ldr r3, [sl]
c01bbedc: e3130b01 tst r3, #1024 ; 0x400
c01bbee0: 0a000001 beq c01bbeec <tty_set_ldisc+0x104>
c01bbee4: eb06e1e4 bl c037467c <schedule>
c01bbee8: eafffff5 b c01bbec4 <tty_set_ldisc+0xdc>
c01bbeec: e59f0330 ldr r0, [pc, #816] ; c01bc224 <tty_set_ldisc+0x43c>
c01bbef0: e1a01009 mov r1, r9
c01bbef4: ebfa509e bl c0050174 <finish_wait>
c01bbef8: eb06eaca bl c0376a28 <tty_lock>
c01bbefc: e1a00007 mov r0, r7
c01bbf00: eb06e606 bl c0375720 <mutex_lock>
c01bbf04: e59a3000 ldr r3, [sl]
c01bbf08: e2133b01 ands r3, r3, #1024 ; 0x400
c01bbf0c: 1affffd8 bne c01bbe74 <tty_set_ldisc+0x8c>
c01bbf10: e10f2000 mrs r2, CPSR
c01bbf14: e3821080 orr r1, r2, #128 ; 0x80
c01bbf18: e121f001 msr CPSR_c, r1
c01bbf1c: e5941088 ldr r1, [r4, #136] ; 0x88
c01bbf20: e3811b01 orr r1, r1, #1024 ; 0x400
c01bbf24: e5841088 str r1, [r4, #136] ; 0x88
c01bbf28: e121f002 msr CPSR_c, r2
c01bbf2c: e584309c str r3, [r4, #156] ; 0x9c
c01bbf30: e594a024 ldr sl, [r4, #36] ; 0x24
c01bbf34: eb06eaa6 bl c03769d4 <tty_unlock>
c01bbf38: e1a00004 mov r0, r4
c01bbf3c: ebfffe1f bl c01bb7c0 <tty_ldisc_halt>
c01bbf40: e3580000 cmp r8, #0
c01bbf44: 058d8008 streq r8, [sp, #8]
c01bbf48: e58d000c str r0, [sp, #12]
c01bbf4c: 0a000002 beq c01bbf5c <tty_set_ldisc+0x174>
c01bbf50: e1a00008 mov r0, r8
c01bbf54: ebfffe19 bl c01bb7c0 <tty_ldisc_halt>
c01bbf58: e58d0008 str r0, [sp, #8]
c01bbf5c: e1a00007 mov r0, r7
c01bbf60: eb06e59b bl c03755d4 <mutex_unlock>
c01bbf64: ebfa402c bl c004c01c <flush_scheduled_work>
c01bbf68: e5943024 ldr r3, [r4, #36] ; 0x24
c01bbf6c: e5933004 ldr r3, [r3, #4]
c01bbf70: e3530001 cmp r3, #1
c01bbf74: 0a00002a beq c01bc024 <tty_set_ldisc+0x23c>
c01bbf78: e1a0300d mov r3, sp
c01bbf7c: e28d5010 add r5, sp, #16
c01bbf80: e3c39d7f bic r9, r3, #8128 ; 0x1fc0
c01bbf84: e1a00005 mov r0, r5
c01bbf88: e3c9903f bic r9, r9, #63 ; 0x3f
c01bbf8c: e3a01000 mov r1, #0
c01bbf90: e599300c ldr r3, [r9, #12]
c01bbf94: e3a02014 mov r2, #20
c01bbf98: e285500c add r5, r5, #12
c01bbf9c: e58d3004 str r3, [sp, #4]
c01bbfa0: ebff5f76 bl c0193d80 <memset>
c01bbfa4: e59d3004 ldr r3, [sp, #4]
c01bbfa8: e58d501c str r5, [sp, #28]
c01bbfac: e58d5020 str r5, [sp, #32]
c01bbfb0: e3a05f7d mov r5, #500 ; 0x1f4
c01bbfb4: e58d3014 str r3, [sp, #20]
c01bbfb8: e59f3260 ldr r3, [pc, #608] ; c01bc220 <tty_set_ldisc+0x438>
c01bbfbc: e58d3018 str r3, [sp, #24]
c01bbfc0: e59f0260 ldr r0, [pc, #608] ; c01bc228 <tty_set_ldisc+0x440>
c01bbfc4: e28d1010 add r1, sp, #16
c01bbfc8: e3a02001 mov r2, #1
c01bbfcc: ebfa50b7 bl c00502b0 <prepare_to_wait>
c01bbfd0: e5943024 ldr r3, [r4, #36] ; 0x24
c01bbfd4: e5933004 ldr r3, [r3, #4]
c01bbfd8: e3530001 cmp r3, #1
c01bbfdc: 0a000009 beq c01bc008 <tty_set_ldisc+0x220>
c01bbfe0: e599300c ldr r3, [r9, #12]
c01bbfe4: e5933004 ldr r3, [r3, #4]
c01bbfe8: e5933000 ldr r3, [r3]
c01bbfec: e3130001 tst r3, #1
c01bbff0: 159f5234 ldrne r5, [pc, #564] ; c01bc22c <tty_set_ldisc+0x444>
c01bbff4: 1a000003 bne c01bc008 <tty_set_ldisc+0x220>
c01bbff8: e1a00005 mov r0, r5
c01bbffc: eb06e42f bl c03750c0 <schedule_timeout>
c01bc000: e2505000 subs r5, r0, #0
c01bc004: 1affffed bne c01bbfc0 <tty_set_ldisc+0x1d8>
c01bc008: e59f0218 ldr r0, [pc, #536] ; c01bc228 <tty_set_ldisc+0x440>
c01bc00c: e28d1010 add r1, sp, #16
c01bc010: ebfa5057 bl c0050174 <finish_wait>
c01bc014: e3550000 cmp r5, #0
c01bc018: ba000002 blt c01bc028 <tty_set_ldisc+0x240>
c01bc01c: 03e0500f mvneq r5, #15
c01bc020: 0a000000 beq c01bc028 <tty_set_ldisc+0x240>
c01bc024: e3a05000 mov r5, #0
c01bc028: eb06ea7e bl c0376a28 <tty_lock>
c01bc02c: e1a00007 mov r0, r7
c01bc030: eb06e5ba bl c0375720 <mutex_lock>
c01bc034: e3550000 cmp r5, #0
c01bc038: 11a00006 movne r0, r6
c01bc03c: 1a00005e bne c01bc1bc <tty_set_ldisc+0x3d4>
c01bc040: e5943088 ldr r3, [r4, #136] ; 0x88
c01bc044: e3130701 tst r3, #262144 ; 0x40000
c01bc048: 0a00000d beq c01bc084 <tty_set_ldisc+0x29c>
c01bc04c: e10f3000 mrs r3, CPSR
c01bc050: e3832080 orr r2, r3, #128 ; 0x80
c01bc054: e121f002 msr CPSR_c, r2
c01bc058: e5942088 ldr r2, [r4, #136] ; 0x88
c01bc05c: e3c22b01 bic r2, r2, #1024 ; 0x400
c01bc060: e5842088 str r2, [r4, #136] ; 0x88
c01bc064: e121f003 msr CPSR_c, r3
c01bc068: e1a00007 mov r0, r7
c01bc06c: eb06e558 bl c03755d4 <mutex_unlock>
c01bc070: e1a00006 mov r0, r6
c01bc074: ebfffe1c bl c01bb8ec <put_ldisc>
c01bc078: e3e05004 mvn r5, #4
c01bc07c: eb06ea54 bl c03769d4 <tty_unlock>
c01bc080: ea000063 b c01bc214 <tty_set_ldisc+0x42c>
c01bc084: e1a00004 mov r0, r4
c01bc088: e1a0100a mov r1, sl
c01bc08c: ebfffdd6 bl c01bb7ec <tty_ldisc_close>
c01bc090: e1a00004 mov r0, r4
c01bc094: e1a01006 mov r1, r6
c01bc098: ebfffcae bl c01bb358 <tty_ldisc_assign>
c01bc09c: e1a00004 mov r0, r4
c01bc0a0: e1a0100b mov r1, fp
c01bc0a4: ebfffdba bl c01bb794 <tty_set_termios_ldisc>
c01bc0a8: e1a00004 mov r0, r4
c01bc0ac: e1a01006 mov r1, r6
c01bc0b0: ebfffde6 bl c01bb850 <tty_ldisc_open>
c01bc0b4: e2505000 subs r5, r0, #0
c01bc0b8: aa000031 bge c01bc184 <tty_set_ldisc+0x39c>
c01bc0bc: e1a00006 mov r0, r6
c01bc0c0: ebfffe09 bl c01bb8ec <put_ldisc>
c01bc0c4: e59a3000 ldr r3, [sl]
c01bc0c8: e5930008 ldr r0, [r3, #8]
c01bc0cc: ebfffd7d bl c01bb6c8 <tty_ldisc_get>
c01bc0d0: e3700a01 cmn r0, #4096 ; 0x1000
c01bc0d4: e1a06000 mov r6, r0
c01bc0d8: 9a000002 bls c01bc0e8 <tty_set_ldisc+0x300>
c01bc0dc: e59f014c ldr r0, [pc, #332] ; c01bc230 <tty_set_ldisc+0x448>
c01bc0e0: e3a01e1f mov r1, #496 ; 0x1f0
c01bc0e4: ebf9ee80 bl c0037aec <warn_slowpath_null>
c01bc0e8: e1a00004 mov r0, r4
c01bc0ec: e1a01006 mov r1, r6
c01bc0f0: ebfffc98 bl c01bb358 <tty_ldisc_assign>
c01bc0f4: e5963000 ldr r3, [r6]
c01bc0f8: e1a00004 mov r0, r4
c01bc0fc: e5931008 ldr r1, [r3, #8]
c01bc100: ebfffda3 bl c01bb794 <tty_set_termios_ldisc>
c01bc104: e1a00004 mov r0, r4
c01bc108: e1a01006 mov r1, r6
c01bc10c: ebfffdcf bl c01bb850 <tty_ldisc_open>
c01bc110: e3500000 cmp r0, #0
c01bc114: aa00001a bge c01bc184 <tty_set_ldisc+0x39c>
c01bc118: e1a00006 mov r0, r6
c01bc11c: ebfffdf2 bl c01bb8ec <put_ldisc>
c01bc120: e3a00000 mov r0, #0
c01bc124: ebfffd67 bl c01bb6c8 <tty_ldisc_get>
c01bc128: e3700a01 cmn r0, #4096 ; 0x1000
c01bc12c: e1a06000 mov r6, r0
c01bc130: 9a000001 bls c01bc13c <tty_set_ldisc+0x354>
c01bc134: e59f00f8 ldr r0, [pc, #248] ; c01bc234 <tty_set_ldisc+0x44c>
c01bc138: eb06e09c bl c03743b0 <panic>
c01bc13c: e1a01006 mov r1, r6
c01bc140: e1a00004 mov r0, r4
c01bc144: ebfffc83 bl c01bb358 <tty_ldisc_assign>
c01bc148: e1a00004 mov r0, r4
c01bc14c: e3a01000 mov r1, #0
c01bc150: ebfffd8f bl c01bb794 <tty_set_termios_ldisc>
c01bc154: e1a01006 mov r1, r6
c01bc158: e1a00004 mov r0, r4
c01bc15c: ebfffdbb bl c01bb850 <tty_ldisc_open>
c01bc160: e2506000 subs r6, r0, #0
c01bc164: aa000006 bge c01bc184 <tty_set_ldisc+0x39c>
c01bc168: e28d1010 add r1, sp, #16
c01bc16c: e1a00004 mov r0, r4
c01bc16c: e1a00004 mov r0, r4
c01bc170: ebffe9cd bl c01b68ac <tty_name>
c01bc174: e1a02006 mov r2, r6
c01bc178: e1a01000 mov r1, r0
c01bc17c: e59f00b4 ldr r0, [pc, #180] ; c01bc238 <tty_set_ldisc+0x450>
c01bc180: eb06e08a bl c03743b0 <panic>
c01bc184: e5943024 ldr r3, [r4, #36] ; 0x24
c01bc188: e5932000 ldr r2, [r3]
c01bc18c: e59a3000 ldr r3, [sl]
c01bc190: e5922008 ldr r2, [r2, #8]
c01bc194: e5933008 ldr r3, [r3, #8]
c01bc198: e1520003 cmp r2, r3
c01bc19c: 0a000005 beq c01bc1b8 <tty_set_ldisc+0x3d0>
c01bc1a0: e5943010 ldr r3, [r4, #16]
c01bc1a4: e5933058 ldr r3, [r3, #88] ; 0x58
c01bc1a8: e3530000 cmp r3, #0
c01bc1ac: 0a000001 beq c01bc1b8 <tty_set_ldisc+0x3d0>
c01bc1b0: e1a00004 mov r0, r4
c01bc1b4: e12fff33 blx r3
c01bc1b8: e1a0000a mov r0, sl
c01bc1bc: ebfffdca bl c01bb8ec <put_ldisc>
c01bc1c0: e1a00004 mov r0, r4
c01bc1c4: ebfffe31 bl c01bba90 <tty_ldisc_enable>
c01bc1c8: e3580000 cmp r8, #0
c01bc1cc: 0a000001 beq c01bc1d8 <tty_set_ldisc+0x3f0>
c01bc1d0: e1a00008 mov r0, r8
c01bc1d4: ebfffe2d bl c01bba90 <tty_ldisc_enable>
c01bc1d8: e59d300c ldr r3, [sp, #12]
c01bc1dc: e3530000 cmp r3, #0
c01bc1e0: 0a000002 beq c01bc1f0 <tty_set_ldisc+0x408>
c01bc1e4: e28400a8 add r0, r4, #168 ; 0xa8
c01bc1e8: e3a01001 mov r1, #1
c01bc1ec: ebfa3fe5 bl c004c188 <schedule_delayed_work>
c01bc1f0: e59d3008 ldr r3, [sp, #8]
c01bc1f4: e3530000 cmp r3, #0
c01bc1f8: 0a000002 beq c01bc208 <tty_set_ldisc+0x420>
c01bc1fc: e28800a8 add r0, r8, #168 ; 0xa8
c01bc200: e3a01001 mov r1, #1
c01bc204: ebfa3fdf bl c004c188 <schedule_delayed_work>
c01bc208: e1a00007 mov r0, r7
c01bc20c: eb06e4f0 bl c03755d4 <mutex_unlock>
c01bc210: eb06e9ef bl c03769d4 <tty_unlock>
c01bc214: e1a00005 mov r0, r5
c01bc218: e28dd054 add sp, sp, #84 ; 0x54
c01bc21c: e8bd8ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, pc}
c01bc220: c0050040 .word 0xc0050040
c01bc224: c04a3e08 .word 0xc04a3e08
c01bc228: c04a3e00 .word 0xc04a3e00
c01bc22c: fffffe00 .word 0xfffffe00
c01bc230: c0431d29 .word 0xc0431d29
c01bc234: c0431d41 .word 0xc0431d41
c01bc238: c0431d4c .word 0xc0431d4c
Hope, that helps,
S.
prev parent reply other threads:[~2010-11-24 22:03 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-24 13:52 ldisc problems with 2.6.32-2.6.37-rc2 (at least) Sergey Lapin
2010-11-24 14:33 ` Jiri Slaby
2010-11-24 17:03 ` Sergey Lapin
2010-11-24 19:43 ` Jiri Slaby
2010-11-24 19:45 ` Jiri Slaby
2010-11-24 21:53 ` Sergey Lapin
2010-11-24 22:02 ` Jiri Slaby
2010-11-24 22:26 ` Sergey Lapin
2010-11-24 22:41 ` Jiri Slaby
2010-11-24 23:27 ` [PATCH 1/2] TTY: ldisc, fix open flag handling Jiri Slaby
2010-11-29 21:50 ` Greg KH
2010-11-29 22:41 ` Jiri Slaby
2010-11-29 22:47 ` Greg KH
2010-11-24 23:27 ` [PATCH 2/2] NET: wan/x25, fix ldisc->open retval Jiri Slaby
2010-11-25 23:13 ` Sergey Lapin
2010-11-24 22:03 ` Sergey Lapin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101124220302.GB8691@build.ihdev.net \
--to=slapin@ossfans.org \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.