sfrench/cifs-2.6.git
16 years agox86: AMD Athlon X2 hard hang fix
Ingo Molnar [Mon, 4 Feb 2008 15:48:07 +0000 (16:48 +0100)]
x86: AMD Athlon X2 hard hang fix

An Athlon 64 X2 test system showed hard hangs shortly after marking
the kernel text read-only, if we tried to preserve largepages and
changed the PSE entry from RW to RO. The pagetable code itself is
correct, it's the CPU that locked up hard (and not even the NMI
watchdog could punch through that hard hang).

So be conservative and always do splitups - like we did in the past.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cpa, preserve large pages if possible
Thomas Gleixner [Mon, 4 Feb 2008 15:48:07 +0000 (16:48 +0100)]
x86: cpa, preserve large pages if possible

When CPA is called on a range which fits into a large page mapping,
avoid to split the page when:

1) There is no change of attributes
2) The range to change is a complete large mapping

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cpa, check if we changed anything and tlb flushing is necessary
Thomas Gleixner [Mon, 4 Feb 2008 15:48:07 +0000 (16:48 +0100)]
x86: cpa, check if we changed anything and tlb flushing is necessary

Flush tlbs only when there was a real change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: introduce struct cpa_data
Thomas Gleixner [Mon, 4 Feb 2008 15:48:07 +0000 (16:48 +0100)]
x86: introduce struct cpa_data

The number of arguments which need to be transported is increasing
and we want to add flush optimizations and large page preserving.

Create struct cpa data and pass a pointer instead of increasing the
number of arguments further.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cpa, only flush the cache if the caching attributes have changed
Andi Kleen [Mon, 4 Feb 2008 15:48:06 +0000 (16:48 +0100)]
x86: cpa, only flush the cache if the caching attributes have changed

We only need to flush the caches in cpa() if the the caching attributes
have changed. Otherwise only flush the TLBs.

This checks the PAT bits too although they are currently not used by
the kernel.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: cpa, add the PAT bit defines
Andi Kleen [Mon, 4 Feb 2008 15:48:06 +0000 (16:48 +0100)]
x86: cpa, add the PAT bit defines

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: CPA return early when requested feature is not available
Thomas Gleixner [Mon, 4 Feb 2008 15:48:06 +0000 (16:48 +0100)]
x86: CPA return early when requested feature is not available

Mask out the not supported bits (e.g. NX). If the clr/set masks
are empty after the mask return without changing anything.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: fix EFI mapping
Huang, Ying [Mon, 4 Feb 2008 15:48:06 +0000 (16:48 +0100)]
x86: fix EFI mapping

The patch updates EFI runtime memory mapping code, by making EFI
areas explicitly executable.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: no CPA on iounmap
Thomas Gleixner [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: no CPA on iounmap

When an ioremap is unmapped, do not change the page attributes. There might
be another mapping of the same physical address. PAT might detect a conflicting
mapping attribute for no good reason. The mapping is removed anyway.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: ioremap remove the range check of cpa
Thomas Gleixner [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: ioremap remove the range check of cpa

Now that cpa works on non-direct mappings as well, we can safely
remove the range check in ioremap_change_attr().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: simplify __ioremap
Thomas Gleixner [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: simplify __ioremap

Remove tons of castings which make the code hard to read.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: CPA use the existing pfn in split as well
Thomas Gleixner [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: CPA use the existing pfn in split as well

When splitting large pages, we ge the pfn from the existing entry
instead of calculating it ourself.

This removes the last remaining range restriction of the cpa code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: use the pfn from the page when change its attributes
Arjan van de Ven [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: use the pfn from the page when change its attributes

When changing the attributes of a pte, we should use the PFN from the
existing PTE rather than going through hoops calculating what we think
it might have been; this is both fragile and totally unneeded. It also
makes it more hairy to call any of these functions on non-direct maps
for no good reason whatsover.

With this change, __change_page_attr() no longer takes a pfn as argument,
which simplifies all the callers.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@tglx.de>
16 years agox86: teach the static_protection function about high mappings
Arjan van de Ven [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: teach the static_protection function about high mappings

Right now, enforcing that the high mapping of the kernel text doesn't
get the NX bit is done deep in the guts of CPA, rather than in the
static_protection() function that enforces all other per-arch sanity
checks.

This patch moves this sanity check into the central static_protection()
function instead, and makes it apply ONLY to the kernel text, not to all
other areas in the high mapping.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: add cpu mtrr init function definitions to mtrr.h
Harvey Harrison [Mon, 4 Feb 2008 15:48:05 +0000 (16:48 +0100)]
x86: add cpu mtrr init function definitions to mtrr.h

mtrr.h was included everywhere needed.  Fixes the following sparse
warnings.  Also, the return types in the extern definitions were
incorrect.

arch/x86/kernel/cpu/mtrr/amd.c:113:12: warning: symbol 'amd_init_mtrr' was not declared. Should it be static?
arch/x86/kernel/cpu/mtrr/cyrix.c:268:12: warning: symbol 'cyrix_init_mtrr' was not declared. Should it be static?
arch/x86/kernel/cpu/mtrr/centaur.c:218:12: warning: symbol 'centaur_init_mtrr' was not declared. Should it be static?

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: add cpu init function defintions to cpu.h
Harvey Harrison [Mon, 4 Feb 2008 15:48:04 +0000 (16:48 +0100)]
x86: add cpu init function defintions to cpu.h

cpu.h was already included everywhere needed.

Fixes following sparse warnings:

arch/x86/kernel/cpu/amd.c:343:12: warning: symbol 'amd_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/cyrix.c:444:12: warning: symbol 'cyrix_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/cyrix.c:456:12: warning: symbol 'nsc_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/centaur.c:467:12: warning: symbol 'centaur_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/transmeta.c:112:12: warning: symbol 'transmeta_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/intel.c:296:12: warning: symbol 'intel_cpu_init' was not declared. Should it be static?
arch/x86/kernel/cpu/nexgen.c:56:12: warning: symbol 'nexgen_init_cpu' was not declared. Should it be static?
arch/x86/kernel/cpu/umc.c:22:12: warning: symbol 'umc_init_cpu' was not declared. Should it be static?

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: small sparse fix in process_32.c
Harvey Harrison [Mon, 4 Feb 2008 15:48:04 +0000 (16:48 +0100)]
x86: small sparse fix in process_32.c

arch/x86/kernel/process_32.c:254:43: warning: Using plain integer as NULL pointer

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: add function prototype to vm86.h
Harvey Harrison [Mon, 4 Feb 2008 15:48:04 +0000 (16:48 +0100)]
x86: add function prototype to vm86.h

Global functions should include their prototypes.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: add include to cpu/intel.c
Harvey Harrison [Mon, 4 Feb 2008 15:48:04 +0000 (16:48 +0100)]
x86: add include to cpu/intel.c

Fixes sparse warning:

arch/x86/kernel/cpu/intel.c:48:15: warning: symbol 'ppro_with_ram_bug' was not declared. Should it be static?

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: remove final FASTCALL() uses
Harvey Harrison [Mon, 4 Feb 2008 15:48:03 +0000 (16:48 +0100)]
x86: remove final FASTCALL() uses

A few snuck back in to x86.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: remove special NUMAQ support in io_32.h
Andi Kleen [Mon, 4 Feb 2008 15:48:03 +0000 (16:48 +0100)]
x86: remove special NUMAQ support in io_32.h

Now that the only user does it on its own remove the NUMAQ support macros
in io_32.h

The next step would be to convert the preprocessor mess to actually readable
standard inlines.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: move NUMAQ io handling into arch/x86/pci/numa.c
Andi Kleen [Mon, 4 Feb 2008 15:48:03 +0000 (16:48 +0100)]
x86: move NUMAQ io handling into arch/x86/pci/numa.c

numa.c is the only user of the {in,out}*_quad functions. And it has only a few call
sites. Change them to open code the magic NUMAQ port access.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: cleanup - eliminate numbers in LDT allocation code
Cyrill Gorcunov [Mon, 4 Feb 2008 15:48:03 +0000 (16:48 +0100)]
x86: cleanup - eliminate numbers in LDT allocation code

This patch eliminates numbers in LDT allocation code
trying to make it clear to understand from where
these numbers come.

No code changed:

   text    data     bss     dec     hex filename
   1896       0       0    1896     768 ldt.o.before
   1896       0       0    1896     768 ldt.o.after
md5:
 6cbec8705008ddb4b704aade60bceda3  ldt.o.before.asm
 6cbec8705008ddb4b704aade60bceda3  ldt.o.after.asm

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: update reference for PAE tlb flushing
Jeremy Fitzhardinge [Mon, 4 Feb 2008 15:48:02 +0000 (16:48 +0100)]
x86: update reference for PAE tlb flushing

Remove bogus reference to "Pentium-II erratum A13" and point to the
actual canonical source of information about what requirements x86
processors have for PAE pagetable updates.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: pud_clear: only reload cr3 if necessary
Jeremy Fitzhardinge [Mon, 4 Feb 2008 15:48:02 +0000 (16:48 +0100)]
x86: pud_clear: only reload cr3 if necessary

Rather than unconditionally reloading cr3, only do so if the pud we're
updating is within the active pgd.

This eliminates TLB flushes most of the time.  The
performance-critical uses of pud_clear are during execve and exit, but
in those cases cr3 is referring to some other pagetable.  The only
other use of pud_clear is during a large (1Gbyte+) munmap, and those
are sufficiently rare that a couple of cr3 reloads won't hurt.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: revert "defer cr3 reload when doing pud_clear()"
Jeremy Fitzhardinge [Mon, 4 Feb 2008 15:48:02 +0000 (16:48 +0100)]
x86: revert "defer cr3 reload when doing pud_clear()"

Revert "defer cr3 reload when doing pud_clear()" since I'm going to
replace it.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: unify PAE/non-PAE pgd_ctor
Jeremy Fitzhardinge [Mon, 4 Feb 2008 15:48:02 +0000 (16:48 +0100)]
x86: unify PAE/non-PAE pgd_ctor

The constructors for PAE and non-PAE pgd_ctors are more or less
identical, and can be made into the same function.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: William Irwin <wli@holomorphy.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agodocumentation: add Documentation/x86-64/00-INDEX
Rob Landley [Mon, 4 Feb 2008 15:48:02 +0000 (16:48 +0100)]
documentation: add Documentation/x86-64/00-INDEX

Signed-off-by: Rob Landley <rob@landley.net>
Cc: Vojtech Pavlik <vojtech@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: remove misleading comments in trampoline_*.S
Pavel Machek [Mon, 4 Feb 2008 15:48:01 +0000 (16:48 +0100)]
x86: remove misleading comments in trampoline_*.S

Both trampolines actually *do* set up stack. (Is the "we jump into
compressed/head.S" comment still true?)

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: sparse errors from string_32.h
Harvey Harrison [Mon, 4 Feb 2008 15:48:01 +0000 (16:48 +0100)]
x86: sparse errors from string_32.h

include/asm/string_32.h:216:26: warning: cast truncates bits from constant value (cccccccc becomes cc)
include/asm/string_32.h:219:27: warning: cast truncates bits from constant value (cccccccc becomes cccc)
include/asm/string_32.h:222:27: warning: cast truncates bits from constant value (cccccccc becomes cccc)
include/asm/string_32.h:223:30: warning: cast truncates bits from constant value (cccccccc becomes cc)

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: remove long dead cyrix mtrr code
Harvey Harrison [Mon, 4 Feb 2008 15:48:01 +0000 (16:48 +0100)]
x86: remove long dead cyrix mtrr code

cyrix_arr_init was #if 0 all the way back to at least v2.6.12.

This was the only place where arr3_protected was set to anything
but zero.  Eliminate this variable.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agoasm-generic/tlb.h: remove <linux/quicklist.h>
H. Peter Anvin [Mon, 4 Feb 2008 15:48:00 +0000 (16:48 +0100)]
asm-generic/tlb.h: remove <linux/quicklist.h>

Remove unused <linux/quicklist.h> from <asm-generic/tlb.h>; per
Christoph Lameter this should have been part of a previous patch
reversal but apparently didn't get removed.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86 setup: print missing CPU features in cleartext
H. Peter Anvin [Mon, 4 Feb 2008 15:48:00 +0000 (16:48 +0100)]
x86 setup: print missing CPU features in cleartext

Instead of obscure numbers, print the list of missing CPU features in
cleartext.  To conserve space, use a host program (mkcpustr.c) to
produce a compact list of mandatory features only.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: unify CPU feature string names
H. Peter Anvin [Mon, 4 Feb 2008 15:48:00 +0000 (16:48 +0100)]
x86: unify CPU feature string names

Move the CPU feature string names to a separate file (common to 32
and 64 bits); additionally, make <asm/cpufeature.h> includable by host
code in preparation for including the CPU feature strings in the boot
code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: reintroduce volatile keyword in prototype to clflush()
H. Peter Anvin [Mon, 4 Feb 2008 15:48:00 +0000 (16:48 +0100)]
x86: reintroduce volatile keyword in prototype to clflush()

The volatile keyword was removed from the clflush() prototype
in commit e34907ae180f4fe6c28bb4516c679c2f81b0c9ed; the comment there
states:

    x86: remove volatile keyword from clflush.

    the p parameter is an explicit memory reference, and is
    enough to prevent gcc to being nasty here. The volatile
    seems completely not needed.

This reflects incorrect understanding of the function of the volatile
keyword there.  The purpose of the volatile keyword is informing gcc
that it is safe to pass a volatile pointer to this function.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: cpuid, msr: use inode mutex instead of big kernel lock
H. Peter Anvin [Mon, 4 Feb 2008 15:47:59 +0000 (16:47 +0100)]
x86: cpuid, msr: use inode mutex instead of big kernel lock

Instead of grabbing the BKL on seek, use the inode mutex in the style
of generic_file_llseek().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: cpuid: allow querying %ecx-sensitive CPUID levels
H. Peter Anvin [Mon, 4 Feb 2008 15:47:59 +0000 (16:47 +0100)]
x86: cpuid: allow querying %ecx-sensitive CPUID levels

After /dev/*/cpuid was introduced, Intel changed the semantics of the
CPUID instruction to be sentitive to %ecx as well as %eax.  This patch
allows querying of %ecx-sensitive levels by placing the %ecx value in
the upper 32 bits of the file position (lower 32 bits always were used
for the %eax value.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_64.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:59 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_64.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/uaccess_64.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_32.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:59 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_32.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/uaccess_32.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/system.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:58 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/system.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/system.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/msr.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:58 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/msr.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/msr.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/i387.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:58 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/i387.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/i387.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in include/asm-x86/futex.h
H. Peter Anvin [Mon, 4 Feb 2008 15:47:58 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in include/asm-x86/futex.h

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in include/asm-x86/futex.h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in arch/x86/mm/init_32.c
H. Peter Anvin [Mon, 4 Feb 2008 15:47:58 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in arch/x86/mm/init_32.c

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in arch/x86/mm/init_32.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in arch/x86/lib/usercopy_64.c
H. Peter Anvin [Mon, 4 Feb 2008 15:47:57 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in arch/x86/lib/usercopy_64.c

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in arch/x86/lib/usercopy_64.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in arch/x86/lib/usercopy_32.c
H. Peter Anvin [Mon, 4 Feb 2008 15:47:57 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in arch/x86/lib/usercopy_32.c

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in arch/x86/lib/usercopy_32.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in arch/x86/lib/mmx_32.c
H. Peter Anvin [Mon, 4 Feb 2008 15:47:57 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in arch/x86/lib/mmx_32.c

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in arch/x86/lib/mmx_32.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: use _ASM_EXTABLE macro in arch/x86/kernel/test_nx.c
H. Peter Anvin [Mon, 4 Feb 2008 15:47:56 +0000 (16:47 +0100)]
x86: use _ASM_EXTABLE macro in arch/x86/kernel/test_nx.c

Use the _ASM_EXTABLE macro from <asm/asm.h>, instead of open-coding
__ex_table entires in arch/x86/kernel/test_nx.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: add _ASM_EXTABLE macro to <asm/asm.h>
H. Peter Anvin [Mon, 4 Feb 2008 15:47:56 +0000 (16:47 +0100)]
x86: add _ASM_EXTABLE macro to <asm/asm.h>

Instead of open-coding the __ex_table information at each callsite,
construct a common macro that can work regardless of CPU size.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: define OBJCOPYFLAGS explicitly for each target.
Ian Campbell [Mon, 4 Feb 2008 15:47:56 +0000 (16:47 +0100)]
x86: define OBJCOPYFLAGS explicitly for each target.

Do this rather than defining a global version and overriding it in
almost all cases in order to make subsequent patches simpler.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: reduce ifdef sections in fault.c
Harvey Harrison [Mon, 4 Feb 2008 15:47:56 +0000 (16:47 +0100)]
x86: reduce ifdef sections in fault.c

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: print out node_data addr and bootmap_start addr
Yinghai Lu [Mon, 4 Feb 2008 15:47:56 +0000 (16:47 +0100)]
x86: print out node_data addr and bootmap_start addr

print out node_data addr and bootmap_start addr.

helpful for debugging early crashes on high-end NUMA systems.

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: CPA remove bogus NX clear
Thomas Gleixner [Mon, 4 Feb 2008 15:47:55 +0000 (16:47 +0100)]
x86: CPA remove bogus NX clear

In split_large_page we clear the NX bit for the new split ptes, but we
need to preserve the original setting of it for the split ptes.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: mach-rdc321x Kconfig fix
Florian Fainelli [Mon, 4 Feb 2008 15:47:55 +0000 (16:47 +0100)]
x86: mach-rdc321x Kconfig fix

The mach-rdc321x uses the leds-gpio driver and explicitely
selects it, this driver also depends on the leds class module,
select it as well.

Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: rename module scx200_32 to scx200
Sam Ravnborg [Mon, 4 Feb 2008 15:47:55 +0000 (16:47 +0100)]
x86: rename module scx200_32 to scx200

The module scx200 were renamed to scx200_32 by the
merge of the 32 and 64 bit x86 arch trees.

Keep the _32 prefix on the .c file as it is 32 bit
specific and fix the module name in the Makefile.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: restore correct module name for apm
Sam Ravnborg [Mon, 4 Feb 2008 15:47:55 +0000 (16:47 +0100)]
x86: restore correct module name for apm

The apm module were renamed to apm_32 during the merge of 32 and 64 bit
x86 which is unfortunate. As apm is 32 bit specific we like to keep the
_32 in the filename but the module should be named apm.

Fix this in the Makefile.

Reported-by: "A.E.Lawrence" <lawrence_a_e@ntlworld.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: "A.E.Lawrence" <lawrence_a_e@ntlworld.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: VMI fix
Ingo Molnar [Mon, 4 Feb 2008 15:47:54 +0000 (16:47 +0100)]
x86: VMI fix

Jeff Chua bisected down a vmware guest boot breakage (hang) to
this paravirt change:

  commit 8d947344c47a40626730bb80d136d8daac9f2060
  Author: Glauber de Oliveira Costa <gcosta@redhat.com>
  Date:   Wed Jan 30 13:31:12 2008 +0100

    x86: change write_idt_entry signature

fix the off-by-one indexing bug ...

Bisected-by: Jeff Chua <jeff.chua.linux@gmail.com>
Tested-by: Jeff Chua <jeff.chua.linux@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: relax RAM check in ioremap()
Ingo Molnar [Mon, 4 Feb 2008 15:47:54 +0000 (16:47 +0100)]
x86: relax RAM check in ioremap()

Kevin Winchester reported the loss of direct rendering, due to:

[    0.588184] agpgart: Detected AGP bridge 0
[    0.588184] agpgart: unable to get memory for graphics translation table.
[    0.588184] agpgart: agp_backend_initialize() failed.
[    0.588207] agpgart-amd64: probe of 0000:00:00.0 failed with error -12

and bisected it down to:

  commit 266b9f8727976769e2ed2dad77ac9295f37e321e
  Author: Thomas Gleixner <tglx@linutronix.de>
  Date:   Wed Jan 30 13:34:06 2008 +0100

      x86: fix ioremap RAM check

this check was too strict and caused an ioremap() failure.

the problem is due to the somewhat unclean way of how the GART code
reserves a memory range for its aperture, and how it utilizes it
later on.

Allow RAM pages to be ioremap()-ed too, as long as they are reserved.

Bisected-by: Kevin Winchester <kjwinchester@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Kevin Winchester <kjwinchester@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Sat, 2 Feb 2008 20:58:57 +0000 (07:58 +1100)]
Merge git://git./linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (95 commits)
  ide-tape: remove idetape_config_t typedef
  ide-tape: remove mtio.h related comments
  ide-tape: make function name more accurate
  ide-tape: remove unused sense packet commands.
  ide-tape: use generic byteorder macros
  ide-tape: remove EXPERIMENTAL driver status
  ide-tape: use generic scsi commands
  ide-tape: remove struct idetape_block_size_page_t
  ide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t
  ide-tape: remove struct idetape_parameter_block_descriptor_t
  ide-tape: remove struct idetape_medium_partition_page_t
  ide-tape: remove struct idetape_data_compression_page_t
  ide-tape: remove struct idetape_inquiry_result_t
  ide-tape: remove struct idetape_capabilities_page_t
  ide-tape: remove IDETAPE_DEBUG_BUGS
  ide-tape: remove IDETAPE_DEBUG_INFO
  ide-tape: dump gcw fields on error in idetape_identify_device()
  ide-tape: remove struct idetape_mode_parameter_header_t
  ide-tape: remove struct idetape_request_sense_result_t
  ide-tape: remove dead code
  ...

16 years agofix writev regression: pan hanging unkillable and un-straceable
Nick Piggin [Sat, 2 Feb 2008 14:01:17 +0000 (15:01 +0100)]
fix writev regression: pan hanging unkillable and un-straceable

Frederik Himpe reported an unkillable and un-straceable pan process.

Zero length iovecs can go into an infinite loop in writev, because the
iovec iterator does not always advance over them.

The sequence required to trigger this is not trivial. I think it
requires that a zero-length iovec be followed by a non-zero-length iovec
which causes a pagefault in the atomic usercopy. This causes the writev
code to drop back into single-segment copy mode, which then tries to
copy the 0 bytes of the zero-length iovec; a zero length copy looks like
a failure though, so it loops.

Put a test into iov_iter_advance to catch zero-length iovecs. We could
just put the test in the fallback path, but I feel it is more robust to
skip over zero-length iovecs throughout the code (iovec iterator may be
used in filesystems too, so it should be robust).

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
Linus Torvalds [Sat, 2 Feb 2008 20:51:38 +0000 (07:51 +1100)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
  ieee1394: sbp2: fix bogus s/g access change

16 years agoide-tape: remove idetape_config_t typedef
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove idetape_config_t typedef

Since this is used only in idetape_blkdev_ioctl(), remove the typedef and make
the struct function-local.

Bart:
- s/sizeof(struct idetape_config)/sizeof(config)/

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove mtio.h related comments
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove mtio.h related comments

Those are already in mtio.h.

Bart:
- undo 'unsigned int/unsigned long' -> 'uint/ulong' conversion

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: make function name more accurate
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: make function name more accurate

idetape_active_next_stage() was rather ambiguous wrt its purpose. Make that
more explicit and remove superfluous comment.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove unused sense packet commands.
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove unused sense packet commands.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use generic byteorder macros
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: use generic byteorder macros

This is not a network driver.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove EXPERIMENTAL driver status
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove EXPERIMENTAL driver status

ide-tape has depended on EXPERIMENTAL for ages. Change that since the driver is
being only maintained now.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use generic scsi commands
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: use generic scsi commands

Also, remove those which weren't used.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_block_size_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_block_size_page_t

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t

They seem just to sit there completely unused.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_parameter_block_descriptor_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_parameter_block_descriptor_t

Also, shorten function name idetape_get_blocksize_from_block_descriptor() and
move its definition up thereby getting rid of its forward declaration.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_medium_partition_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_medium_partition_page_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_data_compression_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_data_compression_page_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_inquiry_result_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_inquiry_result_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_capabilities_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_capabilities_page_t

All those 2-byte values denoting the different capabilities are being written to
the local copy of the caps buffer without being converted to big endian for
simplicity of usage and shorter code later.  Also, we add some comments stating
which are the fields of the caps page in question in order to alleviate the
cryptic pointer casting exercises as in e.g. idetape_get_mode_sense_results().

There should be no functional changes resulting from this patch.

Bart:
- remove two needless "!!"

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove IDETAPE_DEBUG_BUGS
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove IDETAPE_DEBUG_BUGS

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove IDETAPE_DEBUG_INFO
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove IDETAPE_DEBUG_INFO

The device capabilities are probed for during device initialization so this
info is available through proc/ioctl() und it is redundant here.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: dump gcw fields on error in idetape_identify_device()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: dump gcw fields on error in idetape_identify_device()

Cc: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_mode_parameter_header_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_mode_parameter_header_t

Bart:
- remove 'capabilities->speed' chunk
- re-add brackets to block_descrp assignment

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_request_sense_result_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_request_sense_result_t

Bart:
- remove unnecessary comment change
- remove two needless "!!"

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove dead code
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove dead code

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: move historical changelog to Documentation/ide/ChangeLog.ide-tape.1995...
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: move historical changelog to Documentation/ide/ChangeLog.ide-tape.1995-2002

Also, cleanup whitespace and update comments.

Bart:
- remove reference to drivers/block/ide.c
- move driver documentation to Documentation/ide/ide-tape.txt

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cs: use ide_std_init_ports()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide-cs: use ide_std_init_ports()

No reason to use ide_init_hwif_ports() in ide-cs (as a nice side-effect
this makes ide-cs work on archs that don't define IDE_ARCH_OBSOLETE_INIT).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move check_dma_crc() to ide-dma.c
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: move check_dma_crc() to ide-dma.c

* Move check_dma_crc() to ide-dma.c and add inline version for
  CONFIG_BLK_DEV_IDEDMA=n case.

* Rename check_dma_crc() to ide_check_dma_crc().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ide_auto_reduce_xfer()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: remove ide_auto_reduce_xfer()

While at it:

* Remove needless '!drive->crc_count' check.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move drive->crc_count check out from check_dma_crc()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: move drive->crc_count check out from check_dma_crc()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ide_ata66_check()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: remove ide_ata66_check()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove set_transfer()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: remove set_transfer()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: unexport SELECT_DRIVE()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: unexport SELECT_DRIVE()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: remove needless SELECT_DRIVE() call
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide-scsi: remove needless SELECT_DRIVE() call

SELECT_DRIVE() is called by IDE core code in start_request() before device
driver's ->do_request method.  In ide-scsi case ->do_request is implemented
by idescsi_do_request() which is also the only user of idescsi_issue_pc().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use __ide_set_handler() in ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: use __ide_set_handler() in ide_execute_command()

* Use __ide_set_handler() in ide_execute_command().

While at it:

* Fix whitespace damage in ide_execute_command().

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove SATA_*_REG macros
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove SATA_*_REG macros

* siimage.c: use hwif->sata_scr[SATA_{ERROR,STATUS}_OFFSET] instead of
  SATA_{ERROR,STATUS}_REG macros.

* Remove no longer needed SATA_*_REG macros.

While at it:

* Remove needless SATA Status register read from sil_sata_reset_poll().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ->nice0 and ->nice2 fields from ide_drive_t
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove ->nice0 and ->nice2 fields from ide_drive_t

* ->nice0 and ->nice2 ide_drive_t fields are always zero so remove them.

* IDE_NICE_0 and IDE_NICE_2 defines from <linux/hdreg.h> are no longer
  used by any kernel code so cover them with #ifndef/#endif __KERNEL__.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: convert ->straight8 field in ide_hwif_t to bit flag
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: convert ->straight8 field in ide_hwif_t to bit flag

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove unused ->auto_poll field from ide_hwif_t
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove unused ->auto_poll field from ide_hwif_t

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-probe: remove needless Status register reads
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide-probe: remove needless Status register reads

* Cache value read from the Status register in 'stat' variable in do_probe()
  and enable_nest(), then remove remove needless Status register reads.

While at it:

* Add proper KERN_* levels to printk() calls.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cris: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-cris: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotrm290: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
trm290: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-scsi: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-tape: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>