public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Dickson <dickson@permanentmail.com>
To: Adrian Bunk <bunk@stusta.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.6.10-rc1: drivers/ide/ide-dma.o: value of -130 too large for field of 1 bytes at 911
Date: Mon, 1 Nov 2004 10:21:19 -0700	[thread overview]
Message-ID: <20041101102119.7c8c4399.dickson@permanentmail.com> (raw)
In-Reply-To: <20041101143238.GR2495@stusta.de>

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

On Mon, 1 Nov 2004 15:32:38 +0100, Adrian Bunk wrote:

> On Mon, Nov 01, 2004 at 06:48:28AM -0700, Paul Dickson wrote:
> > On Mon, 1 Nov 2004 13:12:56 +0100, Adrian Bunk wrote:
> > 
> > > On Mon, Nov 01, 2004 at 03:54:02AM -0700, Paul Dickson wrote:
> > > > With the attached .config, I'm getting this while compiling...
> > > > 
> > > >...
> > > >   CC      drivers/ide/ide-dma.o
> > > > {standard input}: Assembler messages:
> > > > {standard input}:607: Error: value of -130 too large for field of 1 bytes at 911
> > > > make[3]: *** [drivers/ide/ide-dma.o] Error 1
> > > > make[2]: *** [drivers/ide] Error 2
> > > > make[1]: *** [drivers] Error 2
> > > > make: *** [bzImage] Error 2
> > > > 
> > > > I got the same error with 2.6.9 too.
> > > > 
> > > > GCC 3.2.2 and 3.4.1.
> > > > 
> > > > Has this been fixed since 2.6.10-rc1?  Searching my Linux-Kernel folder
> > > > didn't find a match.
> > > 
> > > I can't reproduce it with your .config in 2.6.10-rc1.
> > > 
> > > Please send the output of ./scripts/ver_linux .
> > 
> > The problem does not occur if I unselect "Generic PCI bus-master DMA
> > support".
> 
> That's not a surprise since in this case ide-dma.c won't be included 
> into your kernel.
> 
> > I'm also using 0=../out.router.20041030 for an external directory:
> >     make O=../out.router.20041030/ bzImage
> 
> Works for me...
> 
> > >From the FC2 system:
> >...
> > >From the RH9 system:
> >...
> 
> The systems seem to be different enough for ruling out a problem with a 
> specific compiler or assembler version (in both cases, my versions 
> are between your versions).

As I mentioned, this is a problem with RH9; you might not want to take
this further.  :-)


> You don't have _any_ patches applied?
> Your kernel comes directly from ftp.kernel.org (or one of it's mirrors)?

No patches.  I downloaded 2.6.9 again last night and applied the
2.6.10-rc1 patch with ketchup-0.8.1.  The downloaded 2.6.9 and my previous
version created by ketchup had no differences.

I avoided a 2.6.10-rc1 problem by hand copying usr/initramfs_list to
../out.router.20041030/usr


> Does unsetting
>   General setup
>     Configure standard kernel features (for small systems)
>       Optimize for size
> help?

Yes, that avoided the problem too.


> Please do the following:
> - make V=1 O=../out.router.20041030/ bzImage
> - cd ../out.router.20041030/
> - the first command should have given you the failed gcc command;
>   run it with the following changes:
>   - replace "-c" with "-S"
>   - replace "ide-dma.o" with "ide-dma.s"
> - send me the resulting file drivers/ide/ide-dma.s
>   (please Cc linux-kernel)

Attached is the ide-dma.s with "Optimize for size" on.

	-Paul


[-- Attachment #2: ide-dma.s --]
[-- Type: application/octet-stream, Size: 30094 bytes --]

	.file	"ide-dma.c"
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Micropolis 2112A"
.LC1:
	.string	"ALL"
.LC2:
	.string	"CONNER CTMA 4000"
.LC3:
	.string	"CONNER CTT8000-A"
.LC4:
	.string	"ST34342A"
	.section	.rodata
	.align 32
	.type	drive_whitelist,@object
	.size	drive_whitelist,40
drive_whitelist:
	.long	.LC0
	.long	.LC1
	.long	.LC2
	.long	.LC1
	.long	.LC3
	.long	.LC1
	.long	.LC4
	.long	.LC1
	.long	0
	.long	0
	.section	.rodata.str1.1
.LC5:
	.string	"WDC AC11000H"
.LC6:
	.string	"WDC AC22100H"
.LC7:
	.string	"WDC AC32500H"
.LC8:
	.string	"WDC AC33100H"
.LC9:
	.string	"WDC AC31600H"
.LC10:
	.string	"WDC AC32100H"
.LC11:
	.string	"24.09P07"
.LC12:
	.string	"WDC AC23200L"
.LC13:
	.string	"21.10N21"
.LC14:
	.string	"Compaq CRD-8241B"
.LC15:
	.string	"CRD-8400B"
.LC16:
	.string	"CRD-8480B"
.LC17:
	.string	"CRD-8480C"
.LC18:
	.string	"CRD-8482B"
.LC19:
	.string	"CRD-84"
.LC20:
	.string	"SanDisk SDP3B"
.LC21:
	.string	"SanDisk SDP3B-64"
.LC22:
	.string	"SANYO CD-ROM CRD"
.LC23:
	.string	"HITACHI CDR-8"
.LC24:
	.string	"HITACHI CDR-8335"
.LC25:
	.string	"HITACHI CDR-8435"
.LC26:
	.string	"Toshiba CD-ROM XM-6202B"
.LC27:
	.string	"CD-532E-A"
.LC28:
	.string	"E-IDE CD-ROM CR-840"
.LC29:
	.string	"CD-ROM Drive/F5A"
.LC30:
	.string	"RICOH CD-R/RW MP7083A"
.LC31:
	.string	"WPI CDD-820"
.LC32:
	.string	"SAMSUNG CD-ROM SC-148C"
.LC33:
	.string	"SAMSUNG CD-ROM SC-148F"
.LC34:
	.string	"SAMSUNG CD-ROM SC"
.LC35:
	.string	"SAMSUNG CD-ROM SN-124"
.LC36:
	.string	"PLEXTOR CD-R PX-W8432T"
	.section	.rodata.str1.32,"aMS",@progbits,1
	.align 32
.LC37:
	.string	"ATAPI CD-ROM DRIVE 40X MAXIMUM"
	.section	.rodata.str1.1
.LC38:
	.string	"_NEC DV5800A"
	.section	.rodata
	.align 32
	.type	drive_blacklist,@object
	.size	drive_blacklist,272
drive_blacklist:
	.long	.LC5
	.long	.LC1
	.long	.LC6
	.long	.LC1
	.long	.LC7
	.long	.LC1
	.long	.LC8
	.long	.LC1
	.long	.LC9
	.long	.LC1
	.long	.LC10
	.long	.LC11
	.long	.LC12
	.long	.LC13
	.long	.LC14
	.long	.LC1
	.long	.LC15
	.long	.LC1
	.long	.LC16
	.long	.LC1
	.long	.LC17
	.long	.LC1
	.long	.LC18
	.long	.LC1
	.long	.LC19
	.long	.LC1
	.long	.LC20
	.long	.LC1
	.long	.LC21
	.long	.LC1
	.long	.LC22
	.long	.LC1
	.long	.LC23
	.long	.LC1
	.long	.LC24
	.long	.LC1
	.long	.LC25
	.long	.LC1
	.long	.LC26
	.long	.LC1
	.long	.LC27
	.long	.LC1
	.long	.LC28
	.long	.LC1
	.long	.LC29
	.long	.LC1
	.long	.LC30
	.long	.LC1
	.long	.LC31
	.long	.LC1
	.long	.LC32
	.long	.LC1
	.long	.LC33
	.long	.LC1
	.long	.LC34
	.long	.LC1
	.long	.LC21
	.long	.LC1
	.long	.LC35
	.long	.LC1
	.long	.LC36
	.long	.LC1
	.long	.LC37
	.long	.LC1
	.long	.LC38
	.long	.LC1
	.long	0
	.long	0
	.text
	.type	in_drive_list,@function
in_drive_list:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	movl	12(%ebp), %ebx
	cmpl	$0, (%ebx)
	je	.L12
.L10:
	movl	8(%ebp), %edi
	movl	(%ebx), %esi
	addl	$54, %edi
#APP
	1:	lodsb
	scasb
	jne 2f
	testb %al,%al
	jne 1b
	xorl %eax,%eax
	jmp 3f
2:	sbbl %eax,%eax
	orb $1,%al
3:
#NO_APP
	testl	%eax, %eax
	je	.L13
.L4:
	addl	$8, %ebx
	cmpl	$0, (%ebx)
	jne	.L10
.L12:
	xorl	%eax, %eax
.L1:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L13:
	movl	8(%ebp), %eax
	addl	$46, %eax
	pushl	%eax
	pushl	4(%ebx)
	call	strstr
	popl	%edx
	testl	%eax, %eax
	popl	%ecx
	jne	.L8
	movl	4(%ebx), %esi
	movl	$.LC1, %edi
#APP
	1:	lodsb
	scasb
	jne 2f
	testb %al,%al
	jne 1b
	xorl %eax,%eax
	jmp 3f
2:	sbbl %eax,%eax
	orb $1,%al
3:
#NO_APP
	testl	%eax, %eax
	jne	.L4
.L8:
	movl	$1, %eax
	jmp	.L1
.Lfe1:
	.size	in_drive_list,.Lfe1-in_drive_list
	.section	.rodata.str1.1
.LC40:
	.string	"dma_intr"
	.section	.rodata.str1.32
	.align 32
.LC39:
	.string	"<3>%s: dma_intr: bad DMA status (dma_stat=%x)\n"
	.text
.globl ide_dma_intr
	.type	ide_dma_intr,@function
ide_dma_intr:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1108(%eax)
	movl	%eax, %esi
	movl	112(%ebx), %eax
	pushl	52(%eax)
	call	*1172(%eax)
	popl	%edx
	popl	%ecx
	movl	%eax, %edi
	movb	176(%ebx), %al
	orl	$88, %eax
	andl	%edi, %eax
	cmpb	$80, %al
	je	.L17
.L15:
	movl	%edi, %ecx
	movl	28(%ebx), %edx
	movzbl	%cl, %eax
	pushl	%eax
	pushl	$.LC40
	pushl	%ebx
	call	*32(%edx)
.L14:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L17:
	movl	%esi, %eax
	testb	%al, %al
	jne	.L16
	movl	112(%ebx), %eax
	movl	28(%ebx), %edx
	movl	8(%eax), %eax
	movl	32(%eax), %eax
	pushl	16(%eax)
	pushl	$1
	pushl	%ebx
	call	*24(%edx)
	xorl	%eax, %eax
	jmp	.L14
.L16:
	movzbl	%al, %eax
	pushl	%eax
	pushl	%ebx
	pushl	$.LC39
	call	printk
	addl	$12, %esp
	jmp	.L15
.Lfe2:
	.size	ide_dma_intr,.Lfe2-ide_dma_intr
	.section	.rodata.str1.1
.LC41:
	.string	"include2/asm/dma-mapping.h"
	.text
.globl ide_build_sglist
	.type	ide_build_sglist,@function
ide_build_sglist:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	8(%ebp), %eax
	pushl	%ebx
	movl	112(%eax), %esi
	movl	1200(%esi), %ebx
	pushl	%ebx
	pushl	12(%ebp)
	pushl	16(%eax)
	call	blk_rq_map_sg
	addl	$12, %esp
	movl	%eax, %edi
	movl	12(%ebp), %eax
	testb	$1, 8(%eax)
	sete	%al
	movzbl	%al, %eax
	incl	%eax
	cmpl	$3, %eax
	movl	%eax, 1212(%esi)
	je	.L37
.L23:
	testl	%edi, %edi
	jle	.L35
	movl	%ebx, %edx
	movl	%edi, %ecx
.L36:
	movl	(%edx), %eax
	testl	%eax, %eax
	je	.L38
.L29:
	subl	mem_map, %eax
	sarl	$5, %eax
	sall	$12, %eax
	addl	4(%edx), %eax
	movl	%eax, 8(%edx)
	addl	$16, %edx
	loop	.L36
.L35:
	leal	-12(%ebp), %esp
	movl	%edi, %eax
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L38:
#APP
	ud2
	.word 44
	.long .LC41

#NO_APP
	jmp	.L29
.L37:
#APP
	ud2
	.word 41
	.long .LC41

#NO_APP
	jmp	.L23
.Lfe3:
	.size	ide_build_sglist,.Lfe3-ide_build_sglist
	.section	.rodata.str1.32
	.align 32
.LC42:
	.string	"/home/dickson/downloads/linux/linux-2.6.10-rc1/drivers/ide/ide-dma.c"
	.text
.globl ide_raw_build_sglist
	.type	ide_raw_build_sglist,@function
ide_raw_build_sglist:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$16, %esp
	movl	8(%ebp), %eax
	movl	12(%ebp), %edx
	movl	112(%eax), %eax
	movl	%eax, -16(%ebp)
	movl	1200(%eax), %ebx
	movl	$0, -20(%ebp)
	movl	92(%edx), %eax
	movl	72(%edx), %esi
	cmpl	$4, 28(%eax)
	setne	%al
	movl	16(%edx), %edx
	movl	-16(%ebp), %ecx
	movzbl	%al, %eax
	incl	%eax
	cmpl	$256, %edx
	movl	%eax, 1212(%ecx)
	jle	.L42
#APP
	ud2
	.word 251
	.long .LC42

#NO_APP
.L42:
	cmpl	$128, %edx
	jle	.L43
	movl	$4, %ecx
	movl	%ebx, %edi
	movl	-20(%ebp), %eax
#APP
	rep ; stosl
#NO_APP
	leal	1073741824(%esi), %eax
	addl	$-128, %edx
	shrl	$12, %eax
	sall	$5, %eax
	addl	mem_map, %eax
	movl	$65536, 12(%ebx)
	movl	%eax, (%ebx)
	movl	%esi, %eax
	andl	$4095, %eax
	addl	$65536, %esi
	movl	%eax, 4(%ebx)
	movl	$1, -20(%ebp)
.L43:
	movl	-20(%ebp), %edi
	sall	$9, %edx
	xorl	%eax, %eax
	movl	$4, %ecx
	sall	$4, %edi
	leal	(%edi,%ebx), %edi
	movl	%edi, -28(%ebp)
#APP
	rep ; stosl
#NO_APP
	leal	1073741824(%esi), %eax
	movl	-28(%ebp), %ecx
	andl	$4095, %esi
	shrl	$12, %eax
	sall	$5, %eax
	addl	mem_map, %eax
	movl	%edx, 12(%ecx)
	movl	%esi, 4(%ecx)
	movl	%eax, (%ecx)
	movl	-16(%ebp), %edi
	incl	-20(%ebp)
	cmpl	$3, 1212(%edi)
	je	.L92
.L78:
	cmpl	$0, -20(%ebp)
	jle	.L90
	movl	%ebx, %edi
	movl	-20(%ebp), %ecx
.L91:
	movl	(%edi), %eax
	testl	%eax, %eax
	je	.L93
.L84:
	subl	mem_map, %eax
	sarl	$5, %eax
	sall	$12, %eax
	addl	4(%edi), %eax
	movl	%eax, 8(%edi)
	addl	$16, %edi
	loop	.L91
.L90:
	movl	-20(%ebp), %eax
	addl	$16, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L93:
#APP
	ud2
	.word 44
	.long .LC41

#NO_APP
	jmp	.L84
.L92:
#APP
	ud2
	.word 41
	.long .LC41

#NO_APP
	jmp	.L78
.Lfe4:
	.size	ide_raw_build_sglist,.Lfe4-ide_raw_build_sglist
	.section	.rodata.str1.1
.LC44:
	.string	"<3>%s: empty DMA table?\n"
.LC43:
	.string	"<3>%s: DMA table too small\n"
	.text
.globl ide_build_dmatable
	.type	ide_build_dmatable,@function
ide_build_dmatable:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$16, %esp
	movl	8(%ebp), %eax
	movl	12(%ebp), %edx
	movl	112(%eax), %eax
	movl	%eax, -16(%ebp)
	cmpl	$10, 1024(%eax)
	movl	1192(%eax), %ebx
	movl	$0, -24(%ebp)
	sete	%al
	movl	-16(%ebp), %ecx
	movzbl	%al, %eax
	movl	%eax, -20(%ebp)
	movl	8(%ecx), %eax
	movl	32(%eax), %eax
	testb	$2, 10(%eax)
	je	.L95
	pushl	%edx
	pushl	8(%ebp)
	call	ide_raw_build_sglist
.L127:
	movl	%eax, %ecx
	movl	-16(%ebp), %eax
	movl	%ecx, 1208(%eax)
	popl	%edi
	popl	%eax
	xorl	%eax, %eax
	testl	%ecx, %ecx
	je	.L94
	movl	-16(%ebp), %eax
	movl	1200(%eax), %eax
	movl	%eax, -28(%ebp)
.L112:
	movl	-28(%ebp), %eax
	movl	12(%eax), %esi
	movl	8(%eax), %edi
	testl	%esi, %esi
	je	.L124
.L111:
	movl	-24(%ebp), %eax
	incl	-24(%ebp)
	cmpl	$255, %eax
	ja	.L126
	movl	%edi, %eax
	movl	$65536, %edx
	andl	$65535, %eax
	subl	%eax, %edx
	cmpl	%esi, %edx
	jbe	.L107
	movl	%esi, %edx
.L107:
	movl	%edi, (%ebx)
	movzwl	%dx,%eax
	addl	$4, %ebx
	cmpl	$0, -20(%ebp)
	je	.L108
	shrl	$2, %eax
	decl	%eax
	sall	$16, %eax
.L108:
	testl	%eax, %eax
	jne	.L109
	movl	-24(%ebp), %eax
	incl	-24(%ebp)
	cmpl	$255, %eax
	ja	.L126
	leal	32768(%edi), %eax
	movl	$32768, (%ebx)
	addl	$4, %ebx
	movl	%eax, (%ebx)
	movl	$32768, %eax
	addl	$4, %ebx
.L109:
	movl	%eax, (%ebx)
	addl	%edx, %edi
	addl	$4, %ebx
	subl	%edx, %esi
	jne	.L111
.L124:
	addl	$16, -28(%ebp)
	loop	.L112
	cmpl	$0, -24(%ebp)
	je	.L113
	cmpl	$0, -20(%ebp)
	jne	.L114
	orl	$-2147483648, -4(%ebx)
.L114:
	movl	-24(%ebp), %eax
.L94:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L113:
	pushl	8(%ebp)
	pushl	$.LC44
.L128:
.L105:
	call	printk
	movl	-16(%ebp), %ecx
	popl	%ebx
	cmpl	$3, 1212(%ecx)
	popl	%esi
	je	.L129
.L120:
	xorl	%eax, %eax
	jmp	.L94
.L129:
#APP
	ud2
	.word 73
	.long .LC41

#NO_APP
	jmp	.L120
.L126:
	pushl	8(%ebp)
	pushl	$.LC43
	jmp	.L128
.L95:
	pushl	%edx
	pushl	8(%ebp)
	call	ide_build_sglist
	jmp	.L127
.Lfe5:
	.size	ide_build_dmatable,.Lfe5-ide_build_dmatable
.globl ide_destroy_dmatable
	.type	ide_destroy_dmatable,@function
ide_destroy_dmatable:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	movl	112(%eax), %eax
	cmpl	$3, 1212(%eax)
	je	.L137
.L130:
	leave
	ret
.L137:
#APP
	ud2
	.word 73
	.long .LC41

#NO_APP
	jmp	.L130
.Lfe6:
	.size	ide_destroy_dmatable,.Lfe6-ide_destroy_dmatable
	.type	config_drive_for_dma,@function
config_drive_for_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	36(%ebx), %ecx
	movl	112(%ebx), %esi
	movb	99(%ecx), %al
	andl	$1, %eax
	testb	%al, %al
	je	.L139
	testb	$64, 1292(%esi)
	je	.L139
	movw	106(%ecx), %dx
	movl	%edx, %eax
	andl	$4, %eax
	testw	%ax, %ax
	je	.L140
	movzbw	177(%ecx), %ax
	andl	$127, %eax
	testw	%ax, %ax
	jne	.L145
.L140:
	andl	$2, %edx
	testw	%dx, %dx
	je	.L141
	movw	126(%ecx), %ax
	andw	$1028, %ax
	cmpw	$1028, %ax
	je	.L145
	movw	124(%ecx), %ax
	andw	$1028, %ax
	cmpw	$1028, %ax
	je	.L145
.L141:
	pushl	%ebx
	call	__ide_dma_good_drive
	popl	%edx
	testl	%eax, %eax
	jne	.L145
.L139:
	pushl	%ebx
	call	*1120(%esi)
.L138:
	leal	-8(%ebp), %esp
	popl	%ebx
	popl	%esi
	leave
	ret
.L145:
	pushl	%ebx
	call	*1116(%esi)
	jmp	.L138
.Lfe7:
	.size	config_drive_for_dma,.Lfe7-config_drive_for_dma
	.section	.rodata.str1.32
	.align 32
.LC45:
	.string	"<4>%s: dma_timer_expiry: dma status == 0x%02x\n"
	.text
	.type	dma_timer_expiry,@function
dma_timer_expiry:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	movl	8(%ebp), %esi
	pushl	%ebx
	movl	112(%esi), %eax
	pushl	1264(%eax)
	call	*1172(%eax)
	movb	%al, %bl
	movzbl	%al, %eax
	pushl	%eax
	pushl	%esi
	pushl	$.LC45
	call	printk
	movl	$10000, %edx
	movb	%bl, %al
	addl	$16, %esp
	andl	$24, %eax
	cmpb	$24, %al
	je	.L146
	movl	112(%esi), %eax
	orl	$-1, %edx
	movl	8(%eax), %eax
	movl	$0, 208(%eax)
	movb	%bl, %al
	andl	$2, %eax
	testb	%al, %al
	jne	.L146
	movb	%bl, %al
	movl	$10000, %edx
	andl	$1, %eax
	testb	%al, %al
	jne	.L146
	andl	$4, %ebx
	movl	$10000, %edx
	testb	%bl, %bl
	jne	.L146
	xorl	%edx, %edx
.L146:
	leal	-8(%ebp), %esp
	movl	%edx, %eax
	popl	%ebx
	popl	%esi
	leave
	ret
.Lfe8:
	.size	dma_timer_expiry,.Lfe8-dma_timer_expiry
.globl __ide_dma_host_off
	.type	__ide_dma_host_off,@function
__ide_dma_host_off:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	movl	8(%ebp), %eax
	pushl	%ebx
	movb	136(%eax), %bl
	movl	112(%eax), %esi
	shrb	$4, %bl
	pushl	1264(%esi)
	andl	$1, %ebx
	call	*1172(%esi)
	movzbl	%bl, %edx
	leal	5(%edx), %ecx
	movl	$-2, %edx
	pushl	1264(%esi)
	roll	%cl, %edx
	andl	%eax, %edx
	movzbl	%dl, %edx
	pushl	%edx
	call	*1148(%esi)
	leal	-8(%ebp), %esp
	popl	%ebx
	xorl	%eax, %eax
	popl	%esi
	leave
	ret
.Lfe9:
	.size	__ide_dma_host_off,.Lfe9-__ide_dma_host_off
.globl __ide_dma_off_quietly
	.type	__ide_dma_off_quietly,@function
__ide_dma_off_quietly:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	movb	$0, 142(%ebx)
	pushl	$0
	pushl	%ebx
	call	ide_toggle_bounce
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1132(%eax)
	addl	$12, %esp
	movl	-4(%ebp), %ebx
	leave
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	ret
.Lfe10:
	.size	__ide_dma_off_quietly,.Lfe10-__ide_dma_off_quietly
	.section	.rodata.str1.1
.LC46:
	.string	"<6>%s: DMA disabled\n"
	.text
.globl __ide_dma_off
	.type	__ide_dma_off,@function
__ide_dma_off:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	pushl	%ebx
	pushl	$.LC46
	call	printk
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1120(%eax)
	movl	-4(%ebp), %ebx
	leave
	ret
.Lfe11:
	.size	__ide_dma_off,.Lfe11-__ide_dma_off
.globl __ide_dma_host_on
	.type	__ide_dma_host_on,@function
__ide_dma_host_on:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	movl	8(%ebp), %eax
	pushl	%ebx
	cmpb	$0, 142(%eax)
	jne	.L157
	movl	$1, %eax
.L155:
	leal	-8(%ebp), %esp
	popl	%ebx
	popl	%esi
	leave
	ret
.L157:
	movb	136(%eax), %bl
	movl	112(%eax), %esi
	shrb	$4, %bl
	pushl	1264(%esi)
	andl	$1, %ebx
	call	*1172(%esi)
	movzbl	%bl, %edx
	leal	5(%edx), %ecx
	movl	$1, %edx
	pushl	1264(%esi)
	sall	%cl, %edx
	orl	%edx, %eax
	movzbl	%al, %eax
	pushl	%eax
	call	*1148(%esi)
	xorl	%eax, %eax
	jmp	.L155
.Lfe12:
	.size	__ide_dma_host_on,.Lfe12-__ide_dma_host_on
.globl __ide_dma_on
	.type	__ide_dma_on,@function
__ide_dma_on:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	pushl	%ebx
	call	__ide_dma_bad_drive
	movl	$1, %edx
	testl	%eax, %eax
	popl	%ecx
	je	.L161
.L158:
	movl	-4(%ebp), %ebx
	movl	%edx, %eax
	leave
	ret
.L161:
	movb	$1, 142(%ebx)
	pushl	$1
	pushl	%ebx
	call	ide_toggle_bounce
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1128(%eax)
	xorl	%edx, %edx
	addl	$12, %esp
	testl	%eax, %eax
	setne	%dl
	jmp	.L158
.Lfe13:
	.size	__ide_dma_on,.Lfe13-__ide_dma_on
.globl __ide_dma_check
	.type	__ide_dma_check,@function
__ide_dma_check:
	pushl	%ebp
	movl	%esp, %ebp
	leave
	jmp	config_drive_for_dma
.Lfe14:
	.size	__ide_dma_check,.Lfe14-__ide_dma_check
.globl ide_dma_setup
	.type	ide_dma_setup,@function
ide_dma_setup:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	8(%ebp), %eax
	pushl	%ebx
	movl	112(%eax), %ebx
	movl	8(%ebx), %eax
	movl	32(%eax), %esi
	testb	$1, 8(%esi)
	pushl	%esi
	sete	%al
	pushl	8(%ebp)
	movzbl	%al, %edi
	call	ide_build_dmatable
	sall	$3, %edi
	popl	%edx
	testl	%eax, %eax
	popl	%ecx
	jne	.L166
	pushl	%esi
	pushl	8(%ebp)
	call	ide_map_sg
	movl	$1, %eax
.L163:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L166:
	pushl	1272(%ebx)
	pushl	1196(%ebx)
	call	*1160(%ebx)
	pushl	1256(%ebx)
	pushl	%edi
	call	*1148(%ebx)
	pushl	1264(%ebx)
	call	*1172(%ebx)
	pushl	1264(%ebx)
	orl	$6, %eax
	movzbl	%al, %eax
	pushl	%eax
	call	*1148(%ebx)
	movl	8(%ebp), %eax
	movb	$1, 145(%eax)
	xorl	%eax, %eax
	jmp	.L163
.Lfe15:
	.size	ide_dma_setup,.Lfe15-ide_dma_setup
	.type	ide_dma_exec_cmd,@function
ide_dma_exec_cmd:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	$dma_timer_expiry
	movzbl	12(%ebp), %eax
	pushl	$20000
	pushl	$ide_dma_intr
	pushl	%eax
	pushl	8(%ebp)
	call	ide_execute_command
	leave
	ret
.Lfe16:
	.size	ide_dma_exec_cmd,.Lfe16-ide_dma_exec_cmd
.globl ide_dma_start
	.type	ide_dma_start,@function
ide_dma_start:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %eax
	movl	112(%eax), %ebx
	pushl	1256(%ebx)
	call	*1172(%ebx)
	pushl	1256(%ebx)
	orl	$1, %eax
	movzbl	%al, %eax
	pushl	%eax
	call	*1148(%ebx)
	movl	$1, 1484(%ebx)
	movl	-4(%ebp), %ebx
	leave
	ret
.Lfe17:
	.size	ide_dma_start,.Lfe17-ide_dma_start
.globl __ide_dma_end
	.type	__ide_dma_end,@function
__ide_dma_end:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	8(%ebp), %esi
	pushl	%ebx
	movl	112(%esi), %ebx
	movb	$0, 145(%esi)
	pushl	1256(%ebx)
	call	*1172(%ebx)
	pushl	1256(%ebx)
	andl	$254, %eax
	pushl	%eax
	call	*1148(%ebx)
	pushl	1264(%ebx)
	call	*1172(%ebx)
	pushl	1264(%ebx)
	movl	%eax, %edi
	orl	$6, %eax
	movzbl	%al, %eax
	pushl	%eax
	call	*1148(%ebx)
	pushl	%esi
	call	ide_destroy_dmatable
	movl	$0, 1484(%ebx)
	movl	%edi, %eax
	addl	$28, %esp
	andl	$7, %eax
	cmpb	$4, %al
	je	.L170
	orl	$16, %edi
	movl	%edi, %edx
	movzbl	%dl, %eax
.L171:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L170:
	xorl	%eax, %eax
	jmp	.L171
.Lfe18:
	.size	__ide_dma_end,.Lfe18-__ide_dma_end
	.section	.rodata
	.type	__func__.0,@object
	.size	__func__.0,19
__func__.0:
	.string	"__ide_dma_test_irq"
	.section	.rodata.str1.32
	.align 32
.LC47:
	.string	"<4>%s: (%s) called while not waiting\n"
	.text
.globl __ide_dma_test_irq
	.type	__ide_dma_test_irq,@function
__ide_dma_test_irq:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	112(%ebx), %eax
	pushl	1264(%eax)
	call	*1172(%eax)
	popl	%edx
	movl	$1, %edx
	andl	$4, %eax
	testb	%al, %al
	jne	.L172
	cmpb	$0, 145(%ebx)
	je	.L175
.L174:
	xorl	%edx, %edx
.L172:
	movl	-4(%ebp), %ebx
	movl	%edx, %eax
	leave
	ret
.L175:
	pushl	$__func__.0
	pushl	%ebx
	pushl	$.LC47
	call	printk
	addl	$12, %esp
	jmp	.L174
.Lfe19:
	.size	__ide_dma_test_irq,.Lfe19-__ide_dma_test_irq
	.section	.rodata.str1.32
	.align 32
.LC48:
	.string	"<4>%s: Disabling (U)DMA for %s (blacklisted)\n"
	.text
.globl __ide_dma_bad_drive
	.type	__ide_dma_bad_drive,@function
__ide_dma_bad_drive:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	8(%ebp), %edi
	pushl	%ebx
	movl	36(%edi), %ebx
	pushl	$drive_blacklist
	pushl	%ebx
	call	in_drive_list
	popl	%ecx
	movl	%eax, %esi
	popl	%eax
	testl	%esi, %esi
	jne	.L178
	xorl	%eax, %eax
.L176:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L178:
	leal	54(%ebx), %eax
	pushl	%eax
	pushl	%edi
	pushl	$.LC48
	call	printk
	movl	%esi, %eax
	jmp	.L176
.Lfe20:
	.size	__ide_dma_bad_drive,.Lfe20-__ide_dma_bad_drive
.globl __ide_dma_good_drive
	.type	__ide_dma_good_drive,@function
__ide_dma_good_drive:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	$drive_whitelist
	movl	8(%ebp), %eax
	pushl	36(%eax)
	call	in_drive_list
	leave
	ret
.Lfe21:
	.size	__ide_dma_good_drive,.Lfe21-__ide_dma_good_drive
	.section	.rodata.str1.1
.LC57:
	.string	", UDMA(16)"
.LC56:
	.string	", UDMA(25)"
.LC55:
	.string	", UDMA(33)"
.LC54:
	.string	", UDMA(44)"
.LC53:
	.string	", UDMA(66)"
.LC52:
	.string	", UDMA(100)"
.LC51:
	.string	", UDMA(133)"
.LC50:
	.string	", UDMA(mode 7)"
.LC58:
	.string	", (U)DMA"
.LC49:
	.string	", BUG DMA OFF"
.LC59:
	.string	", DMA"
.LC60:
	.string	", BUG"
	.text
.globl __ide_dma_verbose
	.type	__ide_dma_verbose,@function
__ide_dma_verbose:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	8(%ebp), %eax
	pushl	%ebx
	movl	36(%eax), %esi
	movl	112(%eax), %edi
	movw	106(%esi), %dx
	movl	%edx, %eax
	andl	$4, %eax
	testw	%ax, %ax
	je	.L181
	cmpb	$0, 177(%esi)
	movw	176(%esi), %bx
	je	.L182
	cmpb	$0, 127(%esi)
	jne	.L209
.L182:
	movzbl	1018(%edi), %ecx
	movzbl	%bh, %edx
	movzwl	%bx, %eax
	andl	%ecx, %edx
	testl	%edx, %eax
	je	.L183
	shrw	$11, %bx
	testw	%bx, %bx
	jne	.L210
.L195:
	movw	176(%esi), %dx
	movl	%edx, %eax
	shrw	$10, %ax
	andl	$1, %eax
	testw	%ax, %ax
	jne	.L211
	movl	%edx, %eax
	shrw	$9, %ax
	andl	$1, %eax
	testw	%ax, %ax
	jne	.L212
	shrw	$8, %dx
	andl	$1, %edx
	testw	%dx, %dx
	jne	.L213
.L203:
	movl	$1, %eax
.L180:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L213:
	pushl	$.LC57
.L208:
	call	printk
	popl	%eax
	jmp	.L203
.L212:
	pushl	$.LC56
	jmp	.L208
.L211:
	pushl	$.LC55
	jmp	.L208
.L210:
	pushl	8(%ebp)
	call	eighty_ninty_three
	popl	%edx
	testb	%al, %al
	je	.L195
	movw	176(%esi), %dx
	testw	%dx, %dx
	js	.L214
	movl	%edx, %eax
	shrw	$14, %ax
	andl	$1, %eax
	testw	%ax, %ax
	jne	.L215
	movl	%edx, %eax
	shrw	$13, %ax
	andl	$1, %eax
	testw	%ax, %ax
	jne	.L216
	movl	%edx, %eax
	shrw	$12, %ax
	andl	$1, %eax
	testw	%ax, %ax
	jne	.L217
	shrw	$11, %dx
	andl	$1, %edx
	testw	%dx, %dx
	je	.L195
	pushl	$.LC54
	jmp	.L208
.L217:
	pushl	$.LC53
	jmp	.L208
.L216:
	pushl	$.LC52
	jmp	.L208
.L215:
	pushl	$.LC51
	jmp	.L208
.L214:
	pushl	$.LC50
	jmp	.L208
.L183:
	pushl	$.LC58
	jmp	.L208
.L209:
	pushl	$.LC49
	call	printk
	pushl	8(%ebp)
	call	*1120(%edi)
	jmp	.L180
.L181:
	movl	%edx, %eax
	andl	$2, %eax
	testw	%ax, %ax
	je	.L204
	cmpb	$0, 127(%esi)
	je	.L205
	cmpb	$0, 125(%esi)
	jne	.L209
.L205:
	pushl	$.LC59
	jmp	.L208
.L204:
	andl	$1, %edx
	testw	%dx, %dx
	je	.L203
	pushl	$.LC60
	jmp	.L208
.Lfe22:
	.size	__ide_dma_verbose,.Lfe22-__ide_dma_verbose
	.section	.rodata.str1.1
.LC61:
	.string	"%s: DMA interrupt recovery\n"
	.text
.globl __ide_dma_lostirq
	.type	__ide_dma_lostirq,@function
__ide_dma_lostirq:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	8(%ebp)
	pushl	$.LC61
	call	printk
	leave
	movl	$1, %eax
	ret
.Lfe23:
	.size	__ide_dma_lostirq,.Lfe23-__ide_dma_lostirq
	.section	.rodata.str1.32
	.align 32
.LC62:
	.string	"<3>%s: timeout waiting for DMA\n"
	.text
.globl __ide_dma_timeout
	.type	__ide_dma_timeout,@function
__ide_dma_timeout:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	pushl	%ebx
	pushl	$.LC62
	call	printk
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1124(%eax)
	xorl	%edx, %edx
	addl	$12, %esp
	testl	%eax, %eax
	je	.L221
.L219:
	movl	-4(%ebp), %ebx
	movl	%edx, %eax
	leave
	ret
.L221:
	movl	112(%ebx), %eax
	pushl	%ebx
	call	*1108(%eax)
	movl	%eax, %edx
	jmp	.L219
.Lfe24:
	.size	__ide_dma_timeout,.Lfe24-__ide_dma_timeout
.globl ide_release_dma_engine
	.type	ide_release_dma_engine,@function
ide_release_dma_engine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	1192(%ebx), %eax
	testl	%eax, %eax
	je	.L223
	movl	1028(%ebx), %edx
	pushl	1196(%ebx)
	pushl	%eax
	xorl	%eax, %eax
	testl	%edx, %edx
	pushl	$2048
	je	.L225
	leal	68(%edx), %eax
.L225:
	pushl	%eax
	call	dma_free_coherent
	movl	$0, 1192(%ebx)
	addl	$16, %esp
.L223:
	movl	-4(%ebp), %ebx
	movl	$1, %eax
	leave
	ret
.Lfe25:
	.size	ide_release_dma_engine,.Lfe25-ide_release_dma_engine
.globl ide_release_iomio_dma
	.type	ide_release_iomio_dma,@function
ide_release_iomio_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	1280(%ebx), %eax
	testl	%eax, %eax
	je	.L228
	cmpb	$0, 1014(%ebx)
	je	.L230
.L228:
	pushl	$8
	pushl	1252(%ebx)
	pushl	$ioport_resource
	call	__release_region
	addl	$12, %esp
	cmpl	$0, 1276(%ebx)
	jne	.L231
.L229:
	movl	-4(%ebp), %ebx
	movl	$1, %eax
	leave
	ret
.L231:
	pushl	$8
	pushl	1252(%ebx)
	pushl	$ioport_resource
	call	__release_region
	addl	$12, %esp
	jmp	.L229
.L230:
	pushl	%eax
	movl	1252(%ebx), %eax
	addl	$16, %eax
	pushl	%eax
	pushl	$ioport_resource
	call	__release_region
	addl	$12, %esp
	jmp	.L228
.Lfe26:
	.size	ide_release_iomio_dma,.Lfe26-ide_release_iomio_dma
.globl ide_release_dma
	.type	ide_release_dma,@function
ide_release_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	cmpl	$2, 1236(%ebx)
	je	.L232
	cmpl	$15, 1024(%ebx)
	je	.L232
	pushl	%ebx
	call	ide_release_dma_engine
	popl	%ecx
	movl	%ebx, 8(%ebp)
	movl	-4(%ebp), %ebx
	leave
	jmp	ide_release_iomio_dma
.L232:
	movl	-4(%ebp), %ebx
	movl	$1, %eax
	leave
	ret
.Lfe27:
	.size	ide_release_dma,.Lfe27-ide_release_dma
	.section	.rodata.str1.1
.LC63:
	.string	" CPU"
	.section	.rodata.str1.32
	.align 32
.LC65:
	.string	"<3>%s: -- Error, unable to allocate%s DMA table(s).\n"
	.text
.globl ide_allocate_dma_engine
	.type	ide_allocate_dma_engine,@function
ide_allocate_dma_engine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	movl	1028(%ebx), %edx
	leal	1196(%ebx), %eax
	pushl	$32
	pushl	%eax
	xorl	%eax, %eax
	testl	%edx, %edx
	pushl	$2048
	je	.L237
	leal	68(%edx), %eax
.L237:
	pushl	%eax
	call	dma_alloc_coherent
	xorl	%edx, %edx
	addl	$16, %esp
	movl	%eax, 1192(%ebx)
	testl	%eax, %eax
	je	.L242
.L235:
	movl	-4(%ebp), %ebx
	movl	%edx, %eax
	leave
	ret
.L242:
	movl	1032(%ebx), %eax
	pushl	(%eax)
	pushl	$.LC63
	pushl	$.LC65
	call	printk
	pushl	%ebx
	call	ide_release_dma_engine
	movl	$1, %edx
	jmp	.L235
.Lfe28:
	.size	ide_allocate_dma_engine,.Lfe28-ide_allocate_dma_engine
	.section	.rodata.str1.1
.LC66:
	.string	"<6>    %s: MMIO-DMA "
	.text
.globl ide_mapped_mmio_dma
	.type	ide_mapped_mmio_dma,@function
ide_mapped_mmio_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	movl	12(%ebp), %esi
	movl	8(%ebp), %ebx
	leal	16(%ebx), %eax
	pushl	%eax
	pushl	$.LC66
	call	printk
	movl	1032(%ebx), %eax
	movl	%esi, 1252(%ebx)
	movl	40(%eax), %eax
	popl	%edx
	testl	%eax, %eax
	popl	%ecx
	je	.L244
	cmpb	$0, 1014(%ebx)
	jne	.L244
	movl	%eax, 1280(%ebx)
.L244:
	movl	4(%ebx), %eax
	testl	%eax, %eax
	je	.L245
	cmpb	$0, 1014(%ebx)
	je	.L246
	movl	1252(%eax), %eax
.L247:
	movl	%eax, 1248(%ebx)
.L248:
	leal	-8(%ebp), %esp
	xorl	%eax, %eax
	popl	%ebx
	popl	%esi
	leave
	ret
.L246:
	movl	%esi, %eax
	jmp	.L247
.L245:
	movl	%esi, 1248(%ebx)
	jmp	.L248
.Lfe29:
	.size	ide_mapped_mmio_dma,.Lfe29-ide_mapped_mmio_dma
	.section	.rodata.str1.32
	.align 32
.LC67:
	.string	"<6>    %s: BM-DMA at 0x%04lx-0x%04lx"
	.align 32
.LC69:
	.string	" -- Error, secondary ports in use.\n"
	.section	.rodata.str1.1
.LC68:
	.string	" -- Error, ports in use.\n"
	.text
.globl ide_iomio_dma
	.type	ide_iomio_dma,@function
ide_iomio_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	movl	16(%ebp), %edx
	pushl	%esi
	movl	12(%ebp), %edi
	pushl	%ebx
	movl	8(%ebp), %esi
	leal	-1(%edx,%edi), %eax
	leal	16(%esi), %ebx
	pushl	%eax
	pushl	%edi
	pushl	%ebx
	pushl	$.LC67
	call	printk
	pushl	%ebx
	pushl	16(%ebp)
	pushl	%edi
	pushl	$ioport_resource
	call	__request_region
	addl	$32, %esp
	testl	%eax, %eax
	je	.L259
	movl	1032(%esi), %eax
	movl	%edi, 1252(%esi)
	cmpl	$0, 40(%eax)
	je	.L251
	cmpb	$0, 1014(%esi)
	je	.L260
.L251:
	movl	4(%esi), %eax
	testl	%eax, %eax
	je	.L252
	cmpb	$0, 1014(%esi)
	je	.L253
	movl	1252(%eax), %eax
.L254:
	movl	%eax, 1248(%esi)
.L255:
	movl	1276(%esi), %edx
	testl	%edx, %edx
	jne	.L261
.L256:
	xorl	%eax, %eax
.L249:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.L261:
	leal	16(%esi), %eax
	pushl	%eax
	pushl	16(%ebp)
	pushl	%edx
	pushl	$ioport_resource
	call	__request_region
	addl	$16, %esp
	testl	%eax, %eax
	jne	.L256
	pushl	$.LC69
	call	printk
	pushl	16(%ebp)
	pushl	%edi
	pushl	$ioport_resource
	call	__release_region
.L258:
	movl	$1, %eax
	jmp	.L249
.L253:
	movl	%edi, %eax
	jmp	.L254
.L252:
	movl	%edi, 1248(%esi)
	jmp	.L255
.L260:
	pushl	(%eax)
	pushl	40(%eax)
	leal	16(%edi), %eax
	pushl	%eax
	pushl	$ioport_resource
	call	__request_region
	addl	$16, %esp
	movl	1032(%esi), %eax
	movl	40(%eax), %eax
	movl	%eax, 1280(%esi)
	jmp	.L251
.L259:
	pushl	$.LC68
	call	printk
	jmp	.L258
.Lfe30:
	.size	ide_iomio_dma,.Lfe30-ide_iomio_dma
.globl ide_dma_iobase
	.type	ide_dma_iobase,@function
ide_dma_iobase:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %edx
	movl	12(%ebp), %ebx
	movl	1236(%edx), %eax
	movl	16(%ebp), %ecx
	cmpl	$2, %eax
	je	.L266
	decl	%eax
	je	.L267
.L264:
	movl	%ecx, 16(%ebp)
	movl	%ebx, 12(%ebp)
	movl	%edx, 8(%ebp)
	popl	%ebx
	leave
	jmp	ide_iomio_dma
.L267:
#APP
	ud2
	.word 910
	.long .LC42

#NO_APP
	jmp	.L264
.L266:
	popl	%ebx
	leave
	jmp	ide_mapped_mmio_dma
.Lfe31:
	.size	ide_dma_iobase,.Lfe31-ide_dma_iobase
	.section	.rodata.str1.1
.LC70:
	.string	"DMA"
.LC71:
	.string	"pio"
.LC72:
	.string	", BIOS settings: %s:%s, %s:%s"
.LC73:
	.string	"\n"
	.text
.globl ide_setup_dma
	.type	ide_setup_dma,@function
ide_setup_dma:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	movl	8(%ebp), %ebx
	pushl	16(%ebp)
	pushl	12(%ebp)
	pushl	%ebx
	call	ide_dma_iobase
	addl	$12, %esp
	testl	%eax, %eax
	je	.L295
.L268:
	movl	-4(%ebp), %ebx
	leave
	ret
.L295:
	pushl	%ebx
	call	ide_allocate_dma_engine
	popl	%edx
	testl	%eax, %eax
	jne	.L296
	cmpl	$0, 1256(%ebx)
	jne	.L271
	movl	1252(%ebx), %eax
	movl	%eax, 1256(%ebx)
.L271:
	cmpl	$0, 1260(%ebx)
	jne	.L272
	movl	1252(%ebx), %eax
	incl	%eax
	movl	%eax, 1260(%ebx)
.L272:
	cmpl	$0, 1264(%ebx)
	jne	.L273
	movl	1252(%ebx), %eax
	addl	$2, %eax
	movl	%eax, 1264(%ebx)
.L273:
	cmpl	$0, 1268(%ebx)
	jne	.L274
	movl	1252(%ebx), %eax
	addl	$3, %eax
	movl	%eax, 1268(%ebx)
.L274:
	cmpl	$0, 1272(%ebx)
	jne	.L275
	movl	1252(%ebx), %eax
	addl	$4, %eax
	movl	%eax, 1272(%ebx)
.L275:
	cmpl	$0, 1120(%ebx)
	jne	.L276
	movl	$__ide_dma_off_quietly, 1120(%ebx)
.L276:
	cmpl	$0, 1132(%ebx)
	jne	.L277
	movl	$__ide_dma_host_off, 1132(%ebx)
.L277:
	cmpl	$0, 1116(%ebx)
	jne	.L278
	movl	$__ide_dma_on, 1116(%ebx)
.L278:
	cmpl	$0, 1128(%ebx)
	jne	.L279
	movl	$__ide_dma_host_on, 1128(%ebx)
.L279:
	cmpl	$0, 1112(%ebx)
	jne	.L280
	movl	$__ide_dma_check, 1112(%ebx)
.L280:
	cmpl	$0, 1096(%ebx)
	jne	.L281
	movl	$ide_dma_setup, 1096(%ebx)
.L281:
	cmpl	$0, 1100(%ebx)
	jne	.L282
	movl	$ide_dma_exec_cmd, 1100(%ebx)
.L282:
	cmpl	$0, 1104(%ebx)
	jne	.L283
	movl	$ide_dma_start, 1104(%ebx)
.L283:
	cmpl	$0, 1108(%ebx)
	jne	.L284
	movl	$__ide_dma_end, 1108(%ebx)
.L284:
	cmpl	$0, 1124(%ebx)
	jne	.L285
	movl	$__ide_dma_test_irq, 1124(%ebx)
.L285:
	cmpl	$0, 1136(%ebx)
	jne	.L286
	movl	$__ide_dma_verbose, 1136(%ebx)
.L286:
	cmpl	$0, 1144(%ebx)
	jne	.L287
	movl	$__ide_dma_timeout, 1144(%ebx)
.L287:
	cmpl	$0, 1140(%ebx)
	jne	.L288
	movl	$__ide_dma_lostirq, 1140(%ebx)
.L288:
	cmpl	$10, 1024(%ebx)
	je	.L289
	pushl	1264(%ebx)
	call	*1172(%ebx)
	movl	$.LC70, %ecx
	movb	%al, %dl
	andl	$64, %eax
	testb	%al, %al
	jne	.L291
	movl	$.LC71, %ecx
.L291:
	leal	592(%ebx), %eax
	andl	$32, %edx
	pushl	%ecx
	testb	%dl, %dl
	pushl	%eax
	movl	$.LC70, %eax
	jne	.L293
	movl	$.LC71, %eax
.L293:
	pushl	%eax
	leal	172(%ebx), %eax
	pushl	%eax
	pushl	$.LC72
	call	printk
	addl	$24, %esp
.L289:
	pushl	$.LC73
	call	printk
	cmpl	$0, 1248(%ebx)
	popl	%eax
	jne	.L268
#APP
	ud2
	.word 974
	.long .LC42

#NO_APP
	jmp	.L268
.L296:
	movl	%ebx, 8(%ebp)
	movl	-4(%ebp), %ebx
	leave
	jmp	ide_release_dma
.Lfe32:
	.size	ide_setup_dma,.Lfe32-ide_setup_dma
	.ident	"GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"

  reply	other threads:[~2004-11-01 17:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-01 10:54 2.6.10-rc1: drivers/ide/ide-dma.o: value of -130 too large for field of 1 bytes at 911 Paul Dickson
2004-11-01 12:12 ` Adrian Bunk
2004-11-01 13:48   ` Paul Dickson
2004-11-01 14:32     ` Adrian Bunk
2004-11-01 17:21       ` Paul Dickson [this message]
2004-11-01 16:26   ` Paul Dickson

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=20041101102119.7c8c4399.dickson@permanentmail.com \
    --to=dickson@permanentmail.com \
    --cc=bunk@stusta.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox