Commit 115f8aaa authored by David S. Miller's avatar David S. Miller

Merge nuts.ninka.net:/home/davem/src/BK/network-2.5

into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents 2fb3049c 34b2137e
......@@ -665,33 +665,8 @@ source "drivers/md/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
if PCI
source "drivers/message/fusion/Kconfig"
endif
......
......@@ -898,33 +898,8 @@ source "net/ax25/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig"
......
......@@ -364,32 +364,8 @@ source "drivers/ide/Kconfig"
endmenu
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/isdn/Kconfig"
#
......
......@@ -533,33 +533,8 @@ source "drivers/md/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig"
......
......@@ -1206,33 +1206,8 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
menu "Old CD-ROM drivers (not SCSI, not IDE)"
depends on ISA
......
......@@ -557,32 +557,8 @@ source "drivers/message/fusion/Kconfig"
endif
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "net/Kconfig"
......
......@@ -585,33 +585,8 @@ source "drivers/input/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "net/Kconfig"
......
......@@ -527,22 +527,8 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
help
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
source "drivers/scsi/Kconfig"
endmenu
menu "Old CD-ROM drivers (not SCSI, not IDE)"
depends on ISA
......
......@@ -1216,33 +1216,8 @@ endmenu
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
menu "Old CD-ROM drivers (not SCSI, not IDE)"
depends on ISA
......
......@@ -182,33 +182,7 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source drivers/scsi/Kconfig
endmenu
source "drivers/scsi/Kconfig"
source "drivers/md/Kconfig"
......
......@@ -1175,33 +1175,8 @@ source "drivers/md/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/message/fusion/Kconfig"
source "drivers/ieee1394/Kconfig"
......
......@@ -253,33 +253,8 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/md/Kconfig"
source "drivers/message/fusion/Kconfig"
......
......@@ -231,15 +231,8 @@ config PCMCIA
source "drivers/base/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
source "drivers/scsi/Kconfig"
endmenu
source "drivers/s390/Kconfig"
source "net/Kconfig"
......
......@@ -777,33 +777,8 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
menu "Old CD-ROM drivers (not SCSI, not IDE)"
......
......@@ -481,33 +481,8 @@ endif
source "drivers/isdn/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/fc4/Kconfig"
source "net/Kconfig"
......
......@@ -52,7 +52,9 @@ CORE_Y += kernel/ mm/ fs/ ipc/ security/ crypto/
CORE_Y := $(patsubst %/, %/built-in.o, $(CORE_Y))
DRIVERS_Y := $(patsubst %/, %/built-in.o, $(drivers-y))
NET_Y := $(patsubst %/, %/built-in.o, $(net-y))
LIBS_Y := $(patsubst %/, %/lib.a, $(libs-y))
LIBS_Y1 := $(patsubst %/, %/lib.a, $(libs-y))
LIBS_Y2 := $(patsubst %/, %/built-in.o, $(libs-y))
LIBS_Y := $(LIBS_Y1) $(LIBS_Y2)
export INIT_Y CORE_Y DRIVERS_Y NET_Y LIBS_Y HEAD_Y
# Default target
......
......@@ -675,33 +675,8 @@ endmenu
source "drivers/ide/Kconfig"
menu "SCSI support"
config SCSI
tristate "SCSI support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/fc4/Kconfig"
if PCI
......
......@@ -265,15 +265,6 @@ menu "Disk device support"
source "drivers/ide/Kconfig"
config SCSI
tristate "SCSI device support"
help
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
source "drivers/scsi/Kconfig"
endmenu
......
......@@ -407,33 +407,8 @@ source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you want support for the parallel
port version of the 100 MB IOMEGA ZIP drive.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
source "drivers/scsi/Kconfig"
endmenu
source "drivers/md/Kconfig"
source "drivers/telephony/Kconfig"
......
......@@ -30,10 +30,12 @@
#define AT_SYSINFO 32
#define AT_SYSINFO_EHDR 33
#if 0 /* disabled for now because the code has still problems */
#define ARCH_DLINFO do { \
NEW_AUX_ENT(AT_SYSINFO, (u32)(u64)VSYSCALL32_VSYSCALL); \
NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL32_BASE); \
} while(0)
#endif
struct file;
struct elf_phdr;
......
......@@ -552,7 +552,7 @@ static int do_usbdevfs_reapurb(unsigned int fd, unsigned int cmd, unsigned long
set_fs(old_fs);
if (err >= 0 &&
put_user(((u32)(long)kptr), compat_ptr(arg)))
put_user((u32)(u64)kptr, (u32 *)arg))
err = -EFAULT;
return err;
......
......@@ -210,6 +210,7 @@ static struct task_struct *find_target(int request, int pid, int *err)
return child;
}
out:
if (child)
put_task_struct(child);
return NULL;
......
......@@ -946,10 +946,30 @@ sys32_sysinfo(struct sysinfo32 *info)
struct sysinfo s;
int ret;
mm_segment_t old_fs = get_fs ();
int bitcount = 0;
set_fs (KERNEL_DS);
ret = sys_sysinfo(&s);
set_fs (old_fs);
/* Check to see if any memory value is too large for 32-bit and scale
* down if needed
*/
if ((s.totalram >> 32) || (s.totalswap >> 32)) {
while (s.mem_unit < PAGE_SIZE) {
s.mem_unit <<= 1;
bitcount++;
}
s.totalram >>= bitcount;
s.freeram >>= bitcount;
s.sharedram >>= bitcount;
s.bufferram >>= bitcount;
s.totalswap >>= bitcount;
s.freeswap >>= bitcount;
s.totalhigh >>= bitcount;
s.freehigh >>= bitcount;
}
if (verify_area(VERIFY_WRITE, info, sizeof(struct sysinfo32)) ||
__put_user (s.uptime, &info->uptime) ||
__put_user (s.loads[0], &info->loads[0]) ||
......
......@@ -100,7 +100,7 @@ acpi_parse_madt (
if (madt->lapic_address)
acpi_lapic_addr = (u64) madt->lapic_address;
printk(KERN_INFO PREFIX "Local APIC address 0x%08x\n",
printk(KERN_INFO PREFIX "Local APIC address 0x%016x\n",
madt->lapic_address);
return 0;
......
......@@ -26,9 +26,6 @@
#include <linux/irq.h>
/* When we have things working, we can switch to always use
IOAPIC. --pavel */
/*
* Common place to define all x86 IRQ vectors
*
......
......@@ -31,9 +31,6 @@
#define DEBUGP(fmt...)
/* TODO this should be in vmlist, but we must fix get_vm_area first to
handle out of bounds entries properly.
Also need to fix /proc/kcore, /dev/kmem */
static struct vm_struct *mod_vmlist;
void module_free(struct module *mod, void *module_region)
......
......@@ -34,7 +34,7 @@
extern void default_do_nmi(struct pt_regs *);
unsigned int nmi_watchdog = NMI_LOCAL_APIC;
unsigned int nmi_watchdog = NMI_IO_APIC;
static unsigned int nmi_hz = HZ;
unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */
int nmi_watchdog_disabled;
......@@ -153,17 +153,19 @@ void enable_lapic_nmi_watchdog(void)
#include <linux/device.h>
static int nmi_pm_active; /* nmi_active before suspend */
static int lapic_nmi_suspend(struct sys_device *dev, u32 state)
{
nmi_pm_active = nmi_active;
disable_lapic_nmi_watchdog();
return 0;
}
static int lapic_nmi_resume(struct sys_device *dev)
{
#if 0
if (nmi_pm_active > 0)
enable_lapic_nmi_watchdog();
#endif
return 0;
}
......@@ -235,6 +237,8 @@ void setup_apic_nmi_watchdog (void)
case X86_VENDOR_AMD:
if (boot_cpu_data.x86 < 6)
return;
if (strstr(boot_cpu_data.x86_model_id, "Screwdriver"))
return;
setup_k7_watchdog();
break;
default:
......
......@@ -236,7 +236,7 @@ void dump_leak(void)
static int dump;
if (dump || !iommu_leak_tab) return;
dump = 1;
show_stack(NULL);
show_stack(NULL,NULL);
/* Very crude. dump some from the end of the table too */
printk("Dumping %d pages from end of IOMMU:\n", iommu_leak_pages);
for (i = 0; i < iommu_leak_pages; i+=2) {
......
......@@ -121,11 +121,12 @@ void fix_processor_context(void)
struct tss_struct * t = init_tss + cpu;
set_tss_desc(cpu,t); /* This just modifies memory; should not be neccessary. But... This is neccessary, because 386 hardware has concept of busy TSS or some similar stupidity. */
((struct n_desc_struct *) &cpu_gdt_table[cpu][GDT_ENTRY_TSS])->b &= 0xfffffdff;
cpu_gdt_table[cpu][GDT_ENTRY_TSS].type = 9;
syscall_init(); /* This sets MSR_*STAR and related */
load_TR_desc(); /* This does ltr */
load_LDT(&current->mm->context); /* This does lldt */
load_LDT(&current->active_mm->context); /* This does lldt */
/*
* Now maybe reload the debug registers
......
......@@ -47,6 +47,7 @@ unsigned long hpet_period; /* fsecs / HPET clock */
unsigned long hpet_tick; /* HPET clocks / interrupt */
unsigned long vxtime_hz = 1193182;
int report_lost_ticks; /* command line option */
unsigned long long monotonic_base;
struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */
......@@ -137,6 +138,18 @@ int do_settimeofday(struct timespec *tv)
tv->tv_sec--;
}
wall_to_monotonic.tv_sec += xtime.tv_sec - tv->tv_sec;
wall_to_monotonic.tv_nsec += xtime.tv_nsec - tv->tv_nsec;
if (wall_to_monotonic.tv_nsec > NSEC_PER_SEC) {
wall_to_monotonic.tv_nsec -= NSEC_PER_SEC;
wall_to_monotonic.tv_sec++;
}
if (wall_to_monotonic.tv_nsec < 0) {
wall_to_monotonic.tv_nsec += NSEC_PER_SEC;
wall_to_monotonic.tv_sec--;
}
xtime.tv_sec = tv->tv_sec;
xtime.tv_nsec = tv->tv_nsec;
......@@ -219,6 +232,47 @@ static void set_rtc_mmss(unsigned long nowtime)
spin_unlock(&rtc_lock);
}
/* monotonic_clock(): returns # of nanoseconds passed since time_init()
* Note: This function is required to return accurate
* time even in the absence of multiple timer ticks.
*/
unsigned long long monotonic_clock(void)
{
unsigned long seq;
u32 last_offset, this_offset, offset;
unsigned long long base;
if (vxtime.mode == VXTIME_HPET) {
do {
seq = read_seqbegin(&xtime_lock);
last_offset = vxtime.last;
base = monotonic_base;
this_offset = hpet_readl(HPET_T0_CMP) - hpet_tick;
} while (read_seqretry(&xtime_lock, seq));
offset = (this_offset - last_offset);
offset *=(NSEC_PER_SEC/HZ)/hpet_tick;
return base + offset;
}else{
do {
seq = read_seqbegin(&xtime_lock);
last_offset = vxtime.last_tsc;
base = monotonic_base;
} while (read_seqretry(&xtime_lock, seq));
sync_core();
rdtscll(this_offset);
offset = (this_offset - last_offset)*1000/cpu_khz;
return base + offset;
}
}
EXPORT_SYMBOL(monotonic_clock);
static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static unsigned long rtc_update = 0;
......@@ -253,6 +307,9 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
lost = (offset - vxtime.last) / hpet_tick - 1;
}
monotonic_base +=
(offset - vxtime.last)*(NSEC_PER_SEC/HZ) / hpet_tick;
vxtime.last = offset;
} else {
offset = (((tsc - vxtime.last_tsc) *
......@@ -266,6 +323,8 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
offset %= (USEC_PER_SEC / HZ);
}
monotonic_base += (tsc - vxtime.last_tsc)*1000000/cpu_khz ;
vxtime.last_tsc = tsc - vxtime.quot * delay / vxtime.tsc_quot;
if ((((tsc - vxtime.last_tsc) *
......@@ -544,6 +603,9 @@ void __init time_init(void)
xtime.tv_sec = get_cmos_time();
xtime.tv_nsec = 0;
wall_to_monotonic.tv_sec = -xtime.tv_sec;
wall_to_monotonic.tv_nsec = -xtime.tv_nsec;
if (!hpet_init()) {
vxtime_hz = (1000000000000000L + hpet_period / 2) /
hpet_period;
......
......@@ -27,6 +27,7 @@
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <asm/system.h>
#include <asm/uaccess.h>
......@@ -206,7 +207,7 @@ void show_trace_task(struct task_struct *tsk)
show_trace((unsigned long *)rsp);
}
void show_stack(unsigned long * rsp)
void show_stack(struct task_struct *tsk, unsigned long * rsp)
{
unsigned long *stack;
int i;
......@@ -214,7 +215,7 @@ void show_stack(unsigned long * rsp)
unsigned long *irqstack_end = (unsigned long *) (cpu_pda[cpu].irqstackptr);
unsigned long *irqstack = (unsigned long *) (cpu_pda[cpu].irqstackptr - IRQSTACKSIZE);
// debugging aid: "show_stack(NULL);" prints the
// debugging aid: "show_stack(NULL, NULL);" prints the
// back trace for this cpu.
if(rsp==NULL)
......@@ -269,7 +270,7 @@ void show_registers(struct pt_regs *regs)
if (in_kernel) {
printk("Stack: ");
show_stack((unsigned long*)rsp);
show_stack(NULL, (unsigned long*)rsp);
printk("\nCode: ");
if(regs->rip < PAGE_OFFSET)
......@@ -831,3 +832,4 @@ void __init trap_init(void)
*/
cpu_init();
}
......@@ -935,8 +935,8 @@ acpi_os_get_line(char *buffer)
}
/* Assumes no unreadable holes inbetween */
BOOLEAN
acpi_os_readable(void *ptr, u32 len)
u8
acpi_os_readable(void *ptr, acpi_size len)
{
#if defined(__i386__) || defined(__x86_64__)
char tmp;
......@@ -945,8 +945,8 @@ acpi_os_readable(void *ptr, u32 len)
return 1;
}
BOOLEAN
acpi_os_writable(void *ptr, u32 len)
u8
acpi_os_writable(void *ptr, acpi_size len)
{
/* could do dummy write (racy) or a kernel page table lookup.
The later may be difficult at early boot when kmap doesn't work yet. */
......
/*
* Routines common to all CFI-type probes.
* (C) 2001, 2001 Red Hat, Inc.
* (C) 2001-2003 Red Hat, Inc.
* GPL'd
* $Id: gen_probe.c,v 1.11 2003/05/21 15:15:05 dwmw2 Exp $
* $Id: gen_probe.c,v 1.13 2003/06/25 11:50:37 dwmw2 Exp $
*/
#include <linux/kernel.h>
......@@ -281,6 +281,7 @@ typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int);
extern cfi_cmdset_fn_t cfi_cmdset_0001;
extern cfi_cmdset_fn_t cfi_cmdset_0002;
extern cfi_cmdset_fn_t cfi_cmdset_0020;
static inline struct mtd_info *cfi_cmdset_unknown(struct map_info *map,
int primary)
......
......@@ -7,7 +7,7 @@
* (c) 1999 Machine Vision Holdings, Inc.
* Author: David Woodhouse <dwmw2@infradead.org>
*
* $Id: inftlcore.c,v 1.11 2003/06/23 12:00:08 dwmw2 Exp $
* $Id: inftlcore.c,v 1.14 2003/06/26 08:28:26 dwmw2 Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -573,7 +573,7 @@ static void INFTL_trydeletechain(struct INFTLrecord *inftl, unsigned thisVUC)
{
unsigned char BlockUsed[MAX_SECTORS_PER_UNIT];
unsigned char BlockDeleted[MAX_SECTORS_PER_UNIT];
unsigned int thisEUN, prevEUN, status;
unsigned int thisEUN, status;
int block, silly;
struct inftl_bci bci;
size_t retlen;
......@@ -645,26 +645,45 @@ static void INFTL_trydeletechain(struct INFTLrecord *inftl, unsigned thisVUC)
DEBUG(MTD_DEBUG_LEVEL1, "INFTL: deleting empty VUC %d\n", thisVUC);
for (;;) {
u16 *prevEUN = &inftl->VUtable[thisVUC];
thisEUN = *prevEUN;
/* If the chain is all gone already, we're done */
if (thisEUN == BLOCK_NIL) {
DEBUG(MTD_DEBUG_LEVEL2, "INFTL: Empty VUC %d for deletion was already absent\n", thisEUN);
return;
}
/* Find oldest unit in chain. */
thisEUN = inftl->VUtable[thisVUC];
prevEUN = BLOCK_NIL;
while (inftl->PUtable[thisEUN] != BLOCK_NIL) {
prevEUN = thisEUN;
thisEUN = inftl->PUtable[thisEUN];
BUG_ON(thisEUN >= inftl->nb_blocks);
prevEUN = &inftl->PUtable[thisEUN];
thisEUN = *prevEUN;
}
DEBUG(MTD_DEBUG_LEVEL3, "Deleting EUN %d from VUC %d\n",
thisEUN, thisVUC);
if (INFTL_formatblock(inftl, thisEUN) < 0) {
/*
* Could not erase : mark block as reserved.
* FixMe: Update Bad Unit Table on disk.
* FixMe: Update Bad Unit Table on medium.
*/
inftl->PUtable[thisEUN] = BLOCK_RESERVED;
} else {
/* Correctly erased : mark it as free */
inftl->PUtable[thisEUN] = BLOCK_FREE;
inftl->PUtable[prevEUN] = BLOCK_NIL;
inftl->numfreeEUNs++;
}
}
/* Now sort out whatever was pointing to it... */
*prevEUN = BLOCK_NIL;
/* Ideally we'd actually be responsive to new
requests while we're doing this -- if there's
free space why should others be made to wait? */
cond_resched();
}
inftl->VUtable[thisVUC] = BLOCK_NIL;
......@@ -837,11 +856,11 @@ static int inftl_readblock(struct mtd_blktrans_dev *mbd, unsigned long block,
static int inftl_getgeo(struct mtd_blktrans_dev *dev, struct hd_geometry *geo)
{
struct NFTLrecord *nftl = (void *)dev;
struct INFTLrecord *inftl = (void *)dev;
geo->heads = nftl->heads;
geo->sectors = nftl->sectors;
geo->cylinders = nftl->cylinders;
geo->heads = inftl->heads;
geo->sectors = inftl->sectors;
geo->cylinders = inftl->cylinders;
return 0;
}
......@@ -862,7 +881,7 @@ extern char inftlmountrev[];
int __init init_inftl(void)
{
printk(KERN_INFO "INFTL: inftlcore.c $Revision: 1.11 $, "
printk(KERN_INFO "INFTL: inftlcore.c $Revision: 1.14 $, "
"inftlmount.c %s\n", inftlmountrev);
return register_mtd_blktrans(&inftl_tr);
......
menu "SCSI device support"
config SCSI
tristate "SCSI device support"
---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you have a device which speaks
the SCSI protocol. Examples of this include the parallel port
version of the IOMEGA ZIP drive, USB storage devices, Fibre
Channel, FireWire storage and the IDE-SCSI emulation driver.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called scsi_mod. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt> and
<file:Documentation/scsi/scsi.txt>. However, do not compile this as a
module if your root file system (the one containing the directory /)
is located on a SCSI device.
comment "SCSI support type (disk, tape, CD-ROM)"
depends on SCSI
......@@ -5,9 +29,10 @@ config BLK_DEV_SD
tristate "SCSI disk support"
depends on SCSI
---help---
If you want to use a SCSI hard disk or the SCSI or parallel port
version of the IOMEGA ZIP drive under Linux, say Y and read the
SCSI-HOWTO, the Disk-HOWTO and the Multi-Disk-HOWTO, available from
If you want to use SCSI hard disks, Fibre Channel disks,
USB storage or the SCSI or parallel port version of
the IOMEGA ZIP drive, say Y and read the SCSI-HOWTO,
the Disk-HOWTO and the Multi-Disk-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. This is NOT for SCSI
CD-ROMs.
......@@ -65,10 +90,10 @@ config BLK_DEV_SR
tristate "SCSI CDROM support"
depends on SCSI
---help---
If you want to use a SCSI CD-ROM under Linux, say Y and read the
SCSI-HOWTO and the CD-ROM-HOWTO at
<http://www.tldp.org/docs.html#howto>. Also make sure to say Y
or M to "ISO 9660 CD-ROM file system support" later.
If you want to use a SCSI or FireWire CD-ROM under Linux,
say Y and read the SCSI-HOWTO and the CDROM-HOWTO at
<http://www.tldp.org/docs.html#howto>. Also make sure to say
Y or M to "ISO 9660 CD-ROM file system support" later.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
......@@ -1823,3 +1848,4 @@ endmenu
source "drivers/scsi/pcmcia/Kconfig"
endmenu
......@@ -100,10 +100,6 @@ struct task_struct;
/* Free all resources held by a thread. */
extern void release_thread(struct task_struct *);
/* Copy and release all segment info associated with a VM */
#define copy_segments(tsk, mm) do { } while (0)
#define release_segments(mm) do { } while (0)
unsigned long get_wchan(struct task_struct *p);
#define cpu_relax() barrier()
......
......@@ -89,9 +89,6 @@ static inline void release_thread(struct task_struct *dead_task)
extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
#define copy_segments(tsk, mm) do { } while (0)
#define release_segments(mm) do { } while (0)
#define forget_segments() do { } while (0)
#define prepare_to_copy(tsk) do { } while (0)
/*
......
......@@ -2,14 +2,19 @@
#ifndef _SPARC_BUG_H
#define _SPARC_BUG_H
/* Only use the inline asm until a gcc release that can handle __builtin_trap
* -rob 2003-06-25 */
#define __bug_trap() \
__asm__ __volatile__ ("t 0x5\n\t" : : )
#ifdef CONFIG_DEBUG_BUGVERBOSE
extern void do_BUG(const char *file, int line);
#define BUG() do { \
do_BUG(__FILE__, __LINE__); \
__builtin_trap(); \
__bug_trap(); \
} while (0)
#else
#define BUG() __builtin_trap()
#define BUG() __bug_trap()
#endif
#define BUG_ON(condition) do { \
......
......@@ -22,7 +22,7 @@
* floppy accesses go through the track buffer.
*/
#define _CROSS_64KB(a,s,vdma) \
(!vdma && ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64))
(!(vdma) && ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64))
#define CROSS_64KB(a,s) _CROSS_64KB(a,s,use_virtual_dma & 1)
......@@ -62,10 +62,8 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
static int bytes=0;
static int dma_wait=0;
#endif
if(!doing_pdma) {
floppy_interrupt(irq, dev_id, regs);
return IRQ_HANDLED;
}
if (!doing_pdma)
return floppy_interrupt(irq, dev_id, regs);
#ifdef TRACE_FLPY_INT
if(!calls)
......@@ -115,7 +113,6 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
if(!virtual_dma_count)
dma_wait++;
#endif
return IRQ_HANDLED;
}
......
......@@ -104,7 +104,7 @@ static __inline__ int mtrr_del_page (int reg, unsigned long base,
return -ENODEV;
}
static __inline__ void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi) {;}
static __inline__ void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi) {}
# endif
......
......@@ -401,6 +401,9 @@ extern int kern_addr_valid(unsigned long addr);
#define pgtable_cache_init() do { } while (0)
#define check_pgt_cache() do { } while (0)
#define PAGE_AGP PAGE_KERNEL_NOCACHE
#define HAVE_PAGE_AGP 1
/* fs/proc/kcore.c */
#define kc_vaddr_to_offset(v) ((v) & __VIRTUAL_MASK)
#define kc_offset_to_vaddr(o) \
......
......@@ -280,8 +280,6 @@ extern void prepare_to_copy(struct task_struct *tsk);
*/
extern long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
static inline void release_segments(struct mm_struct *mm) { }
/*
* Return saved PC of a blocked thread.
* What is this good for? it will be always the scheduler or ret_from_fork.
......
......@@ -52,7 +52,6 @@ extern unsigned long end_pfn_map;
extern unsigned long cpu_initialized;
extern void show_stack(unsigned long * rsp);
extern void show_trace(unsigned long * rsp);
extern void show_registers(struct pt_regs *regs);
......
......@@ -486,10 +486,10 @@ __SYSCALL(__NR_get_thread_area, sys_ni_syscall) /* use arch_prctl */
__SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie)
#define __NR_epoll_create 213
__SYSCALL(__NR_epoll_create, sys_epoll_create)
#define __NR_epoll_ctl 214
__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
#define __NR_epoll_wait 215
__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
#define __NR_epoll_ctl_old 214
__SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall)
#define __NR_epoll_wait_old 215
__SYSCALL(__NR_epoll_wait_old, sys_ni_syscall)
#define __NR_remap_file_pages 216
__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
#define __NR_getdents64 217
......@@ -522,8 +522,12 @@ __SYSCALL(__NR_clock_getres, sys_clock_getres)
__SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep)
#define __NR_exit_group 231
__SYSCALL(__NR_exit_group, sys_exit_group)
#define __NR_epoll_wait 232
__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
#define __NR_epoll_ctl 233
__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
#define __NR_syscall_max __NR_exit_group
#define __NR_syscall_max __NR_epoll_ctl
#ifndef __NO_STUBS
/* user-visible error numbers are in the range -1 - -4095 */
......
......@@ -23,10 +23,20 @@
/* Set the Edge Triggered behaviour for the target file descriptor */
#define EPOLLET (1 << 31)
/*
* On x86-64 make the 64bit structure have the same alignment as the
* 32bit structure. This makes 32bit emulation easier.
*/
#ifdef __x86_64__
#define EPOLL_PACKED __attribute__((packed))
#else
#define EPOLL_PACKED
#endif
struct epoll_event {
__u32 events;
__u64 data;
};
} EPOLL_PACKED;
#ifdef __KERNEL__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment