Merge HEAD from ../from-linus

This commit is contained in:
Len Brown 2005-08-25 12:45:49 -04:00
commit 09d4a80e66
70 changed files with 196 additions and 178 deletions

View file

@ -1,7 +1,7 @@
VERSION = 2 VERSION = 2
PATCHLEVEL = 6 PATCHLEVEL = 6
SUBLEVEL = 13 SUBLEVEL = 13
EXTRAVERSION =-rc6 EXTRAVERSION =-rc7
NAME=Woozy Numbat NAME=Woozy Numbat
# *DOCUMENTATION* # *DOCUMENTATION*

View file

@ -522,7 +522,7 @@ source "mm/Kconfig"
config NUMA config NUMA
bool "NUMA Support (EXPERIMENTAL)" bool "NUMA Support (EXPERIMENTAL)"
depends on DISCONTIGMEM depends on DISCONTIGMEM && BROKEN
help help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor Access). This option is for configuring high-end multiprocessor

View file

@ -1036,7 +1036,7 @@ debug_spin_lock(spinlock_t * lock, const char *base_file, int line_no)
" br 1b\n" " br 1b\n"
".previous" ".previous"
: "=r" (tmp), "=m" (lock->lock), "=r" (stuck) : "=r" (tmp), "=m" (lock->lock), "=r" (stuck)
: "1" (lock->lock), "2" (stuck) : "memory"); : "m" (lock->lock), "2" (stuck) : "memory");
if (stuck < 0) { if (stuck < 0) {
printk(KERN_WARNING printk(KERN_WARNING
@ -1115,7 +1115,7 @@ void _raw_write_lock(rwlock_t * lock)
".previous" ".previous"
: "=m" (*(volatile int *)lock), "=&r" (regx), "=&r" (regy), : "=m" (*(volatile int *)lock), "=&r" (regx), "=&r" (regy),
"=&r" (stuck_lock), "=&r" (stuck_reader) "=&r" (stuck_lock), "=&r" (stuck_reader)
: "0" (*(volatile int *)lock), "3" (stuck_lock), "4" (stuck_reader) : "memory"); : "m" (*(volatile int *)lock), "3" (stuck_lock), "4" (stuck_reader) : "memory");
if (stuck_lock < 0) { if (stuck_lock < 0) {
printk(KERN_WARNING "write_lock stuck at %p\n", inline_pc); printk(KERN_WARNING "write_lock stuck at %p\n", inline_pc);
@ -1153,7 +1153,7 @@ void _raw_read_lock(rwlock_t * lock)
" br 1b\n" " br 1b\n"
".previous" ".previous"
: "=m" (*(volatile int *)lock), "=&r" (regx), "=&r" (stuck_lock) : "=m" (*(volatile int *)lock), "=&r" (regx), "=&r" (stuck_lock)
: "0" (*(volatile int *)lock), "2" (stuck_lock) : "memory"); : "m" (*(volatile int *)lock), "2" (stuck_lock) : "memory");
if (stuck_lock < 0) { if (stuck_lock < 0) {
printk(KERN_WARNING "read_lock stuck at %p\n", inline_pc); printk(KERN_WARNING "read_lock stuck at %p\n", inline_pc);

View file

@ -65,7 +65,7 @@ op_axp_setup(void)
model->reg_setup(&reg, ctr, &sys); model->reg_setup(&reg, ctr, &sys);
/* Configure the registers on all cpus. */ /* Configure the registers on all cpus. */
smp_call_function(model->cpu_setup, &reg, 0, 1); (void)smp_call_function(model->cpu_setup, &reg, 0, 1);
model->cpu_setup(&reg); model->cpu_setup(&reg);
return 0; return 0;
} }
@ -86,7 +86,7 @@ op_axp_cpu_start(void *dummy)
static int static int
op_axp_start(void) op_axp_start(void)
{ {
smp_call_function(op_axp_cpu_start, NULL, 0, 1); (void)smp_call_function(op_axp_cpu_start, NULL, 0, 1);
op_axp_cpu_start(NULL); op_axp_cpu_start(NULL);
return 0; return 0;
} }
@ -101,7 +101,7 @@ op_axp_cpu_stop(void *dummy)
static void static void
op_axp_stop(void) op_axp_stop(void)
{ {
smp_call_function(op_axp_cpu_stop, NULL, 0, 1); (void)smp_call_function(op_axp_cpu_stop, NULL, 0, 1);
op_axp_cpu_stop(NULL); op_axp_cpu_stop(NULL);
} }

View file

@ -310,7 +310,7 @@ menu "Kernel Features"
config SMP config SMP
bool "Symmetric Multi-Processing (EXPERIMENTAL)" bool "Symmetric Multi-Processing (EXPERIMENTAL)"
depends on EXPERIMENTAL #&& n depends on EXPERIMENTAL && BROKEN #&& n
help help
This enables support for systems with more than one CPU. If you have This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If a system with only one CPU, like most personal computers, say N. If

View file

@ -617,7 +617,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs)
notify_die("unknown data abort code", regs, &info, instr, 0); notify_die("unknown data abort code", regs, &info, instr, 0);
} }
volatile void __bug(const char *file, int line, void *data) void __attribute__((noreturn)) __bug(const char *file, int line, void *data)
{ {
printk(KERN_CRIT"kernel BUG at %s:%d!", file, line); printk(KERN_CRIT"kernel BUG at %s:%d!", file, line);
if (data) if (data)

View file

@ -370,20 +370,20 @@ TABLE 5
#define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5) #define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5)
#ifdef CONFIG_FPE_NWFPE_XP #ifdef CONFIG_FPE_NWFPE_XP
static inline const floatx80 getExtendedConstant(const unsigned int nIndex) static inline __attribute_pure__ floatx80 getExtendedConstant(const unsigned int nIndex)
{ {
extern const floatx80 floatx80Constant[]; extern const floatx80 floatx80Constant[];
return floatx80Constant[nIndex]; return floatx80Constant[nIndex];
} }
#endif #endif
static inline const float64 getDoubleConstant(const unsigned int nIndex) static inline __attribute_pure__ float64 getDoubleConstant(const unsigned int nIndex)
{ {
extern const float64 float64Constant[]; extern const float64 float64Constant[];
return float64Constant[nIndex]; return float64Constant[nIndex];
} }
static inline const float32 getSingleConstant(const unsigned int nIndex) static inline __attribute_pure__ float32 getSingleConstant(const unsigned int nIndex)
{ {
extern const float32 float32Constant[]; extern const float32 float32Constant[];
return float32Constant[nIndex]; return float32Constant[nIndex];

View file

@ -803,15 +803,17 @@ void math_error(void __user *eip)
*/ */
cwd = get_fpu_cwd(task); cwd = get_fpu_cwd(task);
swd = get_fpu_swd(task); swd = get_fpu_swd(task);
switch (((~cwd) & swd & 0x3f) | (swd & 0x240)) { switch (swd & ~cwd & 0x3f) {
case 0x000: case 0x000:
default: default:
break; break;
case 0x001: /* Invalid Op */ case 0x001: /* Invalid Op */
case 0x041: /* Stack Fault */ /*
case 0x241: /* Stack Fault | Direction */ * swd & 0x240 == 0x040: Stack Underflow
* swd & 0x240 == 0x240: Stack Overflow
* User must clear the SF bit (0x40) if set
*/
info.si_code = FPE_FLTINV; info.si_code = FPE_FLTINV;
/* Should we clear the SF or let user space do it ???? */
break; break;
case 0x002: /* Denormalize */ case 0x002: /* Denormalize */
case 0x010: /* Underflow */ case 0x010: /* Underflow */

View file

@ -380,6 +380,7 @@ void pcibios_bus_to_resource(struct pci_dev *dev,
res->start = region->start + offset; res->start = region->start + offset;
res->end = region->end + offset; res->end = region->end + offset;
} }
EXPORT_SYMBOL(pcibios_bus_to_resource);
static int __devinit is_valid_resource(struct pci_dev *dev, int idx) static int __devinit is_valid_resource(struct pci_dev *dev, int idx)
{ {

View file

@ -269,7 +269,7 @@ config NR_CPUS
# Common NUMA Features # Common NUMA Features
config NUMA config NUMA
bool "Numa Memory Allocation Support" bool "Numa Memory Allocation Support"
depends on SMP depends on SMP && BROKEN
default n default n
# turning this on wastes a bunch of space. # turning this on wastes a bunch of space.
@ -286,6 +286,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
config PCI config PCI
bool "PCI support" bool "PCI support"
depends on BROKEN
default n default n
help help
Find out whether you have a PCI motherboard. PCI is the name of a Find out whether you have a PCI motherboard. PCI is the name of a

View file

@ -20,7 +20,7 @@ config DEBUG_STACK_USAGE
config DEBUG_PAGEALLOC config DEBUG_PAGEALLOC
bool "Page alloc debugging" bool "Page alloc debugging"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL && BROKEN
help help
Unmap pages from the kernel linear mapping after free_pages(). Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types This results in a large slowdown, but helps to find certain types

View file

@ -30,9 +30,11 @@
typedef struct { typedef struct {
unsigned long icucr; /* ICU Control Register */ unsigned long icucr; /* ICU Control Register */
} icu_data_t; } icu_data_t;
static icu_data_t icu_data[M32700UT_NUM_CPU_IRQ];
#else
icu_data_t icu_data[M32700UT_NUM_CPU_IRQ];
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
static icu_data_t icu_data[M32700UT_NUM_CPU_IRQ];
static void disable_m32700ut_irq(unsigned int irq) static void disable_m32700ut_irq(unsigned int irq)
{ {

View file

@ -31,9 +31,11 @@
typedef struct { typedef struct {
unsigned long icucr; /* ICU Control Register */ unsigned long icucr; /* ICU Control Register */
} icu_data_t; } icu_data_t;
static icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ];
#else
icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ];
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
static icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ];
static void disable_opsput_irq(unsigned int irq) static void disable_opsput_irq(unsigned int irq)
{ {

View file

@ -91,6 +91,7 @@ extern struct {
/* which physical physical ID maps to which logical CPU number */ /* which physical physical ID maps to which logical CPU number */
static volatile int physid_2_cpu[NR_CPUS]; static volatile int physid_2_cpu[NR_CPUS];
#define physid_to_cpu(physid) physid_2_cpu[physid]
/* which logical CPU number maps to which physical ID */ /* which logical CPU number maps to which physical ID */
volatile int cpu_2_physid[NR_CPUS]; volatile int cpu_2_physid[NR_CPUS];

View file

@ -58,3 +58,4 @@ csum_partial_copy_from_user (const unsigned char __user *src,
return csum_partial(dst, len-missing, sum); return csum_partial(dst, len-missing, sum);
} }
EXPORT_SYMBOL(csum_partial_copy_from_user); EXPORT_SYMBOL(csum_partial_copy_from_user);
EXPORT_SYMBOL(csum_partial);

View file

@ -12,12 +12,14 @@
#include <linux/mmzone.h> #include <linux/mmzone.h>
#include <linux/initrd.h> #include <linux/initrd.h>
#include <linux/nodemask.h> #include <linux/nodemask.h>
#include <linux/module.h>
#include <asm/setup.h> #include <asm/setup.h>
extern char _end[]; extern char _end[];
struct pglist_data *node_data[MAX_NUMNODES]; struct pglist_data *node_data[MAX_NUMNODES];
EXPORT_SYMBOL(node_data);
static bootmem_data_t node_bdata[MAX_NUMNODES] __initdata; static bootmem_data_t node_bdata[MAX_NUMNODES] __initdata;
pg_data_t m32r_node_data[MAX_NUMNODES]; pg_data_t m32r_node_data[MAX_NUMNODES];

View file

@ -911,6 +911,7 @@ config PPCBUG_NVRAM
default y if PPC_PREP default y if PPC_PREP
config SMP config SMP
depends on PPC_STD_MMU
bool "Symmetric multi-processing support" bool "Symmetric multi-processing support"
---help--- ---help---
This enables support for systems with more than one CPU. If you have This enables support for systems with more than one CPU. If you have
@ -930,7 +931,7 @@ config SMP
config IRQ_ALL_CPUS config IRQ_ALL_CPUS
bool "Distribute interrupts on all CPUs by default" bool "Distribute interrupts on all CPUs by default"
depends on SMP depends on SMP && !MV64360
help help
This option gives the kernel permission to distribute IRQs across This option gives the kernel permission to distribute IRQs across
multiple CPUs. Saying N here will route all IRQs to the first multiple CPUs. Saying N here will route all IRQs to the first
@ -1121,7 +1122,9 @@ config PROC_HARDWARE
source "drivers/zorro/Kconfig" source "drivers/zorro/Kconfig"
if !44x || BROKEN
source kernel/power/Kconfig source kernel/power/Kconfig
endif
config SECCOMP config SECCOMP
bool "Enable seccomp to safely compute untrusted bytecode" bool "Enable seccomp to safely compute untrusted bytecode"

View file

@ -3,6 +3,11 @@ config 4xx
depends on 40x || 44x depends on 40x || 44x
default y default y
config WANT_EARLY_SERIAL
bool
select SERIAL_8250
default n
menu "IBM 4xx options" menu "IBM 4xx options"
depends on 4xx depends on 4xx
@ -18,6 +23,7 @@ config ASH
config BUBINGA config BUBINGA
bool "Bubinga" bool "Bubinga"
select WANT_EARLY_SERIAL
help help
This option enables support for the IBM 405EP evaluation board. This option enables support for the IBM 405EP evaluation board.
@ -70,21 +76,25 @@ choice
config BAMBOO config BAMBOO
bool "Bamboo" bool "Bamboo"
select WANT_EARLY_SERIAL
help help
This option enables support for the IBM PPC440EP evaluation board. This option enables support for the IBM PPC440EP evaluation board.
config EBONY config EBONY
bool "Ebony" bool "Ebony"
select WANT_EARLY_SERIAL
help help
This option enables support for the IBM PPC440GP evaluation board. This option enables support for the IBM PPC440GP evaluation board.
config LUAN config LUAN
bool "Luan" bool "Luan"
select WANT_EARLY_SERIAL
help help
This option enables support for the IBM PPC440SP evaluation board. This option enables support for the IBM PPC440SP evaluation board.
config OCOTEA config OCOTEA
bool "Ocotea" bool "Ocotea"
select WANT_EARLY_SERIAL
help help
This option enables support for the IBM PPC440GX evaluation board. This option enables support for the IBM PPC440GX evaluation board.
@ -230,10 +240,6 @@ config PPC_GEN550
depends on 4xx depends on 4xx
default y default y
config PM
bool "Power Management support (EXPERIMENTAL)"
depends on 4xx && EXPERIMENTAL
choice choice
prompt "TTYS0 device and default console" prompt "TTYS0 device and default console"
depends on 40x depends on 40x

View file

@ -706,6 +706,8 @@ void machine_power_off(void)
local_irq_disable(); local_irq_disable();
while (1) ; while (1) ;
} }
/* Used by the G5 thermal driver */
EXPORT_SYMBOL_GPL(machine_power_off);
void machine_halt(void) void machine_halt(void)
{ {

View file

@ -46,9 +46,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
"lra 3,0(%4)\n" "lra 3,0(%4)\n"
"lr 5,%5\n" "lr 5,%5\n"
"diag 2,4,0x8\n" "diag 2,4,0x8\n"
"brc 8, .Litfits\n" "brc 8, 1f\n"
"ar 5, %5\n" "ar 5, %5\n"
".Litfits: \n" "1: \n"
"lr %0,4\n" "lr %0,4\n"
"lr %1,5\n" "lr %1,5\n"
: "=d" (return_code), "=d" (return_len) : "=d" (return_code), "=d" (return_len)
@ -64,9 +64,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
"sam31\n" "sam31\n"
"diag 2,4,0x8\n" "diag 2,4,0x8\n"
"sam64\n" "sam64\n"
"brc 8, .Litfits\n" "brc 8, 1f\n"
"agr 5, %5\n" "agr 5, %5\n"
".Litfits: \n" "1: \n"
"lgr %0,4\n" "lgr %0,4\n"
"lgr %1,5\n" "lgr %1,5\n"
: "=d" (return_code), "=d" (return_len) : "=d" (return_code), "=d" (return_len)

View file

@ -540,6 +540,7 @@ void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res,
pbm->parent->resource_adjust(pdev, res, root); pbm->parent->resource_adjust(pdev, res, root);
} }
EXPORT_SYMBOL(pcibios_bus_to_resource);
char * __init pcibios_setup(char *str) char * __init pcibios_setup(char *str)
{ {

View file

@ -1,7 +1,7 @@
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.13-rc3 # Linux kernel version: 2.6.13-rc6-git3
# Fri Jul 22 16:47:31 2005 # Fri Aug 12 16:40:34 2005
# #
CONFIG_X86_64=y CONFIG_X86_64=y
CONFIG_64BIT=y CONFIG_64BIT=y
@ -280,10 +280,6 @@ CONFIG_IPV6=y
# Network testing # Network testing
# #
# CONFIG_NET_PKTGEN is not set # CONFIG_NET_PKTGEN is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
# CONFIG_BT is not set # CONFIG_BT is not set
@ -459,6 +455,7 @@ CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
CONFIG_SCSI_SATA=y CONFIG_SCSI_SATA=y
# CONFIG_SCSI_SATA_AHCI is not set
# CONFIG_SCSI_SATA_SVW is not set # CONFIG_SCSI_SATA_SVW is not set
CONFIG_SCSI_ATA_PIIX=y CONFIG_SCSI_ATA_PIIX=y
# CONFIG_SCSI_SATA_NV is not set # CONFIG_SCSI_SATA_NV is not set
@ -488,6 +485,7 @@ CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA2300 is not set # CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set # CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set # CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA24XX is not set
# CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
@ -508,9 +506,11 @@ CONFIG_BLK_DEV_DM=y
# #
# Fusion MPT device support # Fusion MPT device support
# #
# CONFIG_FUSION is not set CONFIG_FUSION=y
# CONFIG_FUSION_SPI is not set CONFIG_FUSION_SPI=y
# CONFIG_FUSION_FC is not set # CONFIG_FUSION_FC is not set
CONFIG_FUSION_MAX_SGE=128
# CONFIG_FUSION_CTL is not set
# #
# IEEE 1394 (FireWire) support # IEEE 1394 (FireWire) support
@ -581,6 +581,7 @@ CONFIG_8139TOO=y
# CONFIG_ACENIC is not set # CONFIG_ACENIC is not set
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
@ -620,6 +621,10 @@ CONFIG_S2IO=m
# CONFIG_NET_FC is not set # CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set # CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# #
# ISDN subsystem # ISDN subsystem

View file

@ -47,13 +47,22 @@ fill_mp_bus_to_cpumask(void)
* if there are no busses hanging off of the current * if there are no busses hanging off of the current
* ldt link then both the secondary and subordinate * ldt link then both the secondary and subordinate
* bus number fields are set to 0. * bus number fields are set to 0.
*
* RED-PEN
* This is slightly broken because it assumes
* HT node IDs == Linux node ids, which is not always
* true. However it is probably mostly true.
*/ */
if (!(SECONDARY_LDT_BUS_NUMBER(ldtbus) == 0 if (!(SECONDARY_LDT_BUS_NUMBER(ldtbus) == 0
&& SUBORDINATE_LDT_BUS_NUMBER(ldtbus) == 0)) { && SUBORDINATE_LDT_BUS_NUMBER(ldtbus) == 0)) {
for (j = SECONDARY_LDT_BUS_NUMBER(ldtbus); for (j = SECONDARY_LDT_BUS_NUMBER(ldtbus);
j <= SUBORDINATE_LDT_BUS_NUMBER(ldtbus); j <= SUBORDINATE_LDT_BUS_NUMBER(ldtbus);
j++) j++) {
pci_bus_to_node[j] = NODE_ID(nid); int node = NODE_ID(nid);
if (!node_online(node))
node = 0;
pci_bus_to_node[j] = node;
}
} }
} }
} }

View file

@ -47,7 +47,7 @@ static int cfq_slice_idle = HZ / 100;
/* /*
* disable queueing at the driver/hardware level * disable queueing at the driver/hardware level
*/ */
static int cfq_max_depth = 1; static int cfq_max_depth = 2;
/* /*
* for the hash of cfqq inside the cfqd * for the hash of cfqq inside the cfqd
@ -385,9 +385,15 @@ cfq_choose_req(struct cfq_data *cfqd, struct cfq_rq *crq1, struct cfq_rq *crq2)
return crq2; return crq2;
if (crq2 == NULL) if (crq2 == NULL)
return crq1; return crq1;
if (cfq_crq_requeued(crq1))
if (cfq_crq_requeued(crq1) && !cfq_crq_requeued(crq2))
return crq1; return crq1;
if (cfq_crq_requeued(crq2)) else if (cfq_crq_requeued(crq2) && !cfq_crq_requeued(crq1))
return crq2;
if (cfq_crq_is_sync(crq1) && !cfq_crq_is_sync(crq2))
return crq1;
else if (cfq_crq_is_sync(crq2) && !cfq_crq_is_sync(crq1))
return crq2; return crq2;
s1 = crq1->request->sector; s1 = crq1->request->sector;
@ -1769,18 +1775,23 @@ static void
cfq_crq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, cfq_crq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
struct cfq_rq *crq) struct cfq_rq *crq)
{ {
const int sync = cfq_crq_is_sync(crq); struct cfq_io_context *cic;
cfqq->next_crq = cfq_choose_req(cfqd, cfqq->next_crq, crq); cfqq->next_crq = cfq_choose_req(cfqd, cfqq->next_crq, crq);
if (sync) { /*
struct cfq_io_context *cic = crq->io_context; * we never wait for an async request and we don't allow preemption
* of an async request. so just return early
*/
if (!cfq_crq_is_sync(crq))
return;
cic = crq->io_context;
cfq_update_io_thinktime(cfqd, cic); cfq_update_io_thinktime(cfqd, cic);
cfq_update_idle_window(cfqd, cfqq, cic); cfq_update_idle_window(cfqd, cfqq, cic);
cic->last_queue = jiffies; cic->last_queue = jiffies;
}
if (cfqq == cfqd->active_queue) { if (cfqq == cfqd->active_queue) {
/* /*

View file

@ -80,7 +80,7 @@ config SERIAL_NONSTANDARD
config COMPUTONE config COMPUTONE
tristate "Computone IntelliPort Plus serial support" tristate "Computone IntelliPort Plus serial support"
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP && (BROKEN || !SPARC32)
---help--- ---help---
This driver supports the entire family of Intelliport II/Plus This driver supports the entire family of Intelliport II/Plus
controllers with the exception of the MicroChannel controllers and controllers with the exception of the MicroChannel controllers and
@ -138,7 +138,7 @@ config CYZ_INTR
config DIGIEPCA config DIGIEPCA
tristate "Digiboard Intelligent Async Support" tristate "Digiboard Intelligent Async Support"
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP && (!64BIT || BROKEN)
---help--- ---help---
This is a driver for Digi International's Xx, Xeve, and Xem series This is a driver for Digi International's Xx, Xeve, and Xem series
of cards which provide multiple serial ports. You would need of cards which provide multiple serial ports. You would need
@ -208,7 +208,7 @@ config SYNCLINK
config SYNCLINKMP config SYNCLINKMP
tristate "SyncLink Multiport support" tristate "SyncLink Multiport support"
depends on SERIAL_NONSTANDARD depends on SERIAL_NONSTANDARD && (BROKEN || !SPARC32)
help help
Enable support for the SyncLink Multiport (2 or 4 ports) Enable support for the SyncLink Multiport (2 or 4 ports)
serial adapter, running asynchronous and HDLC communications up serial adapter, running asynchronous and HDLC communications up
@ -735,7 +735,7 @@ config SGI_IP27_RTC
config GEN_RTC config GEN_RTC
tristate "Generic /dev/rtc emulation" tristate "Generic /dev/rtc emulation"
depends on RTC!=y && !IA64 && !ARM && !PPC64 depends on RTC!=y && !IA64 && !ARM && !PPC64 && !M32R && !SPARC32
---help--- ---help---
If you say Y here and create a character special file /dev/rtc with If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you major number 10 and minor number 135 using mknod ("man mknod"), you

View file

@ -1,6 +1,7 @@
menu "InfiniBand support" menu "InfiniBand support"
config INFINIBAND config INFINIBAND
depends on PCI || BROKEN
tristate "InfiniBand support" tristate "InfiniBand support"
---help--- ---help---
Core support for InfiniBand (IB). Make sure to also select Core support for InfiniBand (IB). Make sure to also select

View file

@ -134,6 +134,7 @@ config HISAX_AVM_A1
config HISAX_FRITZPCI config HISAX_FRITZPCI
bool "AVM PnP/PCI (Fritz!PnP/PCI)" bool "AVM PnP/PCI (Fritz!PnP/PCI)"
depends on BROKEN || !PPC64
help help
This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI". This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI".
See <file:Documentation/isdn/README.HiSax> on how to configure it. See <file:Documentation/isdn/README.HiSax> on how to configure it.

View file

@ -103,7 +103,7 @@ config PMAC_MEDIABAY
# on non-powerbook machines (but only on PMU based ones AFAIK) # on non-powerbook machines (but only on PMU based ones AFAIK)
config PMAC_BACKLIGHT config PMAC_BACKLIGHT
bool "Backlight control for LCD screens" bool "Backlight control for LCD screens"
depends on ADB_PMU depends on ADB_PMU && (BROKEN || !PPC64)
help help
Say Y here to build in code to manage the LCD backlight on a Say Y here to build in code to manage the LCD backlight on a
Macintosh PowerBook. With this code, the backlight will be turned Macintosh PowerBook. With this code, the backlight will be turned

View file

@ -356,7 +356,7 @@ config VIDEO_M32R_AR
config VIDEO_M32R_AR_M64278 config VIDEO_M32R_AR_M64278
tristate "Use Colour AR module M64278(VGA)" tristate "Use Colour AR module M64278(VGA)"
depends on VIDEO_M32R_AR depends on VIDEO_M32R_AR && PLAT_M32700UT
---help--- ---help---
Say Y here to use the Renesas M64278E-800 camera module, Say Y here to use the Renesas M64278E-800 camera module,
which supports VGA(640x480 pixcels) size of images. which supports VGA(640x480 pixcels) size of images.

View file

@ -1145,7 +1145,7 @@ config IBMVETH
be called ibmveth. be called ibmveth.
config IBM_EMAC config IBM_EMAC
tristate "IBM PPC4xx EMAC driver support" bool "IBM PPC4xx EMAC driver support"
depends on 4xx depends on 4xx
select CRC32 select CRC32
---help--- ---help---
@ -1154,7 +1154,7 @@ config IBM_EMAC
config IBM_EMAC_ERRMSG config IBM_EMAC_ERRMSG
bool "Verbose error messages" bool "Verbose error messages"
depends on IBM_EMAC depends on IBM_EMAC && BROKEN
config IBM_EMAC_RXB config IBM_EMAC_RXB
int "Number of receive buffers" int "Number of receive buffers"

View file

@ -1712,11 +1712,10 @@ struct mal_commac_ops emac_commac_ops = {
}; };
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
static int emac_netpoll(struct net_device *ndev) static void emac_netpoll(struct net_device *ndev)
{ {
emac_rxeob_dev((void *)ndev, 0); emac_rxeob_dev((void *)ndev, 0);
emac_txeob_dev((void *)ndev, 0); emac_txeob_dev((void *)ndev, 0);
return 0;
} }
#endif #endif

View file

@ -84,7 +84,7 @@ config 3C359
config TMS380TR config TMS380TR
tristate "Generic TMS380 Token Ring ISA/PCI adapter support" tristate "Generic TMS380 Token Ring ISA/PCI adapter support"
depends on TR && (PCI || ISA) depends on TR && (PCI || ISA && ISA_DMA_API)
select FW_LOADER select FW_LOADER
---help--- ---help---
This driver provides generic support for token ring adapters This driver provides generic support for token ring adapters

View file

@ -270,7 +270,7 @@ config PCMCIA_HERMES
config AIRO_CS config AIRO_CS
tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards" tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
depends on NET_RADIO && PCMCIA depends on NET_RADIO && PCMCIA && (BROKEN || !M32R)
---help--- ---help---
This is the standard Linux driver to support Cisco/Aironet PCMCIA This is the standard Linux driver to support Cisco/Aironet PCMCIA
802.11 wireless cards. This driver is the same as the Aironet 802.11 wireless cards. This driver is the same as the Aironet

View file

@ -34,7 +34,7 @@ config PARPORT
config PARPORT_PC config PARPORT_PC
tristate "PC-style hardware" tristate "PC-style hardware"
depends on PARPORT && (!SPARC64 || PCI) && !SPARC32 depends on PARPORT && (!SPARC64 || PCI) && !SPARC32 && !M32R
---help--- ---help---
You should say Y here if you have a PC-style parallel port. All You should say Y here if you have a PC-style parallel port. All
IBM PC compatible computers and some Alphas have PC-style IBM PC compatible computers and some Alphas have PC-style

View file

@ -41,6 +41,7 @@ module_param(io_speed, int, 0444);
#ifdef CONFIG_PCMCIA_PROBE #ifdef CONFIG_PCMCIA_PROBE
#include <asm/irq.h>
/* mask of IRQs already reserved by other cards, we should avoid using them */ /* mask of IRQs already reserved by other cards, we should avoid using them */
static u8 pcmcia_used_irq[NR_IRQS]; static u8 pcmcia_used_irq[NR_IRQS];
#endif #endif

View file

@ -230,7 +230,7 @@ qdio_siga_input(struct qdio_q *q)
} }
/* locked by the locks in qdio_activate and qdio_cleanup */ /* locked by the locks in qdio_activate and qdio_cleanup */
static __u32 * volatile static __u32 volatile *
qdio_get_indicator(void) qdio_get_indicator(void)
{ {
int i; int i;

View file

@ -35,15 +35,6 @@
#define z90crypt_RELEASE 3 // 2 = PCIXCC, 3 = rewrite for coding standards #define z90crypt_RELEASE 3 // 2 = PCIXCC, 3 = rewrite for coding standards
#define z90crypt_VARIANT 2 // 2 = added PCIXCC MCL3 and CEX2C support #define z90crypt_VARIANT 2 // 2 = added PCIXCC MCL3 and CEX2C support
/**
* If we are not using the sparse checker, __user has no use.
*/
#ifdef __CHECKER__
# define __user __attribute__((noderef, address_space(1)))
#else
# define __user
#endif
/** /**
* struct ica_rsa_modexpo * struct ica_rsa_modexpo
* *

View file

@ -1696,7 +1696,7 @@ config TT_DMA_EMUL
config MAC_SCSI config MAC_SCSI
bool "Macintosh NCR5380 SCSI" bool "Macintosh NCR5380 SCSI"
depends on MAC && SCSI depends on MAC && SCSI=y
help help
This is the NCR 5380 SCSI controller included on most of the 68030 This is the NCR 5380 SCSI controller included on most of the 68030
based Macintoshes. If you have one of these say Y and read the based Macintoshes. If you have one of these say Y and read the
@ -1717,7 +1717,7 @@ config SCSI_MAC_ESP
config MVME147_SCSI config MVME147_SCSI
bool "WD33C93 SCSI driver for MVME147" bool "WD33C93 SCSI driver for MVME147"
depends on MVME147 && SCSI depends on MVME147 && SCSI=y
help help
Support for the on-board SCSI controller on the Motorola MVME147 Support for the on-board SCSI controller on the Motorola MVME147
single-board computer. single-board computer.
@ -1758,7 +1758,7 @@ config SUN3_SCSI
config SUN3X_ESP config SUN3X_ESP
bool "Sun3x ESP SCSI" bool "Sun3x ESP SCSI"
depends on SUN3X && SCSI depends on SUN3X && SCSI=y
help help
The ESP was an on-board SCSI controller used on Sun 3/80 The ESP was an on-board SCSI controller used on Sun 3/80
machines. Say Y here to compile in support for it. machines. Say Y here to compile in support for it.

View file

@ -1105,6 +1105,7 @@ MODULE_AUTHOR("Jeff Garzik");
MODULE_DESCRIPTION("AHCI SATA low-level driver"); MODULE_DESCRIPTION("AHCI SATA low-level driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, ahci_pci_tbl); MODULE_DEVICE_TABLE(pci, ahci_pci_tbl);
MODULE_VERSION(DRV_VERSION);
module_init(ahci_init); module_init(ahci_init);
module_exit(ahci_exit); module_exit(ahci_exit);

View file

@ -3,7 +3,7 @@
# #
config SCSI_ACORNSCSI_3 config SCSI_ACORNSCSI_3
tristate "Acorn SCSI card (aka30) support" tristate "Acorn SCSI card (aka30) support"
depends on ARCH_ACORN && SCSI depends on ARCH_ACORN && SCSI && BROKEN
help help
This enables support for the Acorn SCSI card (aka30). If you have an This enables support for the Acorn SCSI card (aka30). If you have an
Acorn system with one of these, say Y. If unsure, say N. Acorn system with one of these, say Y. If unsure, say N.

View file

@ -32,7 +32,7 @@
#include <linux/libata.h> #include <linux/libata.h>
#define DRV_NAME "ata_piix" #define DRV_NAME "ata_piix"
#define DRV_VERSION "1.03" #define DRV_VERSION "1.04"
enum { enum {
PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ PIIX_IOCFG = 0x54, /* IDE I/O configuration register */

View file

@ -2268,19 +2268,6 @@ void ata_qc_prep(struct ata_queued_cmd *qc)
* spin_lock_irqsave(host_set lock) * spin_lock_irqsave(host_set lock)
*/ */
/**
* ata_sg_init_one - Prepare a one-entry scatter-gather list.
* @qc: Queued command
* @buf: transfer buffer
* @buflen: length of buf
*
* Builds a single-entry scatter-gather list to initiate a
* transfer utilizing the specified buffer.
*
* LOCKING:
*/
void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, unsigned int buflen) void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, unsigned int buflen)
{ {
struct scatterlist *sg; struct scatterlist *sg;
@ -2312,18 +2299,6 @@ void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, unsigned int buflen)
* spin_lock_irqsave(host_set lock) * spin_lock_irqsave(host_set lock)
*/ */
/**
* ata_sg_init - Assign a scatter gather list to a queued command
* @qc: Queued command
* @sg: Scatter-gather list
* @n_elem: length of sg list
*
* Attaches a scatter-gather list to a queued command.
*
* LOCKING:
*/
void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg,
unsigned int n_elem) unsigned int n_elem)
{ {

View file

@ -26,7 +26,7 @@
#define __LIBATA_H__ #define __LIBATA_H__
#define DRV_NAME "libata" #define DRV_NAME "libata"
#define DRV_VERSION "1.11" /* must be exactly four chars */ #define DRV_VERSION "1.12" /* must be exactly four chars */
struct ata_scsi_args { struct ata_scsi_args {
u16 *id; u16 *id;

View file

@ -40,7 +40,7 @@
#include "sata_promise.h" #include "sata_promise.h"
#define DRV_NAME "sata_promise" #define DRV_NAME "sata_promise"
#define DRV_VERSION "1.01" #define DRV_VERSION "1.02"
enum { enum {

View file

@ -211,7 +211,7 @@ comment "Non-8250 serial port support"
config SERIAL_AMBA_PL010 config SERIAL_AMBA_PL010
tristate "ARM AMBA PL010 serial port support" tristate "ARM AMBA PL010 serial port support"
depends on ARM_AMBA depends on ARM_AMBA && (BROKEN || !ARCH_VERSATILE)
select SERIAL_CORE select SERIAL_CORE
help help
This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have
@ -819,7 +819,7 @@ config SERIAL_M32R_SIO_CONSOLE
config SERIAL_M32R_PLDSIO config SERIAL_M32R_PLDSIO
bool "M32R SIO I/F on a PLD" bool "M32R SIO I/F on a PLD"
depends on SERIAL_M32R_SIO=y depends on SERIAL_M32R_SIO=y && (PLAT_OPSPUT || PALT_USRV || PLAT_M32700UT)
default n default n
help help
Say Y here if you want to use the M32R serial controller Say Y here if you want to use the M32R serial controller

View file

@ -1123,7 +1123,7 @@ static int __init m32r_sio_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow); return uart_set_options(port, co, baud, parity, bits, flow);
} }
extern struct uart_driver m32r_sio_reg; static struct uart_driver m32r_sio_reg;
static struct console m32r_sio_console = { static struct console m32r_sio_console = {
.name = "ttyS", .name = "ttyS",
.write = m32r_sio_console_write, .write = m32r_sio_console_write,

View file

@ -1922,7 +1922,7 @@ static int genelink_rx_fixup (struct usbnet *dev, struct sk_buff *skb)
// copy the packet data to the new skb // copy the packet data to the new skb
memcpy(skb_put(gl_skb, size), packet->packet_data, size); memcpy(skb_put(gl_skb, size), packet->packet_data, size);
skb_return (dev, skb); skb_return (dev, gl_skb);
} }
// advance to the next packet // advance to the next packet

View file

@ -6,7 +6,7 @@ menu "Console display driver support"
config VGA_CONSOLE config VGA_CONSOLE
bool "VGA text console" if EMBEDDED || !X86 bool "VGA text console" if EMBEDDED || !X86
depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC32 && !SPARC64 && !M68K && !PARISC depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC32 && !SPARC64 && !M68K && !PARISC && !ARCH_VERSATILE
default y default y
help help
Saying Y here will allow you to use Linux in text mode through a Saying Y here will allow you to use Linux in text mode through a

View file

@ -443,22 +443,19 @@ __xchg_u64(volatile long *m, unsigned long val)
if something tries to do an invalid xchg(). */ if something tries to do an invalid xchg(). */
extern void __xchg_called_with_bad_pointer(void); extern void __xchg_called_with_bad_pointer(void);
static inline unsigned long #define __xchg(ptr, x, size) \
__xchg(volatile void *ptr, unsigned long x, int size) ({ \
{ unsigned long __xchg__res; \
switch (size) { volatile void *__xchg__ptr = (ptr); \
case 1: switch (size) { \
return __xchg_u8(ptr, x); case 1: __xchg__res = __xchg_u8(__xchg__ptr, x); break; \
case 2: case 2: __xchg__res = __xchg_u16(__xchg__ptr, x); break; \
return __xchg_u16(ptr, x); case 4: __xchg__res = __xchg_u32(__xchg__ptr, x); break; \
case 4: case 8: __xchg__res = __xchg_u64(__xchg__ptr, x); break; \
return __xchg_u32(ptr, x); default: __xchg_called_with_bad_pointer(); __xchg__res = x; \
case 8: } \
return __xchg_u64(ptr, x); __xchg__res; \
} })
__xchg_called_with_bad_pointer();
return x;
}
#define xchg(ptr,x) \ #define xchg(ptr,x) \
({ \ ({ \

View file

@ -7,7 +7,9 @@
/* /*
* We use IXP425 General purpose timer for our timer needs, it runs at * We use IXP425 General purpose timer for our timer needs, it runs at
* 66.66... MHz * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
* timer register ignores the bottom 2 bits of the LATCH value.
*/ */
#define CLOCK_TICK_RATE (66666666) #define FREQ 66666666
#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)

View file

@ -5,7 +5,7 @@
#ifdef CONFIG_BUG #ifdef CONFIG_BUG
#ifdef CONFIG_DEBUG_BUGVERBOSE #ifdef CONFIG_DEBUG_BUGVERBOSE
extern volatile void __bug(const char *file, int line, void *data); extern void __bug(const char *file, int line, void *data) __attribute__((noreturn));
/* give file/line information */ /* give file/line information */
#define BUG() __bug(__FILE__, __LINE__, NULL) #define BUG() __bug(__FILE__, __LINE__, NULL)

View file

@ -31,7 +31,7 @@ extern struct processor {
/* /*
* Special stuff for a reset * Special stuff for a reset
*/ */
volatile void (*reset)(unsigned long addr); void (*reset)(unsigned long addr) __attribute__((noreturn));
/* /*
* Idle the processor * Idle the processor
*/ */

View file

@ -41,4 +41,4 @@ extern int cpu_do_idle(void);
extern void cpu_dcache_clean_area(void *, int); extern void cpu_dcache_clean_area(void *, int);
extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
extern void cpu_set_pte(pte_t *ptep, pte_t pte); extern void cpu_set_pte(pte_t *ptep, pte_t pte);
extern volatile void cpu_reset(unsigned long addr); extern void cpu_reset(unsigned long addr) __attribute__((noreturn));

View file

@ -61,9 +61,7 @@ extern physid_mask_t phys_cpu_present_map;
* Some lowlevel functions might want to know about * Some lowlevel functions might want to know about
* the real CPU ID <-> CPU # mapping. * the real CPU ID <-> CPU # mapping.
*/ */
extern volatile int physid_2_cpu[NR_CPUS];
extern volatile int cpu_2_physid[NR_CPUS]; extern volatile int cpu_2_physid[NR_CPUS];
#define physid_to_cpu(physid) physid_2_cpu[physid]
#define cpu_to_physid(cpu_id) cpu_2_physid[cpu_id] #define cpu_to_physid(cpu_id) cpu_2_physid[cpu_id]
#define raw_smp_processor_id() (current_thread_info()->cpu) #define raw_smp_processor_id() (current_thread_info()->cpu)

View file

@ -138,13 +138,13 @@ extern unsigned long m68k_memoffset;
#define __pa(vaddr) ((unsigned long)(vaddr)+m68k_memoffset) #define __pa(vaddr) ((unsigned long)(vaddr)+m68k_memoffset)
#define __va(paddr) ((void *)((unsigned long)(paddr)-m68k_memoffset)) #define __va(paddr) ((void *)((unsigned long)(paddr)-m68k_memoffset))
#else #else
#define __pa(vaddr) virt_to_phys((void *)vaddr) #define __pa(vaddr) virt_to_phys((void *)(vaddr))
#define __va(paddr) phys_to_virt((unsigned long)paddr) #define __va(paddr) phys_to_virt((unsigned long)(paddr))
#endif #endif
#else /* !CONFIG_SUN3 */ #else /* !CONFIG_SUN3 */
/* This #define is a horrible hack to suppress lots of warnings. --m */ /* This #define is a horrible hack to suppress lots of warnings. --m */
#define __pa(x) ___pa((unsigned long)x) #define __pa(x) ___pa((unsigned long)(x))
static inline unsigned long ___pa(unsigned long x) static inline unsigned long ___pa(unsigned long x)
{ {
if(x == 0) if(x == 0)

View file

@ -58,7 +58,7 @@ static __inline__ void set_dec(unsigned int val)
/* Accessor functions for the timebase (RTC on 601) registers. */ /* Accessor functions for the timebase (RTC on 601) registers. */
/* If one day CONFIG_POWER is added just define __USE_RTC as 1 */ /* If one day CONFIG_POWER is added just define __USE_RTC as 1 */
#ifdef CONFIG_6xx #ifdef CONFIG_6xx
extern __inline__ int const __USE_RTC(void) { extern __inline__ int __attribute_pure__ __USE_RTC(void) {
return (mfspr(SPRN_PVR)>>16) == 1; return (mfspr(SPRN_PVR)>>16) == 1;
} }
#else #else

View file

@ -149,11 +149,11 @@ struct exception_table_entry
}) })
#endif #endif
#ifndef __CHECKER__
#define __put_user(x, ptr) \ #define __put_user(x, ptr) \
({ \ ({ \
__typeof__(*(ptr)) __x = (x); \ __typeof__(*(ptr)) __x = (x); \
int __pu_err; \ int __pu_err; \
__chk_user_ptr(ptr); \
switch (sizeof (*(ptr))) { \ switch (sizeof (*(ptr))) { \
case 1: \ case 1: \
case 2: \ case 2: \
@ -167,14 +167,6 @@ struct exception_table_entry
} \ } \
__pu_err; \ __pu_err; \
}) })
#else
#define __put_user(x, ptr) \
({ \
void __user *p; \
p = (ptr); \
0; \
})
#endif
#define put_user(x, ptr) \ #define put_user(x, ptr) \
({ \ ({ \
@ -213,11 +205,11 @@ extern int __put_user_bad(void) __attribute__((noreturn));
}) })
#endif #endif
#ifndef __CHECKER__
#define __get_user(x, ptr) \ #define __get_user(x, ptr) \
({ \ ({ \
__typeof__(*(ptr)) __x; \ __typeof__(*(ptr)) __x; \
int __gu_err; \ int __gu_err; \
__chk_user_ptr(ptr); \
switch (sizeof(*(ptr))) { \ switch (sizeof(*(ptr))) { \
case 1: \ case 1: \
case 2: \ case 2: \
@ -232,15 +224,6 @@ extern int __put_user_bad(void) __attribute__((noreturn));
(x) = __x; \ (x) = __x; \
__gu_err; \ __gu_err; \
}) })
#else
#define __get_user(x, ptr) \
({ \
void __user *p; \
p = (ptr); \
0; \
})
#endif
#define get_user(x, ptr) \ #define get_user(x, ptr) \
({ \ ({ \

View file

@ -360,11 +360,13 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd);
/* isadma.c */ /* isadma.c */
#ifdef CONFIG_ISA_DMA_API
#define DMA_MODE_NO_ENABLE 0x0100 #define DMA_MODE_NO_ENABLE 0x0100
void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode); void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode);
void snd_dma_disable(unsigned long dma); void snd_dma_disable(unsigned long dma);
unsigned int snd_dma_pointer(unsigned long dma, unsigned int size); unsigned int snd_dma_pointer(unsigned long dma, unsigned int size);
#endif
/* misc.c */ /* misc.c */

View file

@ -635,6 +635,25 @@ static void update_cpu_domains(struct cpuset *cur)
if (par == NULL || cpus_empty(cur->cpus_allowed)) if (par == NULL || cpus_empty(cur->cpus_allowed))
return; return;
/*
* Hack to avoid 2.6.13 partial node dynamic sched domain bug.
* Require the 'cpu_exclusive' cpuset to include all (or none)
* of the CPUs on each node, or return w/o changing sched domains.
* Remove this hack when dynamic sched domains fixed.
*/
{
int i, j;
for_each_cpu_mask(i, cur->cpus_allowed) {
cpumask_t mask = node_to_cpumask(cpu_to_node(i));
for_each_cpu_mask(j, mask) {
if (!cpu_isset(j, cur->cpus_allowed))
return;
}
}
}
/* /*
* Get all cpus from parent's cpus_allowed not part of exclusive * Get all cpus from parent's cpus_allowed not part of exclusive
* children * children

View file

@ -269,6 +269,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
int qualifier; /* 'h', 'l', or 'L' for integer fields */ int qualifier; /* 'h', 'l', or 'L' for integer fields */
/* 'z' support added 23/7/1999 S.H. */ /* 'z' support added 23/7/1999 S.H. */
/* 'z' changed to 'Z' --davidm 1/25/99 */ /* 'z' changed to 'Z' --davidm 1/25/99 */
/* 't' added for ptrdiff_t */
/* Reject out-of-range values early */ /* Reject out-of-range values early */
if (unlikely((int) size < 0)) { if (unlikely((int) size < 0)) {
@ -339,7 +340,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
/* get the conversion qualifier */ /* get the conversion qualifier */
qualifier = -1; qualifier = -1;
if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' ||
*fmt =='Z' || *fmt == 'z') { *fmt =='Z' || *fmt == 'z' || *fmt == 't') {
qualifier = *fmt; qualifier = *fmt;
++fmt; ++fmt;
if (qualifier == 'l' && *fmt == 'l') { if (qualifier == 'l' && *fmt == 'l') {
@ -467,6 +468,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
num = (signed long) num; num = (signed long) num;
} else if (qualifier == 'Z' || qualifier == 'z') { } else if (qualifier == 'Z' || qualifier == 'z') {
num = va_arg(args, size_t); num = va_arg(args, size_t);
} else if (qualifier == 't') {
num = va_arg(args, ptrdiff_t);
} else if (qualifier == 'h') { } else if (qualifier == 'h') {
num = (unsigned short) va_arg(args, int); num = (unsigned short) va_arg(args, int);
if (flags & SIGN) if (flags & SIGN)

View file

@ -995,7 +995,7 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
* 2. It isn't "owned" by any existing route. * 2. It isn't "owned" by any existing route.
*/ */
if (frametype != ROSE_CALL_REQUEST) { /* XXX */ if (frametype != ROSE_CALL_REQUEST) { /* XXX */
ret = 0; res = 0;
goto out; goto out;
} }

View file

@ -77,7 +77,7 @@ source "sound/parisc/Kconfig"
endmenu endmenu
menu "Open Sound System" menu "Open Sound System"
depends on SOUND!=n && (BROKEN || (!SPARC32 && !SPARC64)) depends on SOUND!=n
config SOUND_PRIME config SOUND_PRIME
tristate "Open Sound System (DEPRECATED)" tristate "Open Sound System (DEPRECATED)"

View file

@ -5,7 +5,7 @@
snd-objs := sound.o init.o memory.o info.o control.o misc.o \ snd-objs := sound.o init.o memory.o info.o control.o misc.o \
device.o wrappers.o device.o wrappers.o
ifeq ($(CONFIG_ISA),y) ifeq ($(CONFIG_ISA_DMA_API),y)
snd-objs += isadma.o snd-objs += isadma.o
endif endif
ifeq ($(CONFIG_SND_OSSEMUL),y) ifeq ($(CONFIG_SND_OSSEMUL),y)

View file

@ -432,7 +432,7 @@ EXPORT_SYMBOL(snd_device_new);
EXPORT_SYMBOL(snd_device_register); EXPORT_SYMBOL(snd_device_register);
EXPORT_SYMBOL(snd_device_free); EXPORT_SYMBOL(snd_device_free);
/* isadma.c */ /* isadma.c */
#ifdef CONFIG_ISA #ifdef CONFIG_ISA_DMA_API
EXPORT_SYMBOL(snd_dma_program); EXPORT_SYMBOL(snd_dma_program);
EXPORT_SYMBOL(snd_dma_disable); EXPORT_SYMBOL(snd_dma_disable);
EXPORT_SYMBOL(snd_dma_pointer); EXPORT_SYMBOL(snd_dma_pointer);

View file

@ -1,7 +1,7 @@
# ALSA ISA drivers # ALSA ISA drivers
menu "ISA devices" menu "ISA devices"
depends on SND!=n && ISA depends on SND!=n && ISA && ISA_DMA_API
config SND_AD1848_LIB config SND_AD1848_LIB
tristate tristate

View file

@ -6,7 +6,7 @@
# Prompt user for primary drivers. # Prompt user for primary drivers.
config SOUND_BT878 config SOUND_BT878
tristate "BT878 audio dma" tristate "BT878 audio dma"
depends on SOUND_PRIME depends on SOUND_PRIME && PCI
---help--- ---help---
Audio DMA support for bt878 based grabber boards. As you might have Audio DMA support for bt878 based grabber boards. As you might have
already noticed, bt878 is listed with two functions in /proc/pci. already noticed, bt878 is listed with two functions in /proc/pci.
@ -80,14 +80,14 @@ config SOUND_EMU10K1
config MIDI_EMU10K1 config MIDI_EMU10K1
bool "Creative SBLive! MIDI (EXPERIMENTAL)" bool "Creative SBLive! MIDI (EXPERIMENTAL)"
depends on SOUND_EMU10K1 && EXPERIMENTAL depends on SOUND_EMU10K1 && EXPERIMENTAL && ISA_DMA_API
help help
Say Y if you want to be able to use the OSS /dev/sequencer Say Y if you want to be able to use the OSS /dev/sequencer
interface. This code is still experimental. interface. This code is still experimental.
config SOUND_FUSION config SOUND_FUSION
tristate "Crystal SoundFusion (CS4280/461x)" tristate "Crystal SoundFusion (CS4280/461x)"
depends on SOUND_PRIME depends on SOUND_PRIME && PCI
help help
This module drives the Crystal SoundFusion devices (CS4280/46xx This module drives the Crystal SoundFusion devices (CS4280/46xx
series) when wired as native sound drivers with AC97 codecs. If series) when wired as native sound drivers with AC97 codecs. If
@ -95,7 +95,7 @@ config SOUND_FUSION
config SOUND_CS4281 config SOUND_CS4281
tristate "Crystal Sound CS4281" tristate "Crystal Sound CS4281"
depends on SOUND_PRIME depends on SOUND_PRIME && PCI
help help
Picture and feature list at Picture and feature list at
<http://www.pcbroker.com/crystal4281.html>. <http://www.pcbroker.com/crystal4281.html>.
@ -179,7 +179,7 @@ config SOUND_HARMONY
config SOUND_SONICVIBES config SOUND_SONICVIBES
tristate "S3 SonicVibes" tristate "S3 SonicVibes"
depends on SOUND_PRIME depends on SOUND_PRIME && PCI
help help
Say Y or M if you have a PCI sound card utilizing the S3 Say Y or M if you have a PCI sound card utilizing the S3
SonicVibes chipset. To find out if your sound card uses a SonicVibes chipset. To find out if your sound card uses a
@ -226,7 +226,7 @@ config SOUND_AU1550_AC97
config SOUND_TRIDENT config SOUND_TRIDENT
tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core" tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
depends on SOUND_PRIME depends on SOUND_PRIME && PCI
---help--- ---help---
Say Y or M if you have a PCI sound card utilizing the Trident Say Y or M if you have a PCI sound card utilizing the Trident
4DWave-DX/NX chipset or your mother board chipset has SiS 7018 4DWave-DX/NX chipset or your mother board chipset has SiS 7018
@ -503,7 +503,7 @@ config SOUND_VIA82CXXX
config MIDI_VIA82CXXX config MIDI_VIA82CXXX
bool "VIA 82C686 MIDI" bool "VIA 82C686 MIDI"
depends on SOUND_VIA82CXXX depends on SOUND_VIA82CXXX && ISA_DMA_API
help help
Answer Y to use the MIDI interface of the Via686. You may need to Answer Y to use the MIDI interface of the Via686. You may need to
enable this in the BIOS before it will work. This is for connection enable this in the BIOS before it will work. This is for connection
@ -512,7 +512,7 @@ config MIDI_VIA82CXXX
config SOUND_OSS config SOUND_OSS
tristate "OSS sound modules" tristate "OSS sound modules"
depends on SOUND_PRIME depends on SOUND_PRIME && ISA_DMA_API
help help
OSS is the Open Sound System suite of sound card drivers. They make OSS is the Open Sound System suite of sound card drivers. They make
sound programming easier since they provide a common API. Say Y or sound programming easier since they provide a common API. Say Y or

View file

@ -80,7 +80,7 @@ obj-$(CONFIG_SOUND_ALI5455) += ali5455.o ac97_codec.o
obj-$(CONFIG_SOUND_IT8172) += ite8172.o ac97_codec.o obj-$(CONFIG_SOUND_IT8172) += ite8172.o ac97_codec.o
obj-$(CONFIG_SOUND_FORTE) += forte.o ac97_codec.o obj-$(CONFIG_SOUND_FORTE) += forte.o ac97_codec.o
obj-$(CONFIG_SOUND_AD1980) += ac97_plugin_ad1980.o obj-$(CONFIG_SOUND_AD1980) += ac97_plugin_ad1980.o ac97_codec.o
obj-$(CONFIG_SOUND_WM97XX) += ac97_plugin_wm97xx.o obj-$(CONFIG_SOUND_WM97XX) += ac97_plugin_wm97xx.o
ifeq ($(CONFIG_MIDI_EMU10K1),y) ifeq ($(CONFIG_MIDI_EMU10K1),y)

View file

@ -3430,9 +3430,9 @@ out_iospace:
release_mem_region(card->iobase_mmio_phys, 256); release_mem_region(card->iobase_mmio_phys, 256);
} }
out_pio: out_pio:
release_region(card->iobase, 64);
out_region2:
release_region(card->ac97base, 256); release_region(card->ac97base, 256);
out_region2:
release_region(card->iobase, 64);
out_region1: out_region1:
pci_free_consistent(pci_dev, sizeof(struct i810_channel)*NR_HW_CH, pci_free_consistent(pci_dev, sizeof(struct i810_channel)*NR_HW_CH,
card->channel, card->chandma); card->channel, card->chandma);

View file

@ -10,10 +10,6 @@
* VIDC sound function prototypes * VIDC sound function prototypes
*/ */
/* vidc.c */
extern int vidc_busy;
/* vidc_fill.S */ /* vidc_fill.S */
/* /*

View file

@ -314,7 +314,7 @@ config SND_YMFPCI
config SND_ALS4000 config SND_ALS4000
tristate "Avance Logic ALS4000" tristate "Avance Logic ALS4000"
depends on SND depends on SND && ISA_DMA_API
select SND_OPL3_LIB select SND_OPL3_LIB
select SND_MPU401_UART select SND_MPU401_UART
select SND_PCM select SND_PCM