mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Update to Linux 2.6.16-rc2.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
This commit is contained in:
1 parent
4396727748
commit
294491e83f
26 files changed
+143
-67
No files matched your search
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4-xen0
|
||||
# Thu Feb 2 18:19:17 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xen0
|
||||
# Fri Feb 3 16:57:06 2006
|
||||
#
|
||||
CONFIG_X86_32=y
|
||||
CONFIG_SEMAPHORE_SLEEPERS=y
|
||||
@@ -160,6 +160,11 @@ CONFIG_SWIOTLB=y
|
||||
# CONFIG_NOHIGHMEM is not set
|
||||
CONFIG_HIGHMEM4G=y
|
||||
# CONFIG_HIGHMEM64G is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_3G_OPT is not set
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
@@ -589,10 +594,12 @@ CONFIG_DM_MIRROR=y
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
# CONFIG_FUSION_SPI is not set
|
||||
CONFIG_FUSION=y
|
||||
CONFIG_FUSION_SPI=y
|
||||
# CONFIG_FUSION_FC is not set
|
||||
# CONFIG_FUSION_SAS is not set
|
||||
CONFIG_FUSION_MAX_SGE=128
|
||||
# CONFIG_FUSION_CTL is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4
|
||||
# Thu Feb 2 17:51:17 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xen0
|
||||
# Fri Feb 3 16:53:41 2006
|
||||
#
|
||||
CONFIG_X86_64=y
|
||||
CONFIG_64BIT=y
|
||||
@@ -529,10 +529,12 @@ CONFIG_DM_MULTIPATH_EMC=y
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
# CONFIG_FUSION_SPI is not set
|
||||
CONFIG_FUSION=y
|
||||
CONFIG_FUSION_SPI=y
|
||||
# CONFIG_FUSION_FC is not set
|
||||
# CONFIG_FUSION_SAS is not set
|
||||
CONFIG_FUSION_MAX_SGE=128
|
||||
# CONFIG_FUSION_CTL is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4-xenU
|
||||
# Thu Feb 2 18:28:58 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xenU
|
||||
# Fri Feb 3 16:57:27 2006
|
||||
#
|
||||
CONFIG_X86_32=y
|
||||
CONFIG_SEMAPHORE_SLEEPERS=y
|
||||
@@ -159,6 +159,11 @@ CONFIG_X86_CPUID=y
|
||||
# CONFIG_NOHIGHMEM is not set
|
||||
CONFIG_HIGHMEM4G=y
|
||||
# CONFIG_HIGHMEM64G is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_3G_OPT is not set
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4
|
||||
# Thu Feb 2 17:50:11 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xenU
|
||||
# Fri Feb 3 16:30:13 2006
|
||||
#
|
||||
CONFIG_X86_64=y
|
||||
CONFIG_64BIT=y
|
||||
@@ -735,7 +735,6 @@ CONFIG_VXFS_FS=m
|
||||
CONFIG_QNX4FS_FS=m
|
||||
CONFIG_SYSV_FS=m
|
||||
CONFIG_UFS_FS=m
|
||||
# CONFIG_UFS_FS_WRITE is not set
|
||||
|
||||
#
|
||||
# Network File Systems
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4-xen
|
||||
# Thu Feb 2 18:43:06 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xen
|
||||
# Fri Feb 3 16:57:47 2006
|
||||
#
|
||||
CONFIG_X86_32=y
|
||||
CONFIG_SEMAPHORE_SLEEPERS=y
|
||||
@@ -166,6 +166,11 @@ CONFIG_DCDBAS=m
|
||||
# CONFIG_NOHIGHMEM is not set
|
||||
CONFIG_HIGHMEM4G=y
|
||||
# CONFIG_HIGHMEM64G is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_3G_OPT is not set
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
@@ -1222,7 +1227,6 @@ CONFIG_IEEE1394_RAWIO=m
|
||||
CONFIG_I2O=m
|
||||
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
|
||||
CONFIG_I2O_EXT_ADAPTEC=y
|
||||
# CONFIG_I2O_EXT_ADAPTEC_DMA64 is not set
|
||||
CONFIG_I2O_CONFIG=m
|
||||
CONFIG_I2O_CONFIG_OLD_IOCTL=y
|
||||
CONFIG_I2O_BUS=m
|
||||
@@ -2494,6 +2498,7 @@ CONFIG_USB_MICROTEK=m
|
||||
# CONFIG_USB_DABUSB is not set
|
||||
CONFIG_USB_VICAM=m
|
||||
CONFIG_USB_DSBR=m
|
||||
CONFIG_USB_ET61X251=m
|
||||
CONFIG_USB_IBMCAM=m
|
||||
CONFIG_USB_KONICAWC=m
|
||||
CONFIG_USB_OV511=m
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc1-git4
|
||||
# Thu Feb 2 17:54:57 2006
|
||||
# Linux kernel version: 2.6.16-rc2-xen
|
||||
# Fri Feb 3 16:30:34 2006
|
||||
#
|
||||
CONFIG_X86_64=y
|
||||
CONFIG_64BIT=y
|
||||
@@ -2195,6 +2195,7 @@ CONFIG_USB_MICROTEK=m
|
||||
CONFIG_USB_DABUSB=m
|
||||
CONFIG_USB_VICAM=m
|
||||
CONFIG_USB_DSBR=m
|
||||
CONFIG_USB_ET61X251=m
|
||||
CONFIG_USB_IBMCAM=m
|
||||
CONFIG_USB_KONICAWC=m
|
||||
CONFIG_USB_OV511=m
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
OS = linux
|
||||
|
||||
LINUX_SERIES = 2.6
|
||||
LINUX_VER = 2.6.16-rc1-git4
|
||||
LINUX_SRCS = linux-2.6.15.tar.bz2 patch-2.6.16-rc1.bz2 patch-2.6.16-rc1-git4.bz2
|
||||
LINUX_VER = 2.6.16-rc2
|
||||
LINUX_SRCS = linux-2.6.15.tar.bz2 patch-2.6.16-rc2.bz2
|
||||
LINUX_PDIR = linux-$(LINUX_VER)
|
||||
|
||||
EXTRAVERSION ?= xen
|
||||
@@ -33,7 +33,7 @@ pristine-$(LINUX_PDIR)/.valid-srcs: $(LINUX_SRCS)
|
||||
touch $(@D)/.hgskip
|
||||
touch $@
|
||||
|
||||
pristine-linux-%.16-rc1-git4/.valid-pristine: pristine-$(LINUX_PDIR)/.valid-srcs
|
||||
pristine-linux-%.16-rc2/.valid-pristine: pristine-$(LINUX_PDIR)/.valid-srcs
|
||||
touch $@ # update timestamp to avoid rebuild
|
||||
|
||||
$(LINUX_DIR)/include/linux/autoconf.h: ref-$(OS)-$(LINUX_VER)/.valid-ref
|
||||
|
||||
@@ -47,16 +47,6 @@ config DMI
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
config DOUBLEFAULT
|
||||
default y
|
||||
bool "Enable doublefault exception handler" if EMBEDDED
|
||||
depends on !XEN
|
||||
help
|
||||
This option allows trapping of rare doublefault exceptions that
|
||||
would otherwise cause a system to silently reboot. Disabling this
|
||||
option saves about 4k and might cause you much additional grey
|
||||
hair.
|
||||
|
||||
menu "Processor type and features"
|
||||
|
||||
choice
|
||||
@@ -492,6 +482,43 @@ config HIGHMEM64G
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
depends on EXPERIMENTAL && !X86_PAE
|
||||
prompt "Memory split"
|
||||
default VMSPLIT_3G
|
||||
help
|
||||
Select the desired split between kernel and user memory.
|
||||
|
||||
If the address range available to the kernel is less than the
|
||||
physical memory installed, the remaining memory will be available
|
||||
as "high memory". Accessing high memory is a little more costly
|
||||
than low memory, as it needs to be mapped into the kernel first.
|
||||
Note that increasing the kernel address space limits the range
|
||||
available to user programs, making the address space there
|
||||
tighter. Selecting anything other than the default 3G/1G split
|
||||
will also likely make your kernel incompatible with binary-only
|
||||
kernel modules.
|
||||
|
||||
If you are not absolutely sure what you are doing, leave this
|
||||
option alone!
|
||||
|
||||
config VMSPLIT_3G
|
||||
bool "3G/1G user/kernel split"
|
||||
config VMSPLIT_3G_OPT
|
||||
bool "3G/1G user/kernel split (for full 1G low memory)"
|
||||
config VMSPLIT_2G
|
||||
bool "2G/2G user/kernel split"
|
||||
config VMSPLIT_1G
|
||||
bool "1G/3G user/kernel split"
|
||||
endchoice
|
||||
|
||||
config PAGE_OFFSET
|
||||
hex
|
||||
default 0xB0000000 if VMSPLIT_3G_OPT
|
||||
default 0x78000000 if VMSPLIT_2G
|
||||
default 0x40000000 if VMSPLIT_1G
|
||||
default 0xC0000000
|
||||
|
||||
config HIGHMEM
|
||||
bool
|
||||
depends on HIGHMEM64G || HIGHMEM4G
|
||||
@@ -749,6 +776,16 @@ config HOTPLUG_CPU
|
||||
|
||||
Say N.
|
||||
|
||||
config DOUBLEFAULT
|
||||
default y
|
||||
bool "Enable doublefault exception handler" if EMBEDDED
|
||||
depends on !XEN
|
||||
help
|
||||
This option allows trapping of rare doublefault exceptions that
|
||||
would otherwise cause a system to silently reboot. Disabling this
|
||||
option saves about 4k and might cause you much additional grey
|
||||
hair.
|
||||
|
||||
endmenu
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o
|
||||
obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
|
||||
|
||||
ifneq ($(CONFIG_ACPI_PROCESSOR),)
|
||||
obj-y += cstate.o
|
||||
obj-y += cstate.o processor.o
|
||||
endif
|
||||
|
||||
ifdef CONFIG_XEN
|
||||
|
||||
@@ -466,7 +466,7 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
|
||||
* success: return IRQ number (>=0)
|
||||
* failure: return < 0
|
||||
*/
|
||||
int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||
int acpi_register_gsi(u32 gsi, int triggering, int polarity)
|
||||
{
|
||||
unsigned int irq;
|
||||
unsigned int plat_gsi = gsi;
|
||||
@@ -478,14 +478,14 @@ int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||
if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
|
||||
extern void eisa_set_level_irq(unsigned int irq);
|
||||
|
||||
if (edge_level == ACPI_LEVEL_SENSITIVE)
|
||||
if (triggering == ACPI_LEVEL_SENSITIVE)
|
||||
eisa_set_level_irq(gsi);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) {
|
||||
plat_gsi = mp_register_gsi(gsi, edge_level, active_high_low);
|
||||
plat_gsi = mp_register_gsi(gsi, triggering, polarity);
|
||||
}
|
||||
#endif
|
||||
acpi_gsi_to_irq(plat_gsi, &irq);
|
||||
|
||||
@@ -1097,7 +1097,7 @@ void __init mp_config_acpi_legacy_irqs (void)
|
||||
|
||||
#define MAX_GSI_NUM 4096
|
||||
|
||||
int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
|
||||
int mp_register_gsi (u32 gsi, int triggering, int polarity)
|
||||
{
|
||||
int ioapic = -1;
|
||||
int ioapic_pin = 0;
|
||||
@@ -1146,7 +1146,7 @@ int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
|
||||
|
||||
mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
|
||||
|
||||
if (edge_level) {
|
||||
if (triggering == ACPI_LEVEL_SENSITIVE) {
|
||||
/*
|
||||
* For PCI devices assign IRQs in order, avoiding gaps
|
||||
* due to unused I/O APIC pins.
|
||||
@@ -1168,8 +1168,8 @@ int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
|
||||
}
|
||||
|
||||
io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
|
||||
edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
|
||||
active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
|
||||
triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
|
||||
polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
|
||||
return gsi;
|
||||
}
|
||||
|
||||
|
||||
@@ -542,6 +542,11 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
|
||||
case PCI_DEVICE_ID_INTEL_ICH7_30:
|
||||
case PCI_DEVICE_ID_INTEL_ICH7_31:
|
||||
case PCI_DEVICE_ID_INTEL_ESB2_0:
|
||||
case PCI_DEVICE_ID_INTEL_ICH8_0:
|
||||
case PCI_DEVICE_ID_INTEL_ICH8_1:
|
||||
case PCI_DEVICE_ID_INTEL_ICH8_2:
|
||||
case PCI_DEVICE_ID_INTEL_ICH8_3:
|
||||
case PCI_DEVICE_ID_INTEL_ICH8_4:
|
||||
r->name = "PIIX/ICH";
|
||||
r->get = pirq_piix_get;
|
||||
r->set = pirq_piix_set;
|
||||
|
||||
@@ -267,7 +267,7 @@ int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
|
||||
highmem_len = highmem_pages * sizeof(struct page);
|
||||
|
||||
total_pages = phys_pages + iomem_pages + highmem_pages;
|
||||
total_len = phys_len + iomem_pages + highmem_len;
|
||||
total_len = phys_len + iomem_len + highmem_len;
|
||||
|
||||
if(kmalloc_ok){
|
||||
map = kmalloc(total_len, GFP_KERNEL);
|
||||
|
||||
@@ -703,7 +703,7 @@ ia32_sys_call_table:
|
||||
.quad sys_mkdirat
|
||||
.quad sys_mknodat
|
||||
.quad sys_fchownat
|
||||
.quad sys_futimesat
|
||||
.quad compat_sys_futimesat
|
||||
.quad compat_sys_newfstatat /* 300 */
|
||||
.quad sys_unlinkat
|
||||
.quad sys_renameat
|
||||
|
||||
@@ -2,4 +2,8 @@ obj-y := boot.o
|
||||
boot-y := ../../../i386/kernel/acpi/boot.o
|
||||
obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
|
||||
|
||||
ifneq ($(CONFIG_ACPI_PROCESSOR),)
|
||||
obj-y += processor.o
|
||||
endif
|
||||
|
||||
boot-$(CONFIG_XEN) := ../../../i386/kernel/acpi/boot-xen.o
|
||||
@@ -2105,7 +2105,7 @@ int __init io_apic_get_redir_entries (int ioapic)
|
||||
}
|
||||
|
||||
|
||||
int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low)
|
||||
int io_apic_set_pci_routing (int ioapic, int pin, int irq, int triggering, int polarity)
|
||||
{
|
||||
struct IO_APIC_route_entry entry;
|
||||
unsigned long flags;
|
||||
@@ -2127,8 +2127,8 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
|
||||
entry.delivery_mode = INT_DELIVERY_MODE;
|
||||
entry.dest_mode = INT_DEST_MODE;
|
||||
entry.dest.logical.logical_dest = cpu_mask_to_apicid(TARGET_CPUS);
|
||||
entry.trigger = edge_level;
|
||||
entry.polarity = active_high_low;
|
||||
entry.trigger = triggering;
|
||||
entry.polarity = polarity;
|
||||
entry.mask = 1; /* Disabled (masked) */
|
||||
|
||||
irq = gsi_irq_sharing(irq);
|
||||
@@ -2143,9 +2143,9 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
|
||||
apic_printk(APIC_VERBOSE,KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry (%d-%d -> 0x%x -> "
|
||||
"IRQ %d Mode:%i Active:%i)\n", ioapic,
|
||||
mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq,
|
||||
edge_level, active_high_low);
|
||||
triggering, polarity);
|
||||
|
||||
ioapic_register_intr(irq, entry.vector, edge_level);
|
||||
ioapic_register_intr(irq, entry.vector, triggering);
|
||||
|
||||
if (!ioapic && (irq < 16))
|
||||
disable_8259A_irq(irq);
|
||||
|
||||
@@ -920,7 +920,7 @@ void __init mp_config_acpi_legacy_irqs (void)
|
||||
|
||||
#define MAX_GSI_NUM 4096
|
||||
|
||||
int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||
int mp_register_gsi(u32 gsi, int triggering, int polarity)
|
||||
{
|
||||
int ioapic = -1;
|
||||
int ioapic_pin = 0;
|
||||
@@ -969,7 +969,7 @@ int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||
|
||||
mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
|
||||
|
||||
if (edge_level) {
|
||||
if (triggering == ACPI_LEVEL_SENSITIVE) {
|
||||
/*
|
||||
* For PCI devices assign IRQs in order, avoiding gaps
|
||||
* due to unused I/O APIC pins.
|
||||
@@ -991,8 +991,8 @@ int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||
}
|
||||
|
||||
io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
|
||||
edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
|
||||
active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
|
||||
triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
|
||||
polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
|
||||
return gsi;
|
||||
}
|
||||
|
||||
|
||||
@@ -267,7 +267,6 @@ config ACPI_DEBUG
|
||||
|
||||
config ACPI_EC
|
||||
bool
|
||||
depends on X86
|
||||
default y
|
||||
help
|
||||
This driver is required on some systems for the proper operation of
|
||||
|
||||
@@ -24,7 +24,7 @@ config SERIAL_8250
|
||||
work.)
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called serial.
|
||||
module will be called 8250.
|
||||
[WARNING: Do not compile this driver as a module if you are using
|
||||
non-standard serial ports, since the configuration information will
|
||||
be lost when the driver is unloaded. This limitation may be lifted
|
||||
|
||||
@@ -1328,7 +1328,7 @@ config UFS_FS
|
||||
|
||||
config UFS_FS_WRITE
|
||||
bool "UFS file system write support (DANGEROUS)"
|
||||
depends on UFS_FS && EXPERIMENTAL
|
||||
depends on UFS_FS && EXPERIMENTAL && BROKEN
|
||||
help
|
||||
Say Y here if you want to try writing to UFS partitions. This is
|
||||
experimental, so you should back up your UFS partitions beforehand.
|
||||
|
||||
@@ -280,10 +280,10 @@ extern int page_is_ram(unsigned long pagenr);
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
#define __PAGE_OFFSET (0xC0000000)
|
||||
#define __PAGE_OFFSET CONFIG_PAGE_OFFSET
|
||||
#define __PHYSICAL_START CONFIG_PHYSICAL_START
|
||||
#else
|
||||
#define __PAGE_OFFSET (0xC0000000UL)
|
||||
#define __PAGE_OFFSET ((unsigned long)CONFIG_PAGE_OFFSET)
|
||||
#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START)
|
||||
#endif
|
||||
#define __KERNEL_START (__PAGE_OFFSET + __PHYSICAL_START)
|
||||
|
||||
@@ -9,7 +9,7 @@ lib-y := errno.o ctype.o string.o vsprintf.o cmdline.o \
|
||||
|
||||
lib-y += kobject.o kref.o kobject_uevent.o klist.o
|
||||
|
||||
obj-y += sort.o parser.o halfmd4.o
|
||||
obj-y += sort.o parser.o halfmd4.o iomap_copy.o
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_KOBJECT),y)
|
||||
CFLAGS_kobject.o += -DDEBUG
|
||||
|
||||
@@ -1987,6 +1987,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
goto out;
|
||||
|
||||
entry = pte_to_swp_entry(orig_pte);
|
||||
again:
|
||||
page = lookup_swap_cache(entry);
|
||||
if (!page) {
|
||||
swapin_readahead(entry, address, vma);
|
||||
@@ -2010,6 +2011,12 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
|
||||
mark_page_accessed(page);
|
||||
lock_page(page);
|
||||
if (!PageSwapCache(page)) {
|
||||
/* Page migration has occured */
|
||||
unlock_page(page);
|
||||
page_cache_release(page);
|
||||
goto again;
|
||||
}
|
||||
|
||||
/*
|
||||
* Back out if somebody else already faulted in this pte.
|
||||
|
||||
@@ -1801,7 +1801,7 @@ void zonetable_add(struct zone *zone, int nid, int zid, unsigned long pfn,
|
||||
memmap_init_zone((size), (nid), (zone), (start_pfn))
|
||||
#endif
|
||||
|
||||
static int __meminit zone_batchsize(struct zone *zone)
|
||||
static int __cpuinit zone_batchsize(struct zone *zone)
|
||||
{
|
||||
int batch;
|
||||
|
||||
@@ -1895,7 +1895,7 @@ static struct per_cpu_pageset
|
||||
* Dynamically allocate memory for the
|
||||
* per cpu pageset array in struct zone.
|
||||
*/
|
||||
static int __meminit process_zones(int cpu)
|
||||
static int __cpuinit process_zones(int cpu)
|
||||
{
|
||||
struct zone *zone, *dzone;
|
||||
|
||||
@@ -1936,7 +1936,7 @@ static inline void free_zone_pagesets(int cpu)
|
||||
}
|
||||
}
|
||||
|
||||
static int __meminit pageset_cpuup_callback(struct notifier_block *nfb,
|
||||
static int __cpuinit pageset_cpuup_callback(struct notifier_block *nfb,
|
||||
unsigned long action,
|
||||
void *hcpu)
|
||||
{
|
||||
|
||||
@@ -2593,13 +2593,14 @@ int dev_ioctl(unsigned int cmd, void __user *arg)
|
||||
case SIOCBONDENSLAVE:
|
||||
case SIOCBONDRELEASE:
|
||||
case SIOCBONDSETHWADDR:
|
||||
case SIOCBONDSLAVEINFOQUERY:
|
||||
case SIOCBONDINFOQUERY:
|
||||
case SIOCBONDCHANGEACTIVE:
|
||||
case SIOCBRADDIF:
|
||||
case SIOCBRDELIF:
|
||||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
/* fall through */
|
||||
case SIOCBONDSLAVEINFOQUERY:
|
||||
case SIOCBONDINFOQUERY:
|
||||
dev_load(ifr.ifr_name);
|
||||
rtnl_lock();
|
||||
ret = dev_ifsioc(&ifr, cmd);
|
||||
|
||||
@@ -136,13 +136,15 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here)
|
||||
struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
|
||||
int fclone)
|
||||
{
|
||||
kmem_cache_t *cache;
|
||||
struct skb_shared_info *shinfo;
|
||||
struct sk_buff *skb;
|
||||
u8 *data;
|
||||
|
||||
cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
|
||||
|
||||
/* Get the HEAD */
|
||||
skb = kmem_cache_alloc(fclone ? skbuff_fclone_cache : skbuff_head_cache,
|
||||
gfp_mask & ~__GFP_DMA);
|
||||
skb = kmem_cache_alloc(cache, gfp_mask & ~__GFP_DMA);
|
||||
if (!skb)
|
||||
goto out;
|
||||
|
||||
@@ -181,7 +183,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
|
||||
out:
|
||||
return skb;
|
||||
nodata:
|
||||
kmem_cache_free(fclone ? skbuff_fclone_cache : skbuff_head_cache, skb);
|
||||
kmem_cache_free(cache, skb);
|
||||
skb = NULL;
|
||||
goto out;
|
||||
}
|
||||
@@ -206,13 +208,15 @@ struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,
|
||||
gfp_t gfp_mask,
|
||||
int fclone)
|
||||
{
|
||||
kmem_cache_t *cache;
|
||||
struct skb_shared_info *shinfo;
|
||||
struct sk_buff *skb;
|
||||
u8 *data;
|
||||
|
||||
cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
|
||||
|
||||
/* Get the HEAD */
|
||||
skb = kmem_cache_alloc(fclone ? skbuff_fclone_cache : skbuff_head_cache,
|
||||
gfp_mask & ~__GFP_DMA);
|
||||
skb = kmem_cache_alloc(cache, gfp_mask & ~__GFP_DMA);
|
||||
if (!skb)
|
||||
goto out;
|
||||
|
||||
@@ -251,7 +255,7 @@ struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,
|
||||
out:
|
||||
return skb;
|
||||
nodata:
|
||||
kmem_cache_free(fclone ? skbuff_fclone_cache : skbuff_head_cache, skb);
|
||||
kmem_cache_free(cache, skb);
|
||||
skb = NULL;
|
||||
goto out;
|
||||
}
|
||||
|
||||