safe/jmp/linux-2.6
15 years agox86: split out common code into find_overlapped_early()
Huang, Ying [Mon, 2 Jun 2008 06:26:14 +0000 (14:26 +0800)]
x86: split out common code into find_overlapped_early()

This patch clean up reserve_early() family functions by extracting the
common part of reserve_early(), free_early() and bad_addr() into
find_overlapped_early().

Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: andi@firstfloor.org
Cc: mingo@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
15 years agox86: e820 max_arch_pfn typo fix for 64 bit
Yinghai Lu [Wed, 4 Jun 2008 20:21:29 +0000 (13:21 -0700)]
x86: e820 max_arch_pfn typo fix for 64 bit

should use right shift

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
15 years agox86: make 32-bit use e820_register_active_regions()
Yinghai Lu [Wed, 4 Jun 2008 02:35:04 +0000 (19:35 -0700)]
x86: make 32-bit use e820_register_active_regions()

this way 32-bit is more similar to 64-bit, and smarter e820 and numa.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: move e820_register_active() to e820.c
Yinghai Lu [Wed, 4 Jun 2008 02:34:00 +0000 (19:34 -0700)]
x86: move e820_register_active() to e820.c

to prepare 32-bit to use it.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, numa, 32-bit: make sure get we kva space
Yinghai Lu [Wed, 4 Jun 2008 02:32:30 +0000 (19:32 -0700)]
x86, numa, 32-bit: make sure get we kva space

when 1/3 user/kernel split is used, and less memory is installed, or if
we have a big hole below 4g, max_low_pfn is still using 3g-128m

try to go down from max_low_pfn until we get it. otherwise will panic.

need to make 32-bit code to use register_e820_active_regions ... later.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: early check if a system is numaq
Yinghai Lu [Tue, 3 Jun 2008 17:25:54 +0000 (10:25 -0700)]
x86: early check if a system is numaq

so we could fall back to one node numa.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix
Yinghai Lu [Tue, 3 Jun 2008 17:24:49 +0000 (10:24 -0700)]
x86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix

add memory_present() calls for sparse and non-numa.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: mp build fix
Ingo Molnar [Tue, 3 Jun 2008 12:42:06 +0000 (14:42 +0200)]
x86: mp build fix

fix:

 drivers/built-in.o: In function `acpi_pci_irq_enable':
 : undefined reference to `mp_config_acpi_gsi'

Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: clean up max_pfn_mapped usage - 64-bit
Yinghai Lu [Mon, 2 Jun 2008 06:55:37 +0000 (23:55 -0700)]
x86: clean up max_pfn_mapped usage - 64-bit

on 64-bit we only get valid max_pfn_mapped after init_memory_mapping().

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: clean up max_pfn_mapped usage - 32-bit
Yinghai Lu [Mon, 2 Jun 2008 06:53:50 +0000 (23:53 -0700)]
x86: clean up max_pfn_mapped usage - 32-bit

on 32-bit in head_32.S after initial page table is done, we get initial
max_pfn_mapped, and then kernel_physical_mapping_init will give us
a final one.

We need to use that to make sure find_e820_area will get valid addresses
for boot_map and for NODE_DATA(0) on numa32.

XEN PV and lguest may need to assign max_pfn_mapped too.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, numa, 32-bit: avoid clash between ramdisk and kva
Yinghai Lu [Mon, 2 Jun 2008 04:06:31 +0000 (21:06 -0700)]
x86, numa, 32-bit: avoid clash between ramdisk and kva

use find_e820_area to get address space...

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: update mptable
Yinghai Lu [Sun, 1 Jun 2008 20:17:38 +0000 (13:17 -0700)]
x86: update mptable

make mptable to be consistent with acpi routing, so we could:

1. kexec kernel with acpi=off
2. work around BIOSes where acpi routing is working, but mptable is
   not right, so can use kernel/kexec to start other OSes that don't have
   good acpi support.

command line: update_mptable

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, numa, 32-bit: print out debug info on all kvas
Yinghai Lu [Sun, 1 Jun 2008 20:15:22 +0000 (13:15 -0700)]
x86, numa, 32-bit: print out debug info on all kvas

also fix the print out of node_remap_end_vaddr

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, 32-bit: change propagate_e820_map() back to find_max_pfn()
Yinghai Lu [Sun, 1 Jun 2008 05:52:47 +0000 (22:52 -0700)]
x86, 32-bit: change propagate_e820_map() back to find_max_pfn()

we don't need to call memory_present that early.
numa and sparse will call memory_present later and might
even fail, it will call memory_present for the full range.

also for sparse it will call alloc_bootmem ... before we set up bootmem.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: set node_remap_size[0] in fallback path
Yinghai Lu [Sun, 1 Jun 2008 05:53:47 +0000 (22:53 -0700)]
x86: set node_remap_size[0] in fallback path

... otherwise alloc_remap will not get node_mem_map from kva area, and
alloc_node_mem_map has to alloc_bootmem_node to get mem_map.
It will use two low address copies ...

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, numa, 32-bit: increase max_elements to 1024
Yinghai Lu [Sun, 1 Jun 2008 05:51:51 +0000 (22:51 -0700)]
x86, numa, 32-bit: increase max_elements to 1024

so every element will represent 64M instead of 256M.

AMD opteron could have HW memory hole remapping, so could have
[0, 8g + 64M) on node0. Reduce element size to 64M to keep that on node 0

Later we need to use find_e820_area() to allocate memory_node_map like
on 64-bit. But need to move memory_present out of populate_mem_map...

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86 mpparse: build fix
Ingo Molnar [Tue, 3 Jun 2008 07:28:52 +0000 (09:28 +0200)]
x86 mpparse: build fix

fix this build bug:

 drivers/acpi/pci_irq.c: In function 'acpi_pci_irq_enable':
 drivers/acpi/pci_irq.c:574: error: implicit declaration of function 'mp_config_acpi_gsi'

Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: remove duplicated e820 func in setup.h
Yinghai Lu [Tue, 27 May 2008 23:29:20 +0000 (16:29 -0700)]
x86: remove duplicated e820 func in setup.h

we already have them in e820.h

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: 32bit numa srat fix early_ioremap leak
Yinghai Lu [Thu, 29 May 2008 23:25:56 +0000 (16:25 -0700)]
x86: 32bit numa srat fix early_ioremap leak

on two node system (16g RAM) with numa config I got this crash:

get_memcfg_from_srat: assigning address to rsdp
RSD PTR  v0 [ACPIAM]
ACPI: Too big length in RSDT: 92
failed to get NUMA memory information from SRAT table
NUMA - single node, flat memory mode
Node: 0, start_pfn: 0, end_pfn: 153
 Setting physnode_map array to node 0 for pfns:
 0
...
Pid: 0, comm: swapper Not tainted 2.6.26-rc4 #4
 [<80b41289>] hlt_loop+0x0/0x3
 [<8011efa0>] ? alloc_remap+0x50/0x70
 [<8079e32e>] alloc_node_mem_map+0x5e/0xa0
 [<8012e77b>] ? printk+0x1b/0x20
 [<80b590f6>] free_area_init_node+0xc6/0x470
 [<80b588fc>] ? __alloc_bootmem_node+0x2c/0x50
 [<80b58ad8>] ? find_min_pfn_for_node+0x38/0x70
 [<8012e77b>] ? printk+0x1b/0x20
 [<80b597c4>] free_area_init_nodes+0x254/0x2d0
 [<80b544d7>] zone_sizes_init+0x97/0xa0
 [<80b48a03>] setup_arch+0x383/0x530
 [<8012e77b>] ? printk+0x1b/0x20
 [<80b41aa4>] start_kernel+0x64/0x350
 [<80b412d8>] i386_start_kernel+0x8/0x10
 =======================

this patch increases the acpi table limit to 32.
Also match early_ioremap() with early_iounmap().

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: extend e820 early_res support 32bit -fix #5
Yinghai Lu [Thu, 29 May 2008 19:58:37 +0000 (12:58 -0700)]
x86: extend e820 early_res support 32bit -fix #5

reserve early numa kva, so it will not clash with new RAMDISK

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: extend e820 early_res support 32bit -fix #4
Yinghai Lu [Thu, 29 May 2008 19:57:22 +0000 (12:57 -0700)]
x86: extend e820 early_res support 32bit -fix #4

reserve_early pgdata for 32bit numa

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: extend e820 early_res support 32bit -fix #3
Yinghai Lu [Thu, 29 May 2008 19:56:36 +0000 (12:56 -0700)]
x86: extend e820 early_res support 32bit -fix #3

introduce init_pg_table_start, so xen PV could specify the value.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: extend e820 ealy_res support 32bit - fix #2
Yinghai Lu [Sun, 25 May 2008 17:00:09 +0000 (10:00 -0700)]
x86: extend e820 ealy_res support 32bit - fix #2

remove extra -1 in reseve_early calling
    panic if can not find space for new RAMDISK

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: fix mpparse fallout
Thomas Gleixner [Sun, 25 May 2008 19:21:36 +0000 (21:21 +0200)]
x86: fix mpparse fallout

UP builds with LOCAL_APIC=y and IO_APIC=n fail with a missing
reference to mp_bus_not_pci. Distangle the mpparse code some more and
move the ioapic specific bus check into a separate function.

This code needs sume urgent un#ifdef surgery all over the place.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: allow MPPARSE to be deselected in SMP configs
Alexey Starikovskiy [Mon, 19 May 2008 20:29:59 +0000 (00:29 +0400)]
x86: allow MPPARSE to be deselected in SMP configs

16 years agox86: move mp_bus_not_pci from mpparse.c
Alexey Starikovskiy [Mon, 19 May 2008 15:47:16 +0000 (19:47 +0400)]
x86: move mp_bus_not_pci from mpparse.c

16 years agox86: mp_bus_id_to_pci_bus is not needed
Alexey Starikovskiy [Mon, 19 May 2008 15:47:09 +0000 (19:47 +0400)]
x86: mp_bus_id_to_pci_bus is not needed

16 years agox86: move smp_found_config
Alexey Starikovskiy [Mon, 19 May 2008 15:47:03 +0000 (19:47 +0400)]
x86: move smp_found_config

16 years agox86: move pic_mode to apic_32.c
Alexey Starikovskiy [Thu, 22 May 2008 21:54:51 +0000 (01:54 +0400)]
x86: move pic_mode to apic_32.c

16 years agox86: Set pic_mode only if local apic code is present
Alexey Starikovskiy [Thu, 22 May 2008 21:54:44 +0000 (01:54 +0400)]
x86: Set pic_mode only if local apic code is present

16 years agox86: move e820_mark_nosave_regions to e820.c
Yinghai Lu [Wed, 21 May 2008 03:10:58 +0000 (20:10 -0700)]
x86: move e820_mark_nosave_regions to e820.c

and make e820_mark_nosave_regions to take limit_pfn to use max_low_pfn
for 32bit and end_pfn for 64bit

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: fix mpparse/acpi interaction
Alexey Starikovskiy [Thu, 22 May 2008 08:26:15 +0000 (12:26 +0400)]
x86: fix mpparse/acpi interaction

Sitsofe Wheeler reported boot problems on linux-next.

It looks like the same issue as found by Soeren Sandman in 7575217f656a93,
"x86: initialize all fields of mp_irqs[mp_irq_entries]".

But his fix is also not complete, as dstapic is used before it assigned.

Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Bisected-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: initialize all fields of mp_irqs[mp_irq_entries]
Soeren Sandmann [Sun, 18 May 2008 03:24:41 +0000 (05:24 +0200)]
x86: initialize all fields of mp_irqs[mp_irq_entries]

Commit "x86: make config_irqsrc not MPspec specific" introduced some uses
of uninitialized fields in mp_config_acpi_legacy_irqs(). I need the
following patch to get sched-devel/master to boot.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: make config_irqsrc not MPspec specific
Alexey Starikovskiy [Wed, 14 May 2008 15:03:17 +0000 (19:03 +0400)]
x86: make config_irqsrc not MPspec specific

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: make struct config_ioapic not MPspec specific
Alexey Starikovskiy [Wed, 14 May 2008 15:03:10 +0000 (19:03 +0400)]
x86: make struct config_ioapic not MPspec specific

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: make mp_ioapic_routing definition local
Alexey Starikovskiy [Wed, 14 May 2008 15:03:04 +0000 (19:03 +0400)]
x86: make mp_ioapic_routing definition local

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: complete move ACPI from mpparse.c
Alexey Starikovskiy [Wed, 14 May 2008 15:02:57 +0000 (19:02 +0400)]
x86: complete move ACPI from mpparse.c

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: move es7000_plat out of mpparse.c
Alexey Starikovskiy [Wed, 14 May 2008 15:02:51 +0000 (19:02 +0400)]
x86: move es7000_plat out of mpparse.c

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cleanup print out for mptable
Yinghai Lu [Mon, 12 May 2008 13:43:38 +0000 (15:43 +0200)]
x86: cleanup print out for mptable

the new output is:

 MPTABLE: OEM ID: SUN
 MPTABLE: Product ID: 4600 M2
 MPTABLE: APIC at: 0x

instead of it all in one line with <6> and double Product ID...

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: include pci.h in e820_64.c
Thomas Gleixner [Mon, 12 May 2008 13:43:37 +0000 (15:43 +0200)]
x86: include pci.h in e820_64.c

global pci_mem_start needs a declaration. include pci.h

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: fix shadow variables of global end_pnf in e820_64.c
Thomas Gleixner [Mon, 12 May 2008 13:43:37 +0000 (15:43 +0200)]
x86: fix shadow variables of global end_pnf in e820_64.c

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: move mp_ioapic_routing to mpparse and make it static
Thomas Gleixner [Mon, 12 May 2008 13:43:35 +0000 (15:43 +0200)]
x86: move mp_ioapic_routing to mpparse and make it static

mpparse is the only user of mp_ioapic_routing.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: extend e820 ealy_res support 32bit - fix
Yinghai Lu [Thu, 22 May 2008 01:40:18 +0000 (18:40 -0700)]
x86: extend e820 ealy_res support 32bit - fix

use find_e820_area to find addess for new RAMDISK, instead of using ram blindly

also print out low ram and bootmap info

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: extend e820 ealy_res support 32bit
Yinghai Lu [Sun, 18 May 2008 08:18:57 +0000 (01:18 -0700)]
x86: extend e820 ealy_res support 32bit

move early_res related from e820_64.c to e820.c
make edba detection to be done in head32.c
remove smp_alloc_memory, because we have fixed trampoline address now.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
 arch/x86/kernel/e820.c              |  214 ++++++++++++++++++++++++++++++++++++
 arch/x86/kernel/e820_64.c           |  196 --------------------------------
 arch/x86/kernel/head32.c            |   76 ++++++++++++
 arch/x86/kernel/setup_32.c          |  109 +++---------------
 arch/x86/kernel/smpboot.c           |   17 --
 arch/x86/kernel/trampoline.c        |    2
 arch/x86/mach-voyager/voyager_smp.c |    9 -
 include/asm-x86/e820.h              |    6 +
 include/asm-x86/e820_64.h           |    9 -
 include/asm-x86/smp.h               |    1
 arch/x86/kernel/e820.c              |  214 ++++++++++++++++++++++++++++++++++++
 arch/x86/kernel/e820_64.c           |  196 --------------------------------
 arch/x86/kernel/head32.c            |   76 ++++++++++++
 arch/x86/kernel/setup_32.c          |  109 +++---------------
 arch/x86/kernel/smpboot.c           |   17 --
 arch/x86/kernel/trampoline.c        |    2
 arch/x86/mach-voyager/voyager_smp.c |    9 -
 include/asm-x86/e820.h              |    6 +
 include/asm-x86/e820_64.h           |    9 -
 include/asm-x86/smp.h               |    1
 arch/x86/kernel/e820.c              |  214 ++++++++++++++++++++++++++++++++++++
 arch/x86/kernel/e820_64.c           |  196 --------------------------------
 arch/x86/kernel/head32.c            |   76 ++++++++++++
 arch/x86/kernel/setup_32.c          |  109 +++---------------
 arch/x86/kernel/smpboot.c           |   17 --
 arch/x86/kernel/trampoline.c        |    2
 arch/x86/mach-voyager/voyager_smp.c |    9 -
 include/asm-x86/e820.h              |    6 +
 include/asm-x86/e820_64.h           |    9 -
 include/asm-x86/smp.h               |    1
 10 files changed, 320 insertions(+), 319 deletions(-)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: add code to add BIOS provided EFI memory entries to kernel
Paul Jackson [Wed, 14 May 2008 15:15:58 +0000 (08:15 -0700)]
x86 boot: add code to add BIOS provided EFI memory entries to kernel

Add to the kernels boot memory map 'memmap' entries found in
the EFI memory descriptors passed in from the BIOS.

On EFI systems, up to E820MAX == 128 memory map entries can
be passed via the legacy E820 interface (limited by the size
of the 'zeropage').  These entries can be duplicated in the
EFI descriptors also passed from the BIOS, and possibly more
entries passed by the EFI interface, which does not have the
E820MAX limit on number of memory map entries.

This code doesn't worry about the likely duplicate, overlapping
or (unlikely) conflicting entries between the EFI map and the
E820 map.  It just dumps all the EFI entries into the memmap[]
array (which already has the E820 entries) and lets the existing
routine sanitize_e820_map() sort the mess out.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: longer comment explaining sanitize_e820_map routine
Paul Jackson [Wed, 14 May 2008 15:15:52 +0000 (08:15 -0700)]
x86 boot: longer comment explaining sanitize_e820_map routine

Elaborate on the comment for sanitize_e820_map(), epxlaining more what
it does, what it inputs, and what it returns.  Rearrange the placement of
this comment to fit kernel conventions, before the routine's code rather
than buried inside it.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: change sanitize_e820_map parameter from byte to int to allow bigger memory...
Paul Jackson [Wed, 14 May 2008 15:15:46 +0000 (08:15 -0700)]
x86 boot: change sanitize_e820_map parameter from byte to int to allow bigger memory maps

The map size counter passed into, and back out of, sanitize_e820_map(),
was an eight bit type (char or u8), as derived from its origins in
legacy BIOS E820 structures.  This patch changes that type to an 'int',
to allow this sanitize routine to also be used on larger maps (larger
than the 256 count that fits in a char).  The legacy BIOS E820 interface
of course does not change; that remains at 8 bits for this count, holding
up to E820MAX == 128 entries.  But the kernel internals can handle more
when those additional memory map entries are passed from the BIOS via
EFI interfaces.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: extend some internal memory map arrays to handle larger EFI input
Paul Jackson [Wed, 14 May 2008 15:15:40 +0000 (08:15 -0700)]
x86 boot: extend some internal memory map arrays to handle larger EFI input

Extend internal boot time memory tables to allow for up to
three entries per node, which may be larger than the 128 E820MAX
entries handled by the legacy BIOS E820 interface.  The EFI
interface, if present, is capable of passing memory map
entries for these larger node counts.

This patch requires an earlier patch that rewrote code depending
on these array sizes from using E820MAX explicitly to size loops,
to instead using ARRAY_SIZE() of the applicable array.

Another patch following this one will provide the code to pick
up additional memory entries passed via the EFI interface from
the BIOS and insert them in the following, now enlarged, arrays.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant
Paul Jackson [Wed, 14 May 2008 15:15:34 +0000 (08:15 -0700)]
x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant

This patch is motivated by a subsequent patch which will allow for more
memory map entries on EFI supported systems than can be passed via the x86
legacy BIOS E820 interface.  The legacy interface is limited to E820MAX ==
128 memory entries, and that "E820MAX" manifest constant was used as the
size for several arrays and loops over those arrays.

The primary change in this patch is to change code loop sizes over those
arrays from using the constant E820MAX, to using the ARRAY_SIZE() macro
evaluated for the array being looped.  That way, a subsequent patch can
change the size of some of these arrays, without breaking this code.

This patch also adds a parameter to the sanitize_e820_map() routine,
which had an implicit size for the array passed it of E820MAX entries.
This new parameter explicitly passes the size of said array.  Once again,
this will allow a subsequent patch to change that array size for some
calls to sanitize_e820_map() without breaking the code.

As part of enhancing the sanitize_e820_map() interface this way, I further
combined the unnecessarily distinct x86_32 and x86_64 declarations for
this routine into a single, commonly used, declaration.

This patch in itself should make no difference to the resulting kernel
binary.

[ mingo@elte.hu: merged to -tip ]

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: minor code format fixes in e820 and efi routines
Paul Jackson [Wed, 14 May 2008 15:15:28 +0000 (08:15 -0700)]
x86 boot: minor code format fixes in e820 and efi routines

Standardize a few pointer declarations to not have the
extra space after the '*' character.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: simplify pageblock_bits enum declaration
Paul Jackson [Wed, 14 May 2008 15:15:23 +0000 (08:15 -0700)]
x86 boot: simplify pageblock_bits enum declaration

The use of #defines with '##' pre-processor concatenation is a useful
way to form several symbol names with a common pattern.  But when there
is just a single name obtained from that #define, it's just obfuscation.
Better to just write the plain symbol name, as is.

The following patch is a result of my wasting ten minutes looking through
the kernel to figure out what 'PB_migrate_end' meant, and forgetting what
I came to do, by the time I figured out that the #define PB_range macro
defined it.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: add header comment to dmi.h stating what it is
Paul Jackson [Wed, 14 May 2008 15:15:16 +0000 (08:15 -0700)]
x86 boot: add header comment to dmi.h stating what it is

The "dmi.h" file did not state anywhere in the file what "DMI" was.
For those who know, it's obvious.  For the rest of us, I added a
brief opening comment.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: remove some unused extern function declarations
Paul Jackson [Wed, 14 May 2008 15:15:10 +0000 (08:15 -0700)]
x86 boot: remove some unused extern function declarations

Remove three extern declarations for routines
that don't exist.  Fix a typo in a comment.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86 boot: include missing smp.h header
Paul Jackson [Wed, 14 May 2008 15:15:04 +0000 (08:15 -0700)]
x86 boot: include missing smp.h header

The patch:
    x86: convert cpu_to_apicid to be a per cpu variable
introduced a dependency of ipi.h on smp.h in x86
builds with an allnoconfig.  Including smp.h in ipi.h
fixes the build error:
    In file included from arch/x86/kernel/traps_64.c:48:
    include/asm/ipi.h: In function 'send_IPI_mask_sequence':
    include/asm/ipi.h:114: error: 'per_cpu__x86_cpu_to_apicid' undeclared (first use in this function)

Signed-off-by: Paul Jackson <pj@sgi.com>
Cc: Mike Travis <travis@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: mtrr cleanup for converting continuous to discrete layout - fix #2
Yinghai Lu [Sat, 10 May 2008 05:40:52 +0000 (22:40 -0700)]
x86: mtrr cleanup for converting continuous to discrete layout - fix #2

disable the noisy print out.
also use the one the less spare mtrr reg.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: amd opteron TOM2 mask val fix
Yinghai Lu [Tue, 13 May 2008 00:40:39 +0000 (17:40 -0700)]
x86: amd opteron TOM2 mask val fix

there is a typo in the mask value, need to remove that extra 0,
to avoid 4bit clearing.

Signed-off-by: Yinghal Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: make e820.c to have common functions
Yinghai Lu [Sun, 11 May 2008 07:30:15 +0000 (00:30 -0700)]
x86: make e820.c to have common functions

remove the duplicated copy of these functions.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: process fam 10h like k8 with fixed mtrr setting
Yinghai Lu [Mon, 5 May 2008 22:57:38 +0000 (15:57 -0700)]
x86: process fam 10h like k8 with fixed mtrr setting

otherwise fixed MTRR for family 10h may not be changed.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: mtrr cleanup for converting continuous to discrete - auto detect v4
Yinghai Lu [Fri, 2 May 2008 09:40:22 +0000 (02:40 -0700)]
x86: mtrr cleanup for converting continuous to discrete - auto detect v4

Loop through mtrr chunk_size and gran_size from 1M to 2G to find out
the optimal value so user does not need to add mtrr_chunk_size and
mtrr_gran_size to the kernel command line.

If optimal value is not found, print out all list to help select less
optimal value.

Add mtrr_spare_reg_nr= so user could set 2 instead of 1, if the card
need more entries.

v2: find the one with more spare entries
v3: fix hole_basek offset
v4: tight the compare between range and range_new
    loop stop with 4g

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Gabriel C <nix.or.die@googlemail.com>
Cc: Mika Fischer <mika.fischer@zoopnet.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: mtrr cleanup for converting continuous to discrete layout v8 - fix
Yinghai Lu [Wed, 30 Apr 2008 03:25:58 +0000 (20:25 -0700)]
x86: mtrr cleanup for converting continuous to discrete layout v8 - fix

v9: address format change requests by Ingo
    more case handling in range_to_var_with_hole

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: fix trimming e820 with MTRR holes. - fix
Yinghai Lu [Wed, 30 Apr 2008 03:25:16 +0000 (20:25 -0700)]
x86: fix trimming e820 with MTRR holes. - fix

v2: process hole then end_pfn
    fix update_memory_range with whole cover comparing

Signed-off-by: Yinghai Lu <yinghai.lu@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: fix trimming e820 with MTRR holes.
Yinghai Lu [Tue, 29 Apr 2008 08:59:49 +0000 (01:59 -0700)]
x86: fix trimming e820 with MTRR holes.

converting MTRR layout from continous to discrete, some time could run out of
MTRRs. So add gran_sizek to prevent that by dumpping small RAM piece less than
gran_sizek.

previous trimming only can handle highest_pfn from mtrr to end_pfn from e820.
when have more than 4g RAM installed, there will be holes below 4g. so need to
check ram below 4g is coverred well.

need to be applied after
[PATCH] x86: mtrr cleanup for converting continuous to discrete layout v7

Signed-off-by: Yinghai Lu <yinghai.lu@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: mtrr cleanup for converting continuous to discrete layout, v8
Yinghai Lu [Tue, 29 Apr 2008 10:52:33 +0000 (03:52 -0700)]
x86: mtrr cleanup for converting continuous to discrete layout, v8

some BIOS like to use continus MTRR layout, and X driver can not add
WB entries for graphical cards when 4g or more RAM installed.

the patch will change MTRR to discrete.

mtrr_chunk_size= could be used to have smaller continuous block to hold holes.
default is 256m, could be set according to size of graphics card memory.

mtrr_gran_size= could be used to send smallest mtrr block to avoid run out of MTRRs

v2: fix -1 for UC checking
v3: default to disable, and need use enable_mtrr_cleanup to enable this feature
    skip the var state change warning.
    remove next_basek in range_to_mtrr()
v4: correct warning mask.
v5: CONFIG_MTRR_SANITIZER
v6: fix 1g, 2g, 512 aligment with extra hole
v7: gran_sizek to prevent running out of MTRRs.
v8: fix hole_basek caculation caused when removing next_basek
    gran_sizek using when basek is 0.

need to apply
[PATCH] x86: fix trimming e820 with MTRR holes.
right after this one.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: move i386 memory setup code to e820_32.c
Alexander van Heukelum [Wed, 23 Apr 2008 13:09:05 +0000 (15:09 +0200)]
x86: move i386 memory setup code to e820_32.c

The x86_64 code has centralized the memory setup code in
e820_64.c. This patch copies that approach to i386:

- early_param("mem", ...) parsing is moved from
setup_32.c to e820_32.c.

- setup_memory_map() and finish_e820_parsing() are
factored out from setup_arch(), and declarations
are added to e820_32.h.

- print_memory_map() is made static and removed from
e820_32.h.

- user_defined_memmap is marked as __initdata.

Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agox86: fix sparse warning in mtrr/generic.c
Thomas Gleixner [Wed, 30 Apr 2008 18:11:51 +0000 (20:11 +0200)]
x86: fix sparse warning in mtrr/generic.c

arch/x86/kernel/cpu/mtrr/generic.c:216:12: warning: symbol 'lo' shadows an earlier one

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Thu, 22 May 2008 15:08:25 +0000 (08:08 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] Fix reversed memset arguments
  Adds username in the upcall key for unattended mounts with keytab
  [CIFS] Remove redundant NULL check

16 years ago[CIFS] Fix reversed memset arguments
Dave Jones [Thu, 22 May 2008 14:20:21 +0000 (14:20 +0000)]
[CIFS] Fix reversed memset arguments

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
16 years agoAdds username in the upcall key for unattended mounts with keytab
Igor Mammedov [Wed, 2 Apr 2008 13:33:47 +0000 (17:33 +0400)]
Adds username in the upcall key for unattended mounts with keytab

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 22 May 2008 05:14:39 +0000 (22:14 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  net: The world is not perfect patch.
  tcp: Make prior_ssthresh a u32
  xfrm_user: Remove zero length key checks.
  net/ipv4/arp.c: Use common hex_asc helpers
  cassini: Only use chip checksum for ipv4 packets.
  tcp: TCP connection times out if ICMP frag needed is delayed
  netfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__
  af_key: Fix selector family initialization.
  libertas: Fix ethtool statistics
  mac80211: fix NULL pointer dereference in ieee80211_compatible_rates
  mac80211: don't claim iwspy support
  orinoco_cs: add ID for SpeedStream wireless adapters
  hostap_cs: add ID for Conceptronic CON11CPro
  rtl8187: resource leak in error case
  ath5k: Fix loop variable initializations

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 22 May 2008 05:00:12 +0000 (22:00 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Prevent stack backtrace false positives on trap frames.
  sparc64: Fix stack tracing through trap frames.
  sparc64: Fix kernel thread stack termination.
  sunhv: Fix locking in non-paged I/O case.

16 years agosparc64: Prevent stack backtrace false positives on trap frames.
David S. Miller [Thu, 22 May 2008 04:50:01 +0000 (21:50 -0700)]
sparc64: Prevent stack backtrace false positives on trap frames.

When we fully commit to returning back to kernel mode from
a trap, zero out the regs->magic value to prevent false
positives during stack backtraces.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[CIFS] Remove redundant NULL check
Steve French [Thu, 22 May 2008 02:02:03 +0000 (02:02 +0000)]
[CIFS] Remove redundant NULL check

Noticed by Coverity checker.

Signed-off-by: Steve French <sfrench@us.ibm.com>
16 years agosparc64: Fix stack tracing through trap frames.
David S. Miller [Thu, 22 May 2008 01:15:53 +0000 (18:15 -0700)]
sparc64: Fix stack tracing through trap frames.

The offset to the pt_regs area was wrong, so we weren't
looking at the right location for the magic cookie.

A trap frame is composed of a "struct sparc_stackf" then
a "struct pt_regs", the code was using "struct reg_window"
instead of "struct sparc_stackf".

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosparc64: Fix kernel thread stack termination.
David S. Miller [Thu, 22 May 2008 01:14:28 +0000 (18:14 -0700)]
sparc64: Fix kernel thread stack termination.

Because of the silly way I set up the initial stack for
new kernel threads, there is a loop at the top of the
stack.

To fix this, properly add another stack frame that is copied
from the parent and terminate it in the child by setting
the frame pointer in that frame to zero.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: The world is not perfect patch.
Rami Rosen [Thu, 22 May 2008 00:47:54 +0000 (17:47 -0700)]
net: The world is not perfect patch.

  Unless there will be any objection here, I suggest consider the
following patch which simply removes the code for the
-DI_WISH_WORLD_WERE_PERFECT in the three methods which use it.

The compilation errors we get when using -DI_WISH_WORLD_WERE_PERFECT
show that this code was not built and not used for really a long time.

Signed-off-by: Rami Rosen <ramirose@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: Make prior_ssthresh a u32
Ilpo Järvinen [Thu, 22 May 2008 00:40:05 +0000 (17:40 -0700)]
tcp: Make prior_ssthresh a u32

If previous window was above representable values of u16,
strange things will happen if undo with the truncated value
is called for. Alternatively, this could be fixed by some
max trickery but that would limit undoing high-speed undos.

Adds 16-bit hole but there isn't anything to fill it with.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoxfrm_user: Remove zero length key checks.
David S. Miller [Thu, 22 May 2008 00:36:21 +0000 (17:36 -0700)]
xfrm_user: Remove zero length key checks.

The crypto layer will determine whether that is valid
or not.

Suggested by Herbert Xu, based upon a report and patch
by Martin Willi.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
16 years agonet/ipv4/arp.c: Use common hex_asc helpers
Denis Cheng [Thu, 22 May 2008 00:34:32 +0000 (17:34 -0700)]
net/ipv4/arp.c: Use common hex_asc helpers

Here the local hexbuf is a duplicate of global const char hex_asc from
lib/hexdump.c, except the hex letters' cases:

const char hexbuf[] = "0123456789ABCDEF";

const char hex_asc[] = "0123456789abcdef";

and here to print HW addresses, the hex cases are not significant.

Thanks to Harvey Harrison to introduce the hex_asc_hi/hex_asc_lo helpers.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agocassini: Only use chip checksum for ipv4 packets.
David S. Miller [Thu, 22 May 2008 00:05:34 +0000 (17:05 -0700)]
cassini: Only use chip checksum for ipv4 packets.

According to David Monro, at least with Natsemi Saturn chips the
cassini driver has some trouble with ipv6 checksums.

Until we have more information about what's going on here, only
use the chip checksums for ipv4.

This workaround was suggested and tested by David.

Update version and release date.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoHTC_EGPIO is ARM-only
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
HTC_EGPIO is ARM-only

driver uses symbols defined only on ARM

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoprovide out-of-line strcat() for m68k
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
provide out-of-line strcat() for m68k

Whether we sidestep it in init/main.c or not, such situations
will arise again; compiler does generate calls of strcat()
on optimizations, so we really ought to have an out-of-line
version...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agocaiaq endianness fix
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
caiaq endianness fix

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMODULE_LICENSE expects "GPL v2", not "GPLv2"
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
MODULE_LICENSE expects "GPL v2", not "GPLv2"

... and we have few enough places using the latter to make it
simpler to do search and replace...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomsnd_* is ISA-only
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
msnd_* is ISA-only

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomissing dependencies on HAS_DMA
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
missing dependencies on HAS_DMA

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoocfs2 endianness fixes
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
ocfs2 endianness fixes

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoirda-usb endianness annotations and fixes
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
irda-usb endianness annotations and fixes

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agosbus bpp: instances missed in s/dev_name/bpp_dev_name/
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
sbus bpp: instances missed in s/dev_name/bpp_dev_name/

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoecryptfs fixes
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
ecryptfs fixes

memcpy() from userland pointer is a Bad Thing(tm)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomisc drivers/net endianness noise
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
misc drivers/net endianness noise

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agothanks to net/mac80211 we need to pull drivers/leds/Kconfig on uml
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
thanks to net/mac80211 we need to pull drivers/leds/Kconfig on uml

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomissing export of csum_partial() on uml/amd64
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
missing export of csum_partial() on uml/amd64

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agouml: add missing exports for UML_RANDOM=m
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
uml: add missing exports for UML_RANDOM=m

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agofix hppfs Makefile breakage
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
fix hppfs Makefile breakage

Fallout from commit 46d7b522ebf486edbd096965d534cc6465e9e309 ("uml: move
hppfs_kern.c to hppfs.c")

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agofix include order in sys-i386/registers.c
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
fix include order in sys-i386/registers.c

We want sys/ptrace.h before any includes of linux/ptrace.h and
asm/user.h pulls the latter.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomissed kmalloc() in pcap_user.c
Al Viro [Wed, 21 May 2008 05:32:11 +0000 (06:32 +0100)]
missed kmalloc() in pcap_user.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agotcp: TCP connection times out if ICMP frag needed is delayed
Sridhar Samudrala [Wed, 21 May 2008 23:42:20 +0000 (16:42 -0700)]
tcp: TCP connection times out if ICMP frag needed is delayed

We are seeing an issue with TCP in handling an ICMP frag needed
message that is received after net.ipv4.tcp_retries1 retransmits.
The default value of retries1 is 3. So if the path mtu changes
and ICMP frag needed is lost for the first 3 retransmits or if
it gets delayed until 3 retransmits are done, TCP doesn't update
MSS correctly and continues to retransmit the orginal message
until it timesout after tcp_retries2 retransmits.

I am seeing this issue even with the latest 2.6.25.4 kernel.

In tcp_retransmit_timer(), when retransmits counter exceeds
tcp_retries1 value, the dst cache entry of the socket is reset.
At this time, if we receive an ICMP frag needed message, the
dst entry gets updated with the new MTU, but the TCP sockets
dst_cache entry remains NULL.

So the next time when we try to retransmit after the ICMP frag
needed is received, tcp_retransmit_skb() gets called. Here the
cur_mss value is calculated at the start of the routine with
a NULL sk_dst_cache. Instead we should call tcp_current_mss after
the rebuild_header that caches the dst entry with the updated mtu.
Also the rebuild_header should be called before tcp_fragment
so that skb is fragmented if the mss goes down.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__
Patrick McHardy [Wed, 21 May 2008 21:08:38 +0000 (14:08 -0700)]
netfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__

Greg Steuck <greg@nest.cx> points out that some of the netfilter
headers can't be used in userspace without including linux/types.h
first. The headers include their own linux/types.h include statements,
these are stripped by make headers-install because they are inside
#ifdef __KERNEL__ however. Move them out to fix this.

Reported and Tested by Greg Steuck.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoaf_key: Fix selector family initialization.
Kazunori MIYAZAWA [Wed, 21 May 2008 20:26:11 +0000 (13:26 -0700)]
af_key: Fix selector family initialization.

This propagates the xfrm_user fix made in commit
bcf0dda8d2408fe1c1040cdec5a98e5fcad2ac72 ("[XFRM]: xfrm_user: fix
selector family initialization")

Based upon a bug report from, and tested by, Alan Swanson.

Signed-off-by: Kazunori MIYAZAWA <kazunori@miyazawa.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosunhv: Fix locking in non-paged I/O case.
David S. Miller [Wed, 21 May 2008 06:42:09 +0000 (23:42 -0700)]
sunhv: Fix locking in non-paged I/O case.

This causes the lock to be taken twice, thus resulting in
a deadlock.

Signed-off-by: David S. Miller <davem@davemloft.net>