mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 20:51:47 +00:00
Merge branch 'master' into upstream-fixes
This commit is contained in:
commit
4ad99f15c6
@ -641,7 +641,7 @@ CALGARY x86-64 IOMMU
|
||||
P: Muli Ben-Yehuda
|
||||
M: muli@il.ibm.com
|
||||
P: Jon D. Mason
|
||||
M: jdmason@us.ibm.com
|
||||
M: jdmason@kudzu.us
|
||||
L: linux-kernel@vger.kernel.org
|
||||
L: discuss@x86-64.org
|
||||
S: Maintained
|
||||
|
@ -121,15 +121,14 @@ unsigned long frv_dma_inprogress;
|
||||
/*
|
||||
* DMA irq handler - determine channel involved, grab status and call real handler
|
||||
*/
|
||||
static irqreturn_t dma_irq_handler(int irq, void *_channel, struct pt_regs *regs)
|
||||
static irqreturn_t dma_irq_handler(int irq, void *_channel)
|
||||
{
|
||||
struct frv_dma_channel *channel = _channel;
|
||||
|
||||
frv_clear_dma_inprogress(channel - frv_dma_channels);
|
||||
return channel->handler(channel - frv_dma_channels,
|
||||
__get_DMAC(channel->ioaddr, CSTR),
|
||||
channel->data,
|
||||
regs);
|
||||
channel->data);
|
||||
|
||||
} /* end dma_irq_handler() */
|
||||
|
||||
|
@ -80,7 +80,7 @@ static struct irq_chip frv_fpga_pic = {
|
||||
/*
|
||||
* FPGA PIC interrupt handler
|
||||
*/
|
||||
static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
|
||||
static irqreturn_t fpga_interrupt(int irq, void *_mask)
|
||||
{
|
||||
uint16_t imr, mask = (unsigned long) _mask;
|
||||
|
||||
@ -95,7 +95,7 @@ static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
|
||||
irq = 31 - irq;
|
||||
mask &= ~(1 << irq);
|
||||
|
||||
generic_handle_irq(IRQ_BASE_FPGA + irq, regs);
|
||||
generic_handle_irq(IRQ_BASE_FPGA + irq);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
@ -79,7 +79,7 @@ static struct irq_chip frv_fpga_pic = {
|
||||
/*
|
||||
* FPGA PIC interrupt handler
|
||||
*/
|
||||
static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
|
||||
static irqreturn_t fpga_interrupt(int irq, void *_mask)
|
||||
{
|
||||
uint16_t imr, mask = (unsigned long) _mask;
|
||||
|
||||
@ -94,7 +94,7 @@ static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
|
||||
irq = 31 - irq;
|
||||
mask &= ~(1 << irq);
|
||||
|
||||
generic_irq_handle(IRQ_BASE_FPGA + irq, regs);
|
||||
generic_irq_handle(IRQ_BASE_FPGA + irq);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
@ -90,7 +90,7 @@ static struct irq_chip frv_mb93493_pic = {
|
||||
/*
|
||||
* MB93493 PIC interrupt handler
|
||||
*/
|
||||
static irqreturn_t mb93493_interrupt(int irq, void *_piqsr, struct pt_regs *regs)
|
||||
static irqreturn_t mb93493_interrupt(int irq, void *_piqsr)
|
||||
{
|
||||
volatile void *piqsr = _piqsr;
|
||||
uint32_t iqsr;
|
||||
@ -106,7 +106,7 @@ static irqreturn_t mb93493_interrupt(int irq, void *_piqsr, struct pt_regs *regs
|
||||
irq = 31 - irq;
|
||||
iqsr &= ~(1 << irq);
|
||||
|
||||
generic_handle_irq(IRQ_BASE_MB93493 + irq, regs);
|
||||
generic_handle_irq(IRQ_BASE_MB93493 + irq);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
@ -143,7 +143,7 @@ static struct irq_chip frv_cpu_pic = {
|
||||
asmlinkage void do_IRQ(void)
|
||||
{
|
||||
irq_enter();
|
||||
generic_handle_irq(__get_IRL(), __frame);
|
||||
generic_handle_irq(__get_IRL());
|
||||
irq_exit();
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ unsigned long __nongprelbss __dsu_clock_speed_HZ;
|
||||
unsigned long __nongprelbss __serial_clock_speed_HZ;
|
||||
unsigned long __delay_loops_MHz;
|
||||
|
||||
static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs *regs);
|
||||
static irqreturn_t timer_interrupt(int irq, void *dummy);
|
||||
|
||||
static struct irqaction timer_irq = {
|
||||
timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL
|
||||
@ -55,7 +55,7 @@ static inline int set_rtc_mmss(unsigned long nowtime)
|
||||
* timer_interrupt() needs to keep up the real-time clock,
|
||||
* as well as call the "do_timer()" routine every clocktick
|
||||
*/
|
||||
static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
|
||||
static irqreturn_t timer_interrupt(int irq, void *dummy)
|
||||
{
|
||||
/* last time the cmos clock got updated */
|
||||
static long last_rtc_update = 0;
|
||||
@ -70,8 +70,8 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
do_timer(1);
|
||||
update_process_times(user_mode(regs));
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
profile_tick(CPU_PROFILING);
|
||||
|
||||
/*
|
||||
* If we have an externally synchronized Linux clock, then update
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.18-git7
|
||||
# Wed Sep 27 21:53:10 2006
|
||||
# Linux kernel version: 2.6.19-rc1
|
||||
# Thu Oct 5 13:04:53 2006
|
||||
#
|
||||
CONFIG_X86_32=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
@ -31,9 +31,11 @@ CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
# CONFIG_IPC_NS is not set
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
@ -41,9 +43,10 @@ CONFIG_IKCONFIG_PROC=y
|
||||
# CONFIG_RELAY is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_UID16=y
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
@ -76,6 +79,7 @@ CONFIG_STOP_MACHINE=y
|
||||
#
|
||||
# Block layer
|
||||
#
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_LSF is not set
|
||||
@ -163,6 +167,7 @@ CONFIG_VM86=y
|
||||
# CONFIG_I8K is not set
|
||||
# CONFIG_X86_REBOOTFIXUPS is not set
|
||||
CONFIG_MICROCODE=y
|
||||
CONFIG_MICROCODE_OLD_INTERFACE=y
|
||||
CONFIG_X86_MSR=y
|
||||
CONFIG_X86_CPUID=y
|
||||
|
||||
@ -177,6 +182,7 @@ CONFIG_HIGHMEM4G=y
|
||||
# CONFIG_HIGHMEM64G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_ARCH_POPULATES_NODE_MAP=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
@ -295,6 +301,7 @@ CONFIG_PCI_MMCONFIG=y
|
||||
CONFIG_PCI_MSI=y
|
||||
# CONFIG_PCI_MULTITHREAD_PROBE is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_HT_IRQ is not set
|
||||
CONFIG_ISA_DMA_API=y
|
||||
# CONFIG_ISA is not set
|
||||
# CONFIG_MCA is not set
|
||||
@ -354,6 +361,7 @@ CONFIG_IP_PNP_DHCP=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
@ -370,6 +378,7 @@ CONFIG_IPV6=y
|
||||
# CONFIG_INET6_TUNNEL is not set
|
||||
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET6_XFRM_MODE_TUNNEL=y
|
||||
# CONFIG_INET6_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
|
||||
# CONFIG_IPV6_TUNNEL is not set
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
@ -519,6 +528,7 @@ CONFIG_BLK_DEV_AMD74XX=y
|
||||
# CONFIG_BLK_DEV_CS5535 is not set
|
||||
# CONFIG_BLK_DEV_HPT34X is not set
|
||||
# CONFIG_BLK_DEV_HPT366 is not set
|
||||
# CONFIG_BLK_DEV_JMICRON is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
CONFIG_BLK_DEV_PIIX=y
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
@ -615,6 +625,7 @@ CONFIG_AIC79XX_DEBUG_MASK=0
|
||||
# CONFIG_SCSI_IPR is not set
|
||||
# CONFIG_SCSI_QLOGIC_1280 is not set
|
||||
# CONFIG_SCSI_QLA_FC is not set
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
# CONFIG_SCSI_LPFC is not set
|
||||
# CONFIG_SCSI_DC395x is not set
|
||||
# CONFIG_SCSI_DC390T is not set
|
||||
@ -658,7 +669,6 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
# CONFIG_PATA_HPT3X3 is not set
|
||||
# CONFIG_PATA_IT821X is not set
|
||||
# CONFIG_PATA_JMICRON is not set
|
||||
# CONFIG_PATA_LEGACY is not set
|
||||
# CONFIG_PATA_TRIFLEX is not set
|
||||
# CONFIG_PATA_MPIIX is not set
|
||||
# CONFIG_PATA_OLDPIIX is not set
|
||||
@ -667,7 +677,6 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
# CONFIG_PATA_OPTI is not set
|
||||
# CONFIG_PATA_OPTIDMA is not set
|
||||
# CONFIG_PATA_PDC_OLD is not set
|
||||
# CONFIG_PATA_QDI is not set
|
||||
# CONFIG_PATA_RADISYS is not set
|
||||
# CONFIG_PATA_RZ1000 is not set
|
||||
# CONFIG_PATA_SC1200 is not set
|
||||
@ -684,6 +693,7 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
# CONFIG_DM_DEBUG is not set
|
||||
# CONFIG_DM_CRYPT is not set
|
||||
# CONFIG_DM_SNAPSHOT is not set
|
||||
# CONFIG_DM_MIRROR is not set
|
||||
@ -874,6 +884,7 @@ CONFIG_NET_POLL_CONTROLLER=y
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
@ -896,6 +907,7 @@ CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
@ -1023,12 +1035,12 @@ CONFIG_HANGCHECK_TIMER=y
|
||||
# Misc devices
|
||||
#
|
||||
# CONFIG_IBM_ASM is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
CONFIG_VIDEO_V4L2=y
|
||||
|
||||
#
|
||||
# Digital Video Broadcasting Devices
|
||||
@ -1134,6 +1146,7 @@ CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_STORAGE_ALAUDA is not set
|
||||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
|
||||
#
|
||||
@ -1156,6 +1169,7 @@ CONFIG_USB_HIDINPUT=y
|
||||
# CONFIG_USB_ATI_REMOTE2 is not set
|
||||
# CONFIG_USB_KEYSPAN_REMOTE is not set
|
||||
# CONFIG_USB_APPLETOUCH is not set
|
||||
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
@ -1187,6 +1201,7 @@ CONFIG_USB_MON=y
|
||||
#
|
||||
# CONFIG_USB_EMI62 is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_ADUTUX is not set
|
||||
# CONFIG_USB_AUERSWALD is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
@ -1194,9 +1209,9 @@ CONFIG_USB_MON=y
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_PHIDGETKIT is not set
|
||||
# CONFIG_USB_PHIDGETSERVO is not set
|
||||
# CONFIG_USB_PHIDGET is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
# CONFIG_USB_SISUSBVGA is not set
|
||||
# CONFIG_USB_LD is not set
|
||||
@ -1281,6 +1296,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
@ -1315,8 +1331,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_HUGETLB_PAGE=y
|
||||
CONFIG_RAMFS=y
|
||||
@ -1366,6 +1384,7 @@ CONFIG_SUNRPC=y
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_AFS_FS is not set
|
||||
# CONFIG_9P_FS is not set
|
||||
CONFIG_GENERIC_ACL=y
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
@ -1417,6 +1436,10 @@ CONFIG_NLS_ISO8859_15=y
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
CONFIG_NLS_UTF8=y
|
||||
|
||||
#
|
||||
# Distributed Lock Manager
|
||||
#
|
||||
|
||||
#
|
||||
# Instrumentation Support
|
||||
#
|
||||
@ -1452,11 +1475,13 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_FRAME_POINTER is not set
|
||||
CONFIG_UNWIND_INFO=y
|
||||
CONFIG_STACK_UNWIND=y
|
||||
# CONFIG_FORCED_INLINING is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_LKDTM is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
|
@ -1193,11 +1193,11 @@ EXPORT_SYMBOL(switch_ipi_to_APIC_timer);
|
||||
* value into /proc/profile.
|
||||
*/
|
||||
|
||||
inline void smp_local_timer_interrupt(struct pt_regs * regs)
|
||||
inline void smp_local_timer_interrupt(void)
|
||||
{
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
profile_tick(CPU_PROFILING);
|
||||
#ifdef CONFIG_SMP
|
||||
update_process_times(user_mode_vm(regs));
|
||||
update_process_times(user_mode_vm(irq_regs));
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -1223,6 +1223,7 @@ inline void smp_local_timer_interrupt(struct pt_regs * regs)
|
||||
|
||||
fastcall void smp_apic_timer_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
/*
|
||||
@ -1241,12 +1242,13 @@ fastcall void smp_apic_timer_interrupt(struct pt_regs *regs)
|
||||
* interrupt lock, which is the WrongThing (tm) to do.
|
||||
*/
|
||||
irq_enter();
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
static void up_apic_timer_interrupt_call(struct pt_regs *regs)
|
||||
static void up_apic_timer_interrupt_call(void)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
@ -1255,11 +1257,11 @@ static void up_apic_timer_interrupt_call(struct pt_regs *regs)
|
||||
*/
|
||||
per_cpu(irq_stat, cpu).apic_timer_irqs++;
|
||||
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
}
|
||||
#endif
|
||||
|
||||
void smp_send_timer_broadcast_ipi(struct pt_regs *regs)
|
||||
void smp_send_timer_broadcast_ipi(void)
|
||||
{
|
||||
cpumask_t mask;
|
||||
|
||||
@ -1272,7 +1274,7 @@ void smp_send_timer_broadcast_ipi(struct pt_regs *regs)
|
||||
* We can directly call the apic timer interrupt handler
|
||||
* in UP case. Minus all irq related functions
|
||||
*/
|
||||
up_apic_timer_interrupt_call(regs);
|
||||
up_apic_timer_interrupt_call();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -335,13 +335,13 @@ void init_8259A(int auto_eoi)
|
||||
*/
|
||||
|
||||
|
||||
static irqreturn_t math_error_irq(int cpl, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t math_error_irq(int cpl, void *dev_id)
|
||||
{
|
||||
extern void math_error(void __user *);
|
||||
outb(0,0xF0);
|
||||
if (ignore_fpu_irq || !boot_cpu_data.hard_math)
|
||||
return IRQ_NONE;
|
||||
math_error((void __user *)regs->eip);
|
||||
math_error((void __user *)get_irq_regs()->eip);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
@ -53,6 +53,7 @@ static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
|
||||
*/
|
||||
fastcall unsigned int do_IRQ(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs;
|
||||
/* high bit used in ret_from_ code */
|
||||
int irq = ~regs->orig_eax;
|
||||
struct irq_desc *desc = irq_desc + irq;
|
||||
@ -67,6 +68,7 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
|
||||
BUG();
|
||||
}
|
||||
|
||||
old_regs = set_irq_regs(regs);
|
||||
irq_enter();
|
||||
#ifdef CONFIG_DEBUG_STACKOVERFLOW
|
||||
/* Debugging check for stack overflow: is there less than 1KB free? */
|
||||
@ -95,7 +97,7 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
|
||||
* current stack (which is the irq stack already after all)
|
||||
*/
|
||||
if (curctx != irqctx) {
|
||||
int arg1, arg2, arg3, ebx;
|
||||
int arg1, arg2, ebx;
|
||||
|
||||
/* build the stack frame on the IRQ stack */
|
||||
isp = (u32*) ((char*)irqctx + sizeof(*irqctx));
|
||||
@ -114,17 +116,17 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
|
||||
" xchgl %%ebx,%%esp \n"
|
||||
" call *%%edi \n"
|
||||
" movl %%ebx,%%esp \n"
|
||||
: "=a" (arg1), "=d" (arg2), "=c" (arg3), "=b" (ebx)
|
||||
: "0" (irq), "1" (desc), "2" (regs), "3" (isp),
|
||||
: "=a" (arg1), "=d" (arg2), "=b" (ebx)
|
||||
: "0" (irq), "1" (desc), "2" (isp),
|
||||
"D" (desc->handle_irq)
|
||||
: "memory", "cc"
|
||||
);
|
||||
} else
|
||||
#endif
|
||||
desc->handle_irq(irq, desc, regs);
|
||||
desc->handle_irq(irq, desc);
|
||||
|
||||
irq_exit();
|
||||
|
||||
set_irq_regs(old_regs);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -328,6 +328,7 @@ extern void kernel_thread_helper(void);
|
||||
int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
|
||||
{
|
||||
struct pt_regs regs;
|
||||
int err;
|
||||
|
||||
memset(®s, 0, sizeof(regs));
|
||||
|
||||
@ -342,7 +343,10 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
|
||||
regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2;
|
||||
|
||||
/* Ok, create the new process.. */
|
||||
return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, NULL, NULL);
|
||||
err = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, NULL, NULL);
|
||||
if (err == 0) /* terminate kernel stack */
|
||||
task_pt_regs(current)->eip = 0;
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(kernel_thread);
|
||||
|
||||
|
@ -321,6 +321,7 @@ static inline void leave_mm (unsigned long cpu)
|
||||
|
||||
fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
unsigned long cpu;
|
||||
|
||||
cpu = get_cpu();
|
||||
@ -351,6 +352,7 @@ fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
|
||||
smp_mb__after_clear_bit();
|
||||
out:
|
||||
put_cpu_no_resched();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
static void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm,
|
||||
@ -605,11 +607,14 @@ void smp_send_stop(void)
|
||||
*/
|
||||
fastcall void smp_reschedule_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
ack_APIC_irq();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
fastcall void smp_call_function_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
void (*func) (void *info) = call_data->func;
|
||||
void *info = call_data->info;
|
||||
int wait = call_data->wait;
|
||||
@ -632,6 +637,7 @@ fastcall void smp_call_function_interrupt(struct pt_regs *regs)
|
||||
mb();
|
||||
atomic_inc(&call_data->finished);
|
||||
}
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -161,7 +161,7 @@ EXPORT_SYMBOL(profile_pc);
|
||||
* Time Stamp Counter value at the time of the timer interrupt, so that
|
||||
* we later on can estimate the time of day more exactly.
|
||||
*/
|
||||
irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
irqreturn_t timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
/*
|
||||
* Here we are in the timer irq handler. We just have irqs locally
|
||||
@ -188,7 +188,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
}
|
||||
#endif
|
||||
|
||||
do_timer_interrupt_hook(regs);
|
||||
do_timer_interrupt_hook();
|
||||
|
||||
|
||||
if (MCA_bus) {
|
||||
@ -209,7 +209,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
if (using_apic_timer)
|
||||
smp_send_timer_broadcast_ipi(regs);
|
||||
smp_send_timer_broadcast_ipi();
|
||||
#endif
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
@ -441,7 +441,7 @@ int hpet_rtc_dropped_irq(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct rtc_time curr_time;
|
||||
unsigned long rtc_int_flag = 0;
|
||||
@ -480,7 +480,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
}
|
||||
if (call_rtc_interrupt) {
|
||||
rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8));
|
||||
rtc_interrupt(rtc_int_flag, dev_id, regs);
|
||||
rtc_interrupt(rtc_int_flag, dev_id);
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
@ -714,7 +714,7 @@ static int irqbits;
|
||||
| (1 << SIGUSR1) | (1 << SIGUSR2) | (1 << SIGIO) | (1 << SIGURG) \
|
||||
| (1 << SIGUNUSED) )
|
||||
|
||||
static irqreturn_t irq_handler(int intno, void *dev_id, struct pt_regs * regs)
|
||||
static irqreturn_t irq_handler(int intno, void *dev_id)
|
||||
{
|
||||
int irq_bit;
|
||||
unsigned long flags;
|
||||
|
@ -152,6 +152,8 @@ ENTRY(__read_lock_failed)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RWSEM_XCHGADD_ALGORITHM
|
||||
|
||||
/* Fix up special calling conventions */
|
||||
ENTRY(call_rwsem_down_read_failed)
|
||||
CFI_STARTPROC
|
||||
@ -214,3 +216,4 @@ ENTRY(call_rwsem_downgrade_wake)
|
||||
CFI_ENDPROC
|
||||
END(call_rwsem_downgrade_wake)
|
||||
|
||||
#endif
|
||||
|
@ -191,7 +191,7 @@ static struct hw_interrupt_type piix4_virtual_irq_type = {
|
||||
* enable_irq gets the right irq. This 'master' irq is never directly
|
||||
* manipulated by any driver.
|
||||
*/
|
||||
static irqreturn_t piix4_master_intr(int irq, void *dev_id, struct pt_regs * regs)
|
||||
static irqreturn_t piix4_master_intr(int irq, void *dev_id)
|
||||
{
|
||||
int realirq;
|
||||
irq_desc_t *desc;
|
||||
@ -244,7 +244,7 @@ static irqreturn_t piix4_master_intr(int irq, void *dev_id, struct pt_regs * reg
|
||||
kstat_cpu(smp_processor_id()).irqs[realirq]++;
|
||||
|
||||
if (likely(desc->action != NULL))
|
||||
handle_IRQ_event(realirq, regs, desc->action);
|
||||
handle_IRQ_event(realirq, desc->action);
|
||||
|
||||
if (!(desc->status & IRQ_DISABLED))
|
||||
enable_8259A_irq(realirq);
|
||||
|
@ -87,7 +87,7 @@ voyager_detect(struct voyager_bios_info *bios)
|
||||
}
|
||||
|
||||
void
|
||||
voyager_system_interrupt(int cpl, void *dev_id, struct pt_regs *regs)
|
||||
voyager_system_interrupt(int cpl, void *dev_id)
|
||||
{
|
||||
printk("Voyager: detected system interrupt\n");
|
||||
}
|
||||
|
@ -126,10 +126,10 @@ send_QIC_CPI(__u32 cpuset, __u8 cpi)
|
||||
}
|
||||
|
||||
static inline void
|
||||
wrapper_smp_local_timer_interrupt(struct pt_regs *regs)
|
||||
wrapper_smp_local_timer_interrupt(void)
|
||||
{
|
||||
irq_enter();
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
irq_exit();
|
||||
}
|
||||
|
||||
@ -786,7 +786,7 @@ fastcall void
|
||||
smp_vic_sys_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
ack_CPI(VIC_SYS_INT);
|
||||
printk("Voyager SYSTEM INTERRUPT\n");
|
||||
printk("Voyager SYSTEM INTERRUPT\n");
|
||||
}
|
||||
|
||||
/* Handle a voyager CMN_INT; These interrupts occur either because of
|
||||
@ -1135,7 +1135,9 @@ EXPORT_SYMBOL(smp_call_function);
|
||||
fastcall void
|
||||
smp_apic_timer_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
wrapper_smp_local_timer_interrupt(regs);
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
wrapper_smp_local_timer_interrupt();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/* All of the QUAD interrupt GATES */
|
||||
@ -1143,7 +1145,9 @@ fastcall void
|
||||
smp_qic_timer_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
ack_QIC_CPI(QIC_TIMER_CPI);
|
||||
wrapper_smp_local_timer_interrupt(regs);
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
wrapper_smp_local_timer_interrupt(void);
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
fastcall void
|
||||
@ -1177,6 +1181,7 @@ smp_qic_call_function_interrupt(struct pt_regs *regs)
|
||||
fastcall void
|
||||
smp_vic_cpi_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
__u8 cpu = smp_processor_id();
|
||||
|
||||
if(is_cpu_quad())
|
||||
@ -1185,7 +1190,7 @@ smp_vic_cpi_interrupt(struct pt_regs *regs)
|
||||
ack_VIC_CPI(VIC_CPI_LEVEL0);
|
||||
|
||||
if(test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu]))
|
||||
wrapper_smp_local_timer_interrupt(regs);
|
||||
wrapper_smp_local_timer_interrupt();
|
||||
if(test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu]))
|
||||
smp_invalidate_interrupt();
|
||||
if(test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu]))
|
||||
@ -1194,6 +1199,7 @@ smp_vic_cpi_interrupt(struct pt_regs *regs)
|
||||
smp_enable_irq_interrupt();
|
||||
if(test_and_clear_bit(VIC_CALL_FUNCTION_CPI, &vic_cpi_mailbox[cpu]))
|
||||
smp_call_function_interrupt();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1266,8 +1272,10 @@ smp_send_stop(void)
|
||||
void
|
||||
smp_vic_timer_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
send_CPI_allbutself(VIC_TIMER_CPI);
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/* local (per CPU) timer interrupt. It does both profiling and
|
||||
@ -1279,12 +1287,12 @@ smp_vic_timer_interrupt(struct pt_regs *regs)
|
||||
* value into /proc/profile.
|
||||
*/
|
||||
void
|
||||
smp_local_timer_interrupt(struct pt_regs * regs)
|
||||
smp_local_timer_interrupt(void)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
long weight;
|
||||
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
profile_tick(CPU_PROFILING);
|
||||
if (--per_cpu(prof_counter, cpu) <= 0) {
|
||||
/*
|
||||
* The multiplier may have changed since the last time we got
|
||||
@ -1302,7 +1310,7 @@ smp_local_timer_interrupt(struct pt_regs * regs)
|
||||
per_cpu(prof_counter, cpu);
|
||||
}
|
||||
|
||||
update_process_times(user_mode_vm(regs));
|
||||
update_process_times(user_mode_vm(irq_regs));
|
||||
}
|
||||
|
||||
if( ((1<<cpu) & voyager_extended_vic_processors) == 0)
|
||||
|
@ -256,6 +256,8 @@ static int __init pci_check_type2(void)
|
||||
|
||||
void __init pci_direct_init(int type)
|
||||
{
|
||||
if (type == 0)
|
||||
return;
|
||||
printk(KERN_INFO "PCI: Using configuration type %d\n", type);
|
||||
if (type == 1)
|
||||
raw_pci_ops = &pci_direct_conf1;
|
||||
|
@ -28,6 +28,10 @@ static __init int pci_access_init(void)
|
||||
#ifdef CONFIG_PCI_DIRECT
|
||||
pci_direct_init(type);
|
||||
#endif
|
||||
if (!raw_pci_ops)
|
||||
printk(KERN_ERR
|
||||
"PCI: Fatal: No config space access function found\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(pci_access_init);
|
||||
|
@ -138,6 +138,7 @@ void destroy_irq(unsigned int irq)
|
||||
void
|
||||
ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
unsigned long saved_tpr;
|
||||
|
||||
#if IRQ_DEBUG
|
||||
@ -183,7 +184,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
|
||||
ia64_setreg(_IA64_REG_CR_TPR, vector);
|
||||
ia64_srlz_d();
|
||||
|
||||
__do_IRQ(local_vector_to_irq(vector), regs);
|
||||
__do_IRQ(local_vector_to_irq(vector));
|
||||
|
||||
/*
|
||||
* Disable interrupts and send EOI:
|
||||
@ -200,6 +201,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
|
||||
* come through until ia64_eoi() has been done.
|
||||
*/
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
|
@ -60,7 +60,7 @@ machvec_setup (char **arg)
|
||||
EXPORT_SYMBOL(machvec_setup);
|
||||
|
||||
void
|
||||
machvec_timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
|
||||
machvec_timer_interrupt (int irq, void *dev_id)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL(machvec_timer_interrupt);
|
||||
|
@ -499,7 +499,7 @@ int cpe_vector = -1;
|
||||
int ia64_cpe_irq = -1;
|
||||
|
||||
static irqreturn_t
|
||||
ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
|
||||
ia64_mca_cpe_int_handler (int cpe_irq, void *arg)
|
||||
{
|
||||
static unsigned long cpe_history[CPE_HISTORY_LENGTH];
|
||||
static int index;
|
||||
@ -744,7 +744,7 @@ ia64_mca_wakeup_all(void)
|
||||
* Outputs : None
|
||||
*/
|
||||
static irqreturn_t
|
||||
ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
|
||||
ia64_mca_rendez_int_handler(int rendez_irq, void *arg)
|
||||
{
|
||||
unsigned long flags;
|
||||
int cpu = smp_processor_id();
|
||||
@ -753,8 +753,8 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
|
||||
|
||||
/* Mask all interrupts */
|
||||
local_irq_save(flags);
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", regs, (long)&nd, 0, 0)
|
||||
== NOTIFY_STOP)
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(),
|
||||
(long)&nd, 0, 0) == NOTIFY_STOP)
|
||||
ia64_mca_spin(__FUNCTION__);
|
||||
|
||||
ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE;
|
||||
@ -763,16 +763,16 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
|
||||
*/
|
||||
ia64_sal_mc_rendez();
|
||||
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", regs, (long)&nd, 0, 0)
|
||||
== NOTIFY_STOP)
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(),
|
||||
(long)&nd, 0, 0) == NOTIFY_STOP)
|
||||
ia64_mca_spin(__FUNCTION__);
|
||||
|
||||
/* Wait for the monarch cpu to exit. */
|
||||
while (monarch_cpu != -1)
|
||||
cpu_relax(); /* spin until monarch leaves */
|
||||
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", regs, (long)&nd, 0, 0)
|
||||
== NOTIFY_STOP)
|
||||
if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(),
|
||||
(long)&nd, 0, 0) == NOTIFY_STOP)
|
||||
ia64_mca_spin(__FUNCTION__);
|
||||
|
||||
/* Enable all interrupts */
|
||||
@ -791,12 +791,11 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
|
||||
*
|
||||
* Inputs : wakeup_irq (Wakeup-interrupt bit)
|
||||
* arg (Interrupt handler specific argument)
|
||||
* ptregs (Exception frame at the time of the interrupt)
|
||||
* Outputs : None
|
||||
*
|
||||
*/
|
||||
static irqreturn_t
|
||||
ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg, struct pt_regs *ptregs)
|
||||
ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg)
|
||||
{
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -1261,13 +1260,12 @@ static DECLARE_WORK(cmc_enable_work, ia64_mca_cmc_vector_enable_keventd, NULL);
|
||||
* Inputs
|
||||
* interrupt number
|
||||
* client data arg ptr
|
||||
* saved registers ptr
|
||||
*
|
||||
* Outputs
|
||||
* None
|
||||
*/
|
||||
static irqreturn_t
|
||||
ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs)
|
||||
ia64_mca_cmc_int_handler(int cmc_irq, void *arg)
|
||||
{
|
||||
static unsigned long cmc_history[CMC_HISTORY_LENGTH];
|
||||
static int index;
|
||||
@ -1336,12 +1334,11 @@ out:
|
||||
* Inputs
|
||||
* interrupt number
|
||||
* client data arg ptr
|
||||
* saved registers ptr
|
||||
* Outputs
|
||||
* handled
|
||||
*/
|
||||
static irqreturn_t
|
||||
ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs)
|
||||
ia64_mca_cmc_int_caller(int cmc_irq, void *arg)
|
||||
{
|
||||
static int start_count = -1;
|
||||
unsigned int cpuid;
|
||||
@ -1352,7 +1349,7 @@ ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs)
|
||||
if (start_count == -1)
|
||||
start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC);
|
||||
|
||||
ia64_mca_cmc_int_handler(cmc_irq, arg, ptregs);
|
||||
ia64_mca_cmc_int_handler(cmc_irq, arg);
|
||||
|
||||
for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
|
||||
|
||||
@ -1403,14 +1400,13 @@ ia64_mca_cmc_poll (unsigned long dummy)
|
||||
* Inputs
|
||||
* interrupt number
|
||||
* client data arg ptr
|
||||
* saved registers ptr
|
||||
* Outputs
|
||||
* handled
|
||||
*/
|
||||
#ifdef CONFIG_ACPI
|
||||
|
||||
static irqreturn_t
|
||||
ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs)
|
||||
ia64_mca_cpe_int_caller(int cpe_irq, void *arg)
|
||||
{
|
||||
static int start_count = -1;
|
||||
static int poll_time = MIN_CPE_POLL_INTERVAL;
|
||||
@ -1422,7 +1418,7 @@ ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs)
|
||||
if (start_count == -1)
|
||||
start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CPE);
|
||||
|
||||
ia64_mca_cpe_int_handler(cpe_irq, arg, ptregs);
|
||||
ia64_mca_cpe_int_handler(cpe_irq, arg);
|
||||
|
||||
for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
|
||||
|
||||
|
@ -45,7 +45,7 @@ static struct time_interpolator itc_interpolator = {
|
||||
};
|
||||
|
||||
static irqreturn_t
|
||||
timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
|
||||
timer_interrupt (int irq, void *dev_id)
|
||||
{
|
||||
unsigned long new_itm;
|
||||
|
||||
@ -53,7 +53,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
platform_timer_interrupt(irq, dev_id, regs);
|
||||
platform_timer_interrupt(irq, dev_id);
|
||||
|
||||
new_itm = local_cpu_data->itm_next;
|
||||
|
||||
@ -61,10 +61,10 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
|
||||
printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
|
||||
ia64_get_itc(), new_itm);
|
||||
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
profile_tick(CPU_PROFILING);
|
||||
|
||||
while (1) {
|
||||
update_process_times(user_mode(regs));
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
|
||||
new_itm += local_cpu_data->itm_delta;
|
||||
|
||||
|
@ -550,13 +550,12 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
|
||||
* tioca_error_intr_handler - SGI TIO CA error interrupt handler
|
||||
* @irq: unused
|
||||
* @arg: pointer to tioca_common struct for the given CA
|
||||
* @pt: unused
|
||||
*
|
||||
* Handle a CA error interrupt. Simply a wrapper around a SAL call which
|
||||
* defers processing to the SGI prom.
|
||||
*/
|
||||
static irqreturn_t
|
||||
tioca_error_intr_handler(int irq, void *arg, struct pt_regs *pt)
|
||||
tioca_error_intr_handler(int irq, void *arg)
|
||||
{
|
||||
struct tioca_common *soft = arg;
|
||||
struct ia64_sal_retval ret_stuff;
|
||||
|
@ -666,12 +666,11 @@ tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma
|
||||
* tioce_error_intr_handler - SGI TIO CE error interrupt handler
|
||||
* @irq: unused
|
||||
* @arg: pointer to tioce_common struct for the given CE
|
||||
* @pt: unused
|
||||
*
|
||||
* Handle a CE error interrupt. Simply a wrapper around a SAL call which
|
||||
* defers processing to the SGI prom.
|
||||
*/ static irqreturn_t
|
||||
tioce_error_intr_handler(int irq, void *arg, struct pt_regs *pt)
|
||||
tioce_error_intr_handler(int irq, void *arg)
|
||||
{
|
||||
struct tioce_common *soft = arg;
|
||||
struct ia64_sal_retval ret_stuff;
|
||||
|
@ -55,13 +55,15 @@ unsigned long irq_hwmask[NR_IRQS];
|
||||
*/
|
||||
asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
irq_enter();
|
||||
|
||||
__DO_IRQ_SMTC_HOOK();
|
||||
__do_IRQ(irq, regs);
|
||||
__do_IRQ(irq);
|
||||
|
||||
irq_exit();
|
||||
|
||||
set_irq_regs(old_regs);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -322,18 +322,18 @@ static long last_rtc_update;
|
||||
* a broadcasted inter-processor interrupt which itself is triggered
|
||||
* by the global timer interrupt.
|
||||
*/
|
||||
void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
void local_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
if (current->pid)
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
update_process_times(user_mode(regs));
|
||||
profile_tick(CPU_PROFILING);
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
}
|
||||
|
||||
/*
|
||||
* High-level timer interrupt service routines. This function
|
||||
* is set as irqaction->handler and is invoked through do_IRQ.
|
||||
*/
|
||||
irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
irqreturn_t timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
unsigned long j;
|
||||
unsigned int count;
|
||||
@ -419,23 +419,24 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
* In SMP mode, local_timer_interrupt() is invoked by appropriate
|
||||
* low-level local timer interrupt handler.
|
||||
*/
|
||||
local_timer_interrupt(irq, dev_id, regs);
|
||||
local_timer_interrupt(irq, dev_id);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
int null_perf_irq(struct pt_regs *regs)
|
||||
int null_perf_irq(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int (*perf_irq)(struct pt_regs *regs) = null_perf_irq;
|
||||
int (*perf_irq)(void) = null_perf_irq;
|
||||
|
||||
EXPORT_SYMBOL(null_perf_irq);
|
||||
EXPORT_SYMBOL(perf_irq);
|
||||
|
||||
asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
int r2 = cpu_has_mips_r2;
|
||||
|
||||
irq_enter();
|
||||
@ -448,27 +449,30 @@ asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs)
|
||||
* performance counter interrupt handler anyway.
|
||||
*/
|
||||
if (!r2 || (read_c0_cause() & (1 << 26)))
|
||||
if (perf_irq(regs))
|
||||
if (perf_irq())
|
||||
goto out;
|
||||
|
||||
/* we keep interrupt disabled all the time */
|
||||
if (!r2 || (read_c0_cause() & (1 << 30)))
|
||||
timer_interrupt(irq, NULL, regs);
|
||||
timer_interrupt(irq, NULL);
|
||||
|
||||
out:
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
irq_enter();
|
||||
if (smp_processor_id() != 0)
|
||||
kstat_this_cpu.irqs[irq]++;
|
||||
|
||||
/* we keep interrupt disabled all the time */
|
||||
local_timer_interrupt(irq, NULL, regs);
|
||||
local_timer_interrupt(irq, NULL);
|
||||
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -169,7 +169,7 @@ static inline void volume_down_button(unsigned long data)
|
||||
}
|
||||
}
|
||||
|
||||
static irqreturn_t panel_int(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t panel_int(int irq, void *dev_id)
|
||||
{
|
||||
unsigned int buttons;
|
||||
|
||||
|
@ -191,12 +191,14 @@ void indy_8254timer_irq(struct pt_regs *regs)
|
||||
|
||||
void indy_r4k_timer_interrupt(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
int irq = SGI_TIMER_IRQ;
|
||||
|
||||
irq_enter();
|
||||
kstat_this_cpu.irqs[irq]++;
|
||||
timer_interrupt(irq, NULL, regs);
|
||||
timer_interrupt(irq, NULL);
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
void __init plat_timer_setup(struct irqaction *irq)
|
||||
|
@ -187,6 +187,7 @@ void fixup_irqs(cpumask_t map)
|
||||
|
||||
void do_IRQ(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
unsigned int irq;
|
||||
#ifdef CONFIG_IRQSTACKS
|
||||
struct thread_info *curtp, *irqtp;
|
||||
@ -230,18 +231,19 @@ void do_IRQ(struct pt_regs *regs)
|
||||
handler = &__do_IRQ;
|
||||
irqtp->task = curtp->task;
|
||||
irqtp->flags = 0;
|
||||
call_handle_irq(irq, desc, regs, irqtp, handler);
|
||||
call_handle_irq(irq, desc, irqtp, handler);
|
||||
irqtp->task = NULL;
|
||||
if (irqtp->flags)
|
||||
set_bits(irqtp->flags, &curtp->flags);
|
||||
} else
|
||||
#endif
|
||||
generic_handle_irq(irq, regs);
|
||||
generic_handle_irq(irq);
|
||||
} else if (irq != NO_IRQ_IGNORE)
|
||||
/* That's not SMP safe ... but who cares ? */
|
||||
ppc_spurious_interrupts++;
|
||||
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
if (get_lppaca()->int_dword.fields.decr_int) {
|
||||
|
@ -52,12 +52,12 @@ _GLOBAL(call_do_softirq)
|
||||
blr
|
||||
|
||||
_GLOBAL(call_handle_irq)
|
||||
ld r8,0(r7)
|
||||
ld r8,0(r6)
|
||||
mflr r0
|
||||
std r0,16(r1)
|
||||
mtctr r8
|
||||
stdu r1,THREAD_SIZE-112(r6)
|
||||
mr r1,r6
|
||||
stdu r1,THREAD_SIZE-112(r5)
|
||||
mr r1,r5
|
||||
bctrl
|
||||
ld r1,0(r1)
|
||||
ld r0,16(r1)
|
||||
|
@ -115,7 +115,7 @@ void __devinit smp_generic_kick_cpu(int nr)
|
||||
}
|
||||
#endif
|
||||
|
||||
void smp_message_recv(int msg, struct pt_regs *regs)
|
||||
void smp_message_recv(int msg)
|
||||
{
|
||||
switch(msg) {
|
||||
case PPC_MSG_CALL_FUNCTION:
|
||||
@ -127,11 +127,11 @@ void smp_message_recv(int msg, struct pt_regs *regs)
|
||||
break;
|
||||
case PPC_MSG_DEBUGGER_BREAK:
|
||||
if (crash_ipi_function_ptr) {
|
||||
crash_ipi_function_ptr(regs);
|
||||
crash_ipi_function_ptr(get_irq_regs());
|
||||
break;
|
||||
}
|
||||
#ifdef CONFIG_DEBUGGER
|
||||
debugger_ipi(regs);
|
||||
debugger_ipi(get_irq_regs());
|
||||
break;
|
||||
#endif /* CONFIG_DEBUGGER */
|
||||
/* FALLTHROUGH */
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include <linux/rtc.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/posix-timers.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/processor.h>
|
||||
@ -643,6 +644,7 @@ static void iSeries_tb_recal(void)
|
||||
*/
|
||||
void timer_interrupt(struct pt_regs * regs)
|
||||
{
|
||||
struct pt_regs *old_regs;
|
||||
int next_dec;
|
||||
int cpu = smp_processor_id();
|
||||
unsigned long ticks;
|
||||
@ -653,9 +655,10 @@ void timer_interrupt(struct pt_regs * regs)
|
||||
do_IRQ(regs);
|
||||
#endif
|
||||
|
||||
old_regs = set_irq_regs(regs);
|
||||
irq_enter();
|
||||
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
profile_tick(CPU_PROFILING);
|
||||
calculate_steal_time();
|
||||
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
@ -715,6 +718,7 @@ void timer_interrupt(struct pt_regs * regs)
|
||||
#endif
|
||||
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
void wakeup_decrementer(void)
|
||||
|
@ -190,11 +190,11 @@ struct irq_host *iic_get_irq_host(int node)
|
||||
EXPORT_SYMBOL_GPL(iic_get_irq_host);
|
||||
|
||||
|
||||
static irqreturn_t iic_ipi_action(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t iic_ipi_action(int irq, void *dev_id)
|
||||
{
|
||||
int ipi = (int)(long)dev_id;
|
||||
|
||||
smp_message_recv(ipi, regs);
|
||||
smp_message_recv(ipi);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
@ -213,8 +213,7 @@ static struct irq_host_ops spider_host_ops = {
|
||||
.xlate = spider_host_xlate,
|
||||
};
|
||||
|
||||
static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
struct spider_pic *pic = desc->handler_data;
|
||||
unsigned int cs, virq;
|
||||
@ -225,7 +224,7 @@ static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc,
|
||||
else
|
||||
virq = irq_linear_revmap(pic->host, cs);
|
||||
if (virq != NO_IRQ)
|
||||
generic_handle_irq(virq, regs);
|
||||
generic_handle_irq(virq);
|
||||
desc->chip->eoi(irq);
|
||||
}
|
||||
|
||||
|
@ -342,7 +342,7 @@ static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
|
||||
}
|
||||
|
||||
/* Interrupt handler */
|
||||
static irqreturn_t kw_i2c_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t kw_i2c_irq(int irq, void *dev_id)
|
||||
{
|
||||
struct pmac_i2c_host_kw *host = dev_id;
|
||||
unsigned long flags;
|
||||
|
@ -15,7 +15,7 @@
|
||||
#define DBG(fmt...)
|
||||
#endif
|
||||
|
||||
static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs)
|
||||
static irqreturn_t macio_gpio_irq(int irq, void *data)
|
||||
{
|
||||
pmf_do_irq(data);
|
||||
|
||||
|
@ -440,14 +440,13 @@ static void __init pmac_pic_probe_oldstyle(void)
|
||||
}
|
||||
#endif /* CONFIG_PPC32 */
|
||||
|
||||
static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
struct mpic *mpic = desc->handler_data;
|
||||
|
||||
unsigned int cascade_irq = mpic_get_one_irq(mpic, regs);
|
||||
unsigned int cascade_irq = mpic_get_one_irq(mpic, get_irq_regs());
|
||||
if (cascade_irq != NO_IRQ)
|
||||
generic_handle_irq(cascade_irq, regs);
|
||||
generic_handle_irq(cascade_irq);
|
||||
desc->chip->eoi(irq);
|
||||
}
|
||||
|
||||
|
@ -65,16 +65,14 @@ static int ras_check_exception_token;
|
||||
#define EPOW_SENSOR_INDEX 0
|
||||
#define RAS_VECTOR_OFFSET 0x500
|
||||
|
||||
static irqreturn_t ras_epow_interrupt(int irq, void *dev_id,
|
||||
struct pt_regs * regs);
|
||||
static irqreturn_t ras_error_interrupt(int irq, void *dev_id,
|
||||
struct pt_regs * regs);
|
||||
static irqreturn_t ras_epow_interrupt(int irq, void *dev_id);
|
||||
static irqreturn_t ras_error_interrupt(int irq, void *dev_id);
|
||||
|
||||
/* #define DEBUG */
|
||||
|
||||
|
||||
static void request_ras_irqs(struct device_node *np,
|
||||
irqreturn_t (*handler)(int, void *, struct pt_regs *),
|
||||
irq_handler_t handler,
|
||||
const char *name)
|
||||
{
|
||||
int i, index, count = 0;
|
||||
@ -166,8 +164,7 @@ __initcall(init_ras_IRQ);
|
||||
* to examine the type of power failure and take appropriate action where
|
||||
* the time horizon permits something useful to be done.
|
||||
*/
|
||||
static irqreturn_t
|
||||
ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
|
||||
static irqreturn_t ras_epow_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
int status = 0xdeadbeef;
|
||||
int state = 0;
|
||||
@ -210,8 +207,7 @@ ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
|
||||
* For nonrecoverable errors, an error is logged and we stop all processing
|
||||
* as quickly as possible in order to prevent propagation of the failure.
|
||||
*/
|
||||
static irqreturn_t
|
||||
ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs)
|
||||
static irqreturn_t ras_error_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct rtas_error_log *rtas_elog;
|
||||
int status = 0xdeadbeef;
|
||||
|
@ -121,12 +121,11 @@ static void __init fwnmi_init(void)
|
||||
fwnmi_active = 1;
|
||||
}
|
||||
|
||||
void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc,
|
||||
struct pt_regs *regs)
|
||||
void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
unsigned int cascade_irq = i8259_irq(regs);
|
||||
unsigned int cascade_irq = i8259_irq(get_irq_regs());
|
||||
if (cascade_irq != NO_IRQ)
|
||||
generic_handle_irq(cascade_irq, regs);
|
||||
generic_handle_irq(cascade_irq);
|
||||
desc->chip->eoi(irq);
|
||||
}
|
||||
|
||||
|
@ -324,7 +324,7 @@ static unsigned int xics_get_irq_lpar(struct pt_regs *regs)
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs)
|
||||
static irqreturn_t xics_ipi_dispatch(int cpu)
|
||||
{
|
||||
WARN_ON(cpu_is_offline(cpu));
|
||||
|
||||
@ -332,47 +332,47 @@ static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs)
|
||||
if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION,
|
||||
&xics_ipi_message[cpu].value)) {
|
||||
mb();
|
||||
smp_message_recv(PPC_MSG_CALL_FUNCTION, regs);
|
||||
smp_message_recv(PPC_MSG_CALL_FUNCTION);
|
||||
}
|
||||
if (test_and_clear_bit(PPC_MSG_RESCHEDULE,
|
||||
&xics_ipi_message[cpu].value)) {
|
||||
mb();
|
||||
smp_message_recv(PPC_MSG_RESCHEDULE, regs);
|
||||
smp_message_recv(PPC_MSG_RESCHEDULE);
|
||||
}
|
||||
#if 0
|
||||
if (test_and_clear_bit(PPC_MSG_MIGRATE_TASK,
|
||||
&xics_ipi_message[cpu].value)) {
|
||||
mb();
|
||||
smp_message_recv(PPC_MSG_MIGRATE_TASK, regs);
|
||||
smp_message_recv(PPC_MSG_MIGRATE_TASK);
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
|
||||
if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK,
|
||||
&xics_ipi_message[cpu].value)) {
|
||||
mb();
|
||||
smp_message_recv(PPC_MSG_DEBUGGER_BREAK, regs);
|
||||
smp_message_recv(PPC_MSG_DEBUGGER_BREAK);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
direct_qirr_info(cpu, 0xff);
|
||||
|
||||
return xics_ipi_dispatch(cpu, regs);
|
||||
return xics_ipi_dispatch(cpu);
|
||||
}
|
||||
|
||||
static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
lpar_qirr_info(cpu, 0xff);
|
||||
|
||||
return xics_ipi_dispatch(cpu, regs);
|
||||
return xics_ipi_dispatch(cpu);
|
||||
}
|
||||
|
||||
void xics_cause_IPI(int cpu)
|
||||
|
@ -31,7 +31,6 @@ struct xics_ipi_struct {
|
||||
extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned;
|
||||
|
||||
struct irq_desc;
|
||||
extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc,
|
||||
struct pt_regs *regs);
|
||||
extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc);
|
||||
|
||||
#endif /* _POWERPC_KERNEL_XICS_H */
|
||||
|
@ -489,9 +489,9 @@ static inline void mpic_eoi(struct mpic *mpic)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
static irqreturn_t mpic_ipi_action(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t mpic_ipi_action(int irq, void *dev_id)
|
||||
{
|
||||
smp_message_recv(mpic_irq_to_hw(irq) - MPIC_VEC_IPI_0, regs);
|
||||
smp_message_recv(mpic_irq_to_hw(irq) - MPIC_VEC_IPI_0);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
#endif /* CONFIG_SMP */
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/sysrq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/string.h>
|
||||
@ -2577,12 +2578,11 @@ void xmon_init(int enable)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MAGIC_SYSRQ
|
||||
static void sysrq_handle_xmon(int key, struct pt_regs *pt_regs,
|
||||
struct tty_struct *tty)
|
||||
static void sysrq_handle_xmon(int key, struct tty_struct *tty)
|
||||
{
|
||||
/* ensure xmon is enabled */
|
||||
xmon_init(1);
|
||||
debugger(pt_regs);
|
||||
debugger(get_irq_regs());
|
||||
}
|
||||
|
||||
static struct sysrq_key_op sysrq_xmon_op =
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.18-git7
|
||||
# Wed Sep 27 21:53:10 2006
|
||||
# Linux kernel version: 2.6.19-rc1
|
||||
# Thu Oct 5 13:04:43 2006
|
||||
#
|
||||
CONFIG_X86_64=y
|
||||
CONFIG_64BIT=y
|
||||
@ -19,6 +19,7 @@ CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_GENERIC_ISA_DMA=y
|
||||
CONFIG_GENERIC_IOMAP=y
|
||||
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
|
||||
CONFIG_ARCH_POPULATES_NODE_MAP=y
|
||||
CONFIG_DMI=y
|
||||
CONFIG_AUDIT_ARCH=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
@ -37,9 +38,11 @@ CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
# CONFIG_IPC_NS is not set
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
@ -47,9 +50,10 @@ CONFIG_IKCONFIG_PROC=y
|
||||
# CONFIG_RELAY is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_UID16=y
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
@ -82,6 +86,7 @@ CONFIG_STOP_MACHINE=y
|
||||
#
|
||||
# Block layer
|
||||
#
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_LSF is not set
|
||||
@ -252,9 +257,11 @@ CONFIG_PCI=y
|
||||
CONFIG_PCI_DIRECT=y
|
||||
CONFIG_PCI_MMCONFIG=y
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCI_MSI=y
|
||||
# CONFIG_PCI_MULTITHREAD_PROBE is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_HT_IRQ is not set
|
||||
|
||||
#
|
||||
# PCCARD (PCMCIA/CardBus) support
|
||||
@ -309,6 +316,7 @@ CONFIG_IP_PNP_DHCP=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
@ -325,6 +333,7 @@ CONFIG_IPV6=y
|
||||
# CONFIG_INET6_TUNNEL is not set
|
||||
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET6_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
|
||||
# CONFIG_IPV6_TUNNEL is not set
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
@ -473,6 +482,7 @@ CONFIG_BLK_DEV_ATIIXP=y
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
# CONFIG_BLK_DEV_HPT34X is not set
|
||||
# CONFIG_BLK_DEV_HPT366 is not set
|
||||
# CONFIG_BLK_DEV_JMICRON is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
CONFIG_BLK_DEV_PIIX=y
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
@ -564,6 +574,7 @@ CONFIG_MEGARAID_SAS=y
|
||||
# CONFIG_SCSI_IPR is not set
|
||||
# CONFIG_SCSI_QLOGIC_1280 is not set
|
||||
# CONFIG_SCSI_QLA_FC is not set
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
# CONFIG_SCSI_LPFC is not set
|
||||
# CONFIG_SCSI_DC395x is not set
|
||||
# CONFIG_SCSI_DC390T is not set
|
||||
@ -605,7 +616,6 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
# CONFIG_PATA_HPT3X3 is not set
|
||||
# CONFIG_PATA_IT821X is not set
|
||||
# CONFIG_PATA_JMICRON is not set
|
||||
# CONFIG_PATA_LEGACY is not set
|
||||
# CONFIG_PATA_TRIFLEX is not set
|
||||
# CONFIG_PATA_MPIIX is not set
|
||||
# CONFIG_PATA_OLDPIIX is not set
|
||||
@ -614,7 +624,6 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
# CONFIG_PATA_OPTI is not set
|
||||
# CONFIG_PATA_OPTIDMA is not set
|
||||
# CONFIG_PATA_PDC_OLD is not set
|
||||
# CONFIG_PATA_QDI is not set
|
||||
# CONFIG_PATA_RADISYS is not set
|
||||
# CONFIG_PATA_RZ1000 is not set
|
||||
# CONFIG_PATA_SC1200 is not set
|
||||
@ -631,6 +640,7 @@ CONFIG_SATA_INTEL_COMBINED=y
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
# CONFIG_DM_DEBUG is not set
|
||||
# CONFIG_DM_CRYPT is not set
|
||||
# CONFIG_DM_SNAPSHOT is not set
|
||||
# CONFIG_DM_MIRROR is not set
|
||||
@ -819,6 +829,7 @@ CONFIG_NET_POLL_CONTROLLER=y
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
@ -841,6 +852,7 @@ CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
@ -1008,6 +1020,7 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_ADM1026 is not set
|
||||
# CONFIG_SENSORS_ADM1031 is not set
|
||||
# CONFIG_SENSORS_ADM9240 is not set
|
||||
# CONFIG_SENSORS_K8TEMP is not set
|
||||
# CONFIG_SENSORS_ASB100 is not set
|
||||
# CONFIG_SENSORS_ATXP1 is not set
|
||||
# CONFIG_SENSORS_DS1621 is not set
|
||||
@ -1034,6 +1047,7 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
CONFIG_SENSORS_SMSC47B397=m
|
||||
# CONFIG_SENSORS_VIA686A is not set
|
||||
# CONFIG_SENSORS_VT1211 is not set
|
||||
# CONFIG_SENSORS_VT8231 is not set
|
||||
# CONFIG_SENSORS_W83781D is not set
|
||||
# CONFIG_SENSORS_W83791D is not set
|
||||
@ -1048,12 +1062,12 @@ CONFIG_SENSORS_SMSC47B397=m
|
||||
# Misc devices
|
||||
#
|
||||
# CONFIG_IBM_ASM is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
CONFIG_VIDEO_V4L2=y
|
||||
|
||||
#
|
||||
# Digital Video Broadcasting Devices
|
||||
@ -1159,6 +1173,7 @@ CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_STORAGE_ALAUDA is not set
|
||||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
|
||||
#
|
||||
@ -1181,6 +1196,7 @@ CONFIG_USB_HIDINPUT=y
|
||||
# CONFIG_USB_ATI_REMOTE2 is not set
|
||||
# CONFIG_USB_KEYSPAN_REMOTE is not set
|
||||
# CONFIG_USB_APPLETOUCH is not set
|
||||
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
@ -1212,6 +1228,7 @@ CONFIG_USB_MON=y
|
||||
#
|
||||
# CONFIG_USB_EMI62 is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_ADUTUX is not set
|
||||
# CONFIG_USB_AUERSWALD is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
@ -1219,9 +1236,9 @@ CONFIG_USB_MON=y
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_PHIDGETKIT is not set
|
||||
# CONFIG_USB_PHIDGETSERVO is not set
|
||||
# CONFIG_USB_PHIDGET is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
# CONFIG_USB_SISUSBVGA is not set
|
||||
# CONFIG_USB_LD is not set
|
||||
@ -1313,6 +1330,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
@ -1347,8 +1365,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_HUGETLB_PAGE=y
|
||||
CONFIG_RAMFS=y
|
||||
@ -1398,6 +1418,7 @@ CONFIG_SUNRPC=y
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_AFS_FS is not set
|
||||
# CONFIG_9P_FS is not set
|
||||
CONFIG_GENERIC_ACL=y
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
@ -1449,6 +1470,10 @@ CONFIG_NLS_ISO8859_15=y
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
CONFIG_NLS_UTF8=y
|
||||
|
||||
#
|
||||
# Distributed Lock Manager
|
||||
#
|
||||
|
||||
#
|
||||
# Instrumentation Support
|
||||
#
|
||||
@ -1482,11 +1507,13 @@ CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_FRAME_POINTER is not set
|
||||
CONFIG_UNWIND_INFO=y
|
||||
CONFIG_STACK_UNWIND=y
|
||||
# CONFIG_FORCED_INLINING is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_LKDTM is not set
|
||||
# CONFIG_DEBUG_RODATA is not set
|
||||
# CONFIG_IOMMU_DEBUG is not set
|
||||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
|
@ -885,14 +885,14 @@ void setup_APIC_extened_lvt(unsigned char lvt_off, unsigned char vector,
|
||||
* value into /proc/profile.
|
||||
*/
|
||||
|
||||
void smp_local_timer_interrupt(struct pt_regs *regs)
|
||||
void smp_local_timer_interrupt(void)
|
||||
{
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
profile_tick(CPU_PROFILING);
|
||||
#ifdef CONFIG_SMP
|
||||
update_process_times(user_mode(regs));
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
#endif
|
||||
if (apic_runs_main_timer > 1 && smp_processor_id() == boot_cpu_id)
|
||||
main_timer_handler(regs);
|
||||
main_timer_handler();
|
||||
/*
|
||||
* We take the 'long' return path, and there every subsystem
|
||||
* grabs the appropriate locks (kernel lock/ irq lock).
|
||||
@ -913,7 +913,7 @@ void smp_local_timer_interrupt(struct pt_regs *regs)
|
||||
* [ if a single-CPU system runs an SMP kernel then we call the local
|
||||
* interrupt as well. Thus we cannot inline the local irq ... ]
|
||||
*/
|
||||
void smp_apic_timer_interrupt(struct pt_regs *regs)
|
||||
void smp_apic_timer_interrupt(void)
|
||||
{
|
||||
/*
|
||||
* the NMI deadlock-detector uses this.
|
||||
@ -932,7 +932,7 @@ void smp_apic_timer_interrupt(struct pt_regs *regs)
|
||||
*/
|
||||
exit_idle();
|
||||
irq_enter();
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
irq_exit();
|
||||
}
|
||||
|
||||
|
@ -535,6 +535,8 @@ END(stub_rt_sigreturn)
|
||||
1: incl %gs:pda_irqcount
|
||||
cmoveq %gs:pda_irqstackptr,%rsp
|
||||
push %rbp # backlink for old unwinder
|
||||
CFI_ADJUST_CFA_OFFSET 8
|
||||
CFI_REL_OFFSET rbp,0
|
||||
/*
|
||||
* We entered an interrupt context - irqs are off:
|
||||
*/
|
||||
@ -978,6 +980,11 @@ ENTRY(kernel_thread)
|
||||
call do_fork
|
||||
movq %rax,RAX(%rsp)
|
||||
xorl %edi,%edi
|
||||
test %rax,%rax
|
||||
jnz 1f
|
||||
/* terminate stack in child */
|
||||
movq %rdi,RIP(%rsp)
|
||||
1:
|
||||
|
||||
/*
|
||||
* It isn't worth to check for reschedule here,
|
||||
@ -1169,6 +1176,7 @@ ENTRY(call_softirq)
|
||||
incl %gs:pda_irqcount
|
||||
cmove %gs:pda_irqstackptr,%rsp
|
||||
push %rbp # backlink for old unwinder
|
||||
CFI_ADJUST_CFA_OFFSET 8
|
||||
call __do_softirq
|
||||
leaveq
|
||||
CFI_DEF_CFA_REGISTER rsp
|
||||
|
@ -103,7 +103,9 @@ skip:
|
||||
* handlers).
|
||||
*/
|
||||
asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
|
||||
{
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
|
||||
/* high bit used in ret_from_ code */
|
||||
unsigned vector = ~regs->orig_rax;
|
||||
unsigned irq;
|
||||
@ -121,9 +123,10 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
|
||||
#ifdef CONFIG_DEBUG_STACKOVERFLOW
|
||||
stack_overflow_check(regs);
|
||||
#endif
|
||||
generic_handle_irq(irq, regs);
|
||||
generic_handle_irq(irq);
|
||||
irq_exit();
|
||||
|
||||
set_irq_regs(old_regs);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2,8 +2,9 @@
|
||||
* Derived from arch/powerpc/kernel/iommu.c
|
||||
*
|
||||
* Copyright (C) IBM Corporation, 2006
|
||||
* Copyright (C) 2006 Jon Mason <jdmason@kudzu.us>
|
||||
*
|
||||
* Author: Jon Mason <jdmason@us.ibm.com>
|
||||
* Author: Jon Mason <jdmason@kudzu.us>
|
||||
* Author: Muli Ben-Yehuda <muli@il.ibm.com>
|
||||
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -714,7 +715,7 @@ static void calgary_watchdog(unsigned long data)
|
||||
|
||||
/* If no error, the agent ID in the CSR is not valid */
|
||||
if (val32 & CSR_AGENT_MASK) {
|
||||
printk(KERN_EMERG "calgary_watchdog: DMA error on bus %d, "
|
||||
printk(KERN_EMERG "calgary_watchdog: DMA error on PHB %#x, "
|
||||
"CSR = %#x\n", dev->bus->number, val32);
|
||||
writel(0, target);
|
||||
|
||||
@ -748,7 +749,7 @@ static void __init calgary_enable_translation(struct pci_dev *dev)
|
||||
val32 = be32_to_cpu(readl(target));
|
||||
val32 |= PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE;
|
||||
|
||||
printk(KERN_INFO "Calgary: enabling translation on PHB %d\n", busnum);
|
||||
printk(KERN_INFO "Calgary: enabling translation on PHB %#x\n", busnum);
|
||||
printk(KERN_INFO "Calgary: errant DMAs will now be prevented on this "
|
||||
"bus.\n");
|
||||
|
||||
@ -778,7 +779,7 @@ static void __init calgary_disable_translation(struct pci_dev *dev)
|
||||
val32 = be32_to_cpu(readl(target));
|
||||
val32 &= ~(PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE);
|
||||
|
||||
printk(KERN_INFO "Calgary: disabling translation on PHB %d!\n", busnum);
|
||||
printk(KERN_INFO "Calgary: disabling translation on PHB %#x!\n", busnum);
|
||||
writel(cpu_to_be32(val32), target);
|
||||
readl(target); /* flush */
|
||||
|
||||
@ -790,7 +791,16 @@ static inline unsigned int __init locate_register_space(struct pci_dev *dev)
|
||||
int rionodeid;
|
||||
u32 address;
|
||||
|
||||
rionodeid = (dev->bus->number % 15 > 4) ? 3 : 2;
|
||||
/*
|
||||
* Each Calgary has four busses. The first four busses (first Calgary)
|
||||
* have RIO node ID 2, then the next four (second Calgary) have RIO
|
||||
* node ID 3, the next four (third Calgary) have node ID 2 again, etc.
|
||||
* We use a gross hack - relying on the dev->bus->number ordering,
|
||||
* modulo 14 - to decide which Calgary a given bus is on. Busses 0, 1,
|
||||
* 2 and 4 are on the first Calgary (id 2), 6, 8, a and c are on the
|
||||
* second (id 3), and then it repeats modulo 14.
|
||||
*/
|
||||
rionodeid = (dev->bus->number % 14 > 4) ? 3 : 2;
|
||||
/*
|
||||
* register space address calculation as follows:
|
||||
* FE0MB-8MB*OneBasedChassisNumber+1MB*(RioNodeId-ChassisBase)
|
||||
@ -798,7 +808,7 @@ static inline unsigned int __init locate_register_space(struct pci_dev *dev)
|
||||
* RioNodeId is 2 for first Calgary, 3 for second Calgary
|
||||
*/
|
||||
address = START_ADDRESS -
|
||||
(0x800000 * (ONE_BASED_CHASSIS_NUM + dev->bus->number / 15)) +
|
||||
(0x800000 * (ONE_BASED_CHASSIS_NUM + dev->bus->number / 14)) +
|
||||
(0x100000) * (rionodeid - CHASSIS_BASE);
|
||||
return address;
|
||||
}
|
||||
@ -816,6 +826,8 @@ static int __init calgary_init_one(struct pci_dev *dev)
|
||||
void __iomem *bbar;
|
||||
int ret;
|
||||
|
||||
BUG_ON(dev->bus->number >= MAX_PHB_BUS_NUM);
|
||||
|
||||
address = locate_register_space(dev);
|
||||
/* map entire 1MB of Calgary config space */
|
||||
bbar = ioremap_nocache(address, 1024 * 1024);
|
||||
@ -842,10 +854,10 @@ done:
|
||||
|
||||
static int __init calgary_init(void)
|
||||
{
|
||||
int i, ret = -ENODEV;
|
||||
int ret = -ENODEV;
|
||||
struct pci_dev *dev = NULL;
|
||||
|
||||
for (i = 0; i < MAX_PHB_BUS_NUM; i++) {
|
||||
do {
|
||||
dev = pci_get_device(PCI_VENDOR_ID_IBM,
|
||||
PCI_DEVICE_ID_IBM_CALGARY,
|
||||
dev);
|
||||
@ -861,12 +873,12 @@ static int __init calgary_init(void)
|
||||
ret = calgary_init_one(dev);
|
||||
if (ret)
|
||||
goto error;
|
||||
}
|
||||
} while (1);
|
||||
|
||||
return ret;
|
||||
|
||||
error:
|
||||
for (i--; i >= 0; i--) {
|
||||
do {
|
||||
dev = pci_find_device_reverse(PCI_VENDOR_ID_IBM,
|
||||
PCI_DEVICE_ID_IBM_CALGARY,
|
||||
dev);
|
||||
@ -882,7 +894,7 @@ error:
|
||||
calgary_disable_translation(dev);
|
||||
calgary_free_bus(dev);
|
||||
pci_dev_put(dev); /* Undo calgary_init_one()'s pci_dev_get() */
|
||||
}
|
||||
} while (1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1052,7 +1064,7 @@ static int __init calgary_parse_options(char *p)
|
||||
|
||||
if (bridge < MAX_PHB_BUS_NUM) {
|
||||
printk(KERN_INFO "Calgary: disabling "
|
||||
"translation for PHB 0x%x\n", bridge);
|
||||
"translation for PHB %#x\n", bridge);
|
||||
bus_info[bridge].translation_disabled = 1;
|
||||
}
|
||||
}
|
||||
|
@ -615,6 +615,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
|
||||
prev->gsindex = gsindex;
|
||||
}
|
||||
|
||||
/* Must be after DS reload */
|
||||
unlazy_fpu(prev_p);
|
||||
|
||||
/*
|
||||
* Switch the PDA and FPU contexts.
|
||||
*/
|
||||
@ -622,10 +625,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
|
||||
write_pda(oldrsp, next->userrsp);
|
||||
write_pda(pcurrent, next_p);
|
||||
|
||||
/* This must be here to ensure both math_state_restore() and
|
||||
kernel_fpu_begin() work consistently.
|
||||
And the AMD workaround requires it to be after DS reload. */
|
||||
unlazy_fpu(prev_p);
|
||||
write_pda(kernelstack,
|
||||
(unsigned long)task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);
|
||||
#ifdef CONFIG_CC_STACKPROTECTOR
|
||||
|
@ -302,20 +302,20 @@ unsigned long long monotonic_clock(void)
|
||||
}
|
||||
EXPORT_SYMBOL(monotonic_clock);
|
||||
|
||||
static noinline void handle_lost_ticks(int lost, struct pt_regs *regs)
|
||||
static noinline void handle_lost_ticks(int lost)
|
||||
{
|
||||
static long lost_count;
|
||||
static int warned;
|
||||
if (report_lost_ticks) {
|
||||
printk(KERN_WARNING "time.c: Lost %d timer tick(s)! ", lost);
|
||||
print_symbol("rip %s)\n", regs->rip);
|
||||
print_symbol("rip %s)\n", get_irq_regs()->rip);
|
||||
}
|
||||
|
||||
if (lost_count == 1000 && !warned) {
|
||||
printk(KERN_WARNING "warning: many lost ticks.\n"
|
||||
KERN_WARNING "Your time source seems to be instable or "
|
||||
"some driver is hogging interupts\n");
|
||||
print_symbol("rip %s\n", regs->rip);
|
||||
print_symbol("rip %s\n", get_irq_regs()->rip);
|
||||
if (vxtime.mode == VXTIME_TSC && vxtime.hpet_address) {
|
||||
printk(KERN_WARNING "Falling back to HPET\n");
|
||||
if (hpet_use_timer)
|
||||
@ -339,7 +339,7 @@ static noinline void handle_lost_ticks(int lost, struct pt_regs *regs)
|
||||
#endif
|
||||
}
|
||||
|
||||
void main_timer_handler(struct pt_regs *regs)
|
||||
void main_timer_handler(void)
|
||||
{
|
||||
static unsigned long rtc_update = 0;
|
||||
unsigned long tsc;
|
||||
@ -411,7 +411,7 @@ void main_timer_handler(struct pt_regs *regs)
|
||||
}
|
||||
|
||||
if (lost > 0)
|
||||
handle_lost_ticks(lost, regs);
|
||||
handle_lost_ticks(lost);
|
||||
else
|
||||
lost = 0;
|
||||
|
||||
@ -421,7 +421,7 @@ void main_timer_handler(struct pt_regs *regs)
|
||||
|
||||
do_timer(lost + 1);
|
||||
#ifndef CONFIG_SMP
|
||||
update_process_times(user_mode(regs));
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -431,7 +431,7 @@ void main_timer_handler(struct pt_regs *regs)
|
||||
*/
|
||||
|
||||
if (!using_apic_timer)
|
||||
smp_local_timer_interrupt(regs);
|
||||
smp_local_timer_interrupt();
|
||||
|
||||
/*
|
||||
* If we have an externally synchronized Linux clock, then update CMOS clock
|
||||
@ -450,11 +450,11 @@ void main_timer_handler(struct pt_regs *regs)
|
||||
write_sequnlock(&xtime_lock);
|
||||
}
|
||||
|
||||
static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
if (apic_runs_main_timer > 1)
|
||||
return IRQ_HANDLED;
|
||||
main_timer_handler(regs);
|
||||
main_timer_handler();
|
||||
if (using_apic_timer)
|
||||
smp_send_timer_broadcast_ipi();
|
||||
return IRQ_HANDLED;
|
||||
@ -1337,7 +1337,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
}
|
||||
if (call_rtc_interrupt) {
|
||||
rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8));
|
||||
rtc_interrupt(rtc_int_flag, dev_id, regs);
|
||||
rtc_interrupt(rtc_int_flag, dev_id);
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/nmi.h>
|
||||
@ -115,7 +116,6 @@ static int call_trace = 1;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_KALLSYMS
|
||||
# include <linux/kallsyms.h>
|
||||
void printk_address(unsigned long address)
|
||||
{
|
||||
unsigned long offset = 0, symsize;
|
||||
|
@ -938,7 +938,7 @@ static void do_mfm_request(request_queue_t *q)
|
||||
mfm_request();
|
||||
}
|
||||
|
||||
static void mfm_interrupt_handler(int unused, void *dev_id, struct pt_regs *regs)
|
||||
static void mfm_interrupt_handler(int unused, void *dev_id)
|
||||
{
|
||||
void (*handler) (void) = do_mfm;
|
||||
|
||||
|
@ -237,7 +237,7 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
static irqreturn_t acpi_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t acpi_irq(int irq, void *dev_id)
|
||||
{
|
||||
return (*acpi_irq_handler) (acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc);
|
||||
static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *regs);
|
||||
static irqreturn_t ahci_interrupt (int irq, void *dev_instance);
|
||||
static void ahci_irq_clear(struct ata_port *ap);
|
||||
static int ahci_port_start(struct ata_port *ap);
|
||||
static void ahci_port_stop(struct ata_port *ap);
|
||||
@ -1059,7 +1059,7 @@ static void ahci_irq_clear(struct ata_port *ap)
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
static irqreturn_t ahci_interrupt(int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t ahci_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
struct ahci_host_priv *hpriv;
|
||||
|
@ -4861,7 +4861,6 @@ idle_irq:
|
||||
* ata_interrupt - Default ATA host interrupt handler
|
||||
* @irq: irq line (unused)
|
||||
* @dev_instance: pointer to our ata_host information structure
|
||||
* @regs: unused
|
||||
*
|
||||
* Default interrupt handler for PCI IDE devices. Calls
|
||||
* ata_host_intr() for each port that is not disabled.
|
||||
@ -4873,7 +4872,7 @@ idle_irq:
|
||||
* IRQ_NONE or IRQ_HANDLED.
|
||||
*/
|
||||
|
||||
irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
|
||||
irqreturn_t ata_interrupt (int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int i;
|
||||
|
@ -124,8 +124,7 @@ struct adma_port_priv {
|
||||
|
||||
static int adma_ata_init_one (struct pci_dev *pdev,
|
||||
const struct pci_device_id *ent);
|
||||
static irqreturn_t adma_intr (int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t adma_intr (int irq, void *dev_instance);
|
||||
static int adma_port_start(struct ata_port *ap);
|
||||
static void adma_host_stop(struct ata_host *host);
|
||||
static void adma_port_stop(struct ata_port *ap);
|
||||
@ -508,7 +507,7 @@ static inline unsigned int adma_intr_mmio(struct ata_host *host)
|
||||
return handled;
|
||||
}
|
||||
|
||||
static irqreturn_t adma_intr(int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t adma_intr(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int handled = 0;
|
||||
|
@ -348,8 +348,7 @@ static void mv_port_stop(struct ata_port *ap);
|
||||
static void mv_qc_prep(struct ata_queued_cmd *qc);
|
||||
static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
|
||||
static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
|
||||
static irqreturn_t mv_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t mv_interrupt(int irq, void *dev_instance);
|
||||
static void mv_eng_timeout(struct ata_port *ap);
|
||||
static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
|
||||
@ -1448,8 +1447,7 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
|
||||
* This routine holds the host lock while processing pending
|
||||
* interrupts.
|
||||
*/
|
||||
static irqreturn_t mv_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t mv_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int hc, handled = 0, n_hcs;
|
||||
|
@ -82,12 +82,9 @@ enum {
|
||||
|
||||
static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
static void nv_ck804_host_stop(struct ata_host *host);
|
||||
static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance);
|
||||
static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance);
|
||||
static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance);
|
||||
static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
|
||||
@ -276,8 +273,7 @@ MODULE_LICENSE("GPL");
|
||||
MODULE_DEVICE_TABLE(pci, nv_pci_tbl);
|
||||
MODULE_VERSION(DRV_VERSION);
|
||||
|
||||
static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int i;
|
||||
@ -357,8 +353,7 @@ static irqreturn_t nv_do_interrupt(struct ata_host *host, u8 irq_stat)
|
||||
return IRQ_RETVAL(handled);
|
||||
}
|
||||
|
||||
static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
u8 irq_stat;
|
||||
@ -372,8 +367,7 @@ static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
u8 irq_stat;
|
||||
|
@ -93,7 +93,7 @@ struct pdc_host_priv {
|
||||
static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void pdc_sata_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *regs);
|
||||
static irqreturn_t pdc_interrupt (int irq, void *dev_instance);
|
||||
static void pdc_eng_timeout(struct ata_port *ap);
|
||||
static int pdc_port_start(struct ata_port *ap);
|
||||
static void pdc_port_stop(struct ata_port *ap);
|
||||
@ -498,7 +498,7 @@ static void pdc_irq_clear(struct ata_port *ap)
|
||||
readl(mmio + PDC_INT_SEQMASK);
|
||||
}
|
||||
|
||||
static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t pdc_interrupt (int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
struct ata_port *ap;
|
||||
|
@ -114,7 +114,7 @@ struct qs_port_priv {
|
||||
static u32 qs_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void qs_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
static int qs_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
static irqreturn_t qs_intr (int irq, void *dev_instance, struct pt_regs *regs);
|
||||
static irqreturn_t qs_intr (int irq, void *dev_instance);
|
||||
static int qs_port_start(struct ata_port *ap);
|
||||
static void qs_host_stop(struct ata_host *host);
|
||||
static void qs_port_stop(struct ata_port *ap);
|
||||
@ -454,7 +454,7 @@ static inline unsigned int qs_intr_mmio(struct ata_host *host)
|
||||
return handled;
|
||||
}
|
||||
|
||||
static irqreturn_t qs_intr(int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t qs_intr(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int handled = 0;
|
||||
|
@ -116,8 +116,7 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev);
|
||||
static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
static void sil_post_set_mode (struct ata_port *ap);
|
||||
static irqreturn_t sil_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t sil_interrupt(int irq, void *dev_instance);
|
||||
static void sil_freeze(struct ata_port *ap);
|
||||
static void sil_thaw(struct ata_port *ap);
|
||||
|
||||
@ -437,8 +436,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
|
||||
ata_port_freeze(ap);
|
||||
}
|
||||
|
||||
static irqreturn_t sil_interrupt(int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t sil_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
void __iomem *mmio_base = host->mmio_base;
|
||||
|
@ -330,7 +330,7 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
|
||||
static void sil24_qc_prep(struct ata_queued_cmd *qc);
|
||||
static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
|
||||
static void sil24_irq_clear(struct ata_port *ap);
|
||||
static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs);
|
||||
static irqreturn_t sil24_interrupt(int irq, void *dev_instance);
|
||||
static void sil24_freeze(struct ata_port *ap);
|
||||
static void sil24_thaw(struct ata_port *ap);
|
||||
static void sil24_error_handler(struct ata_port *ap);
|
||||
@ -870,7 +870,7 @@ static inline void sil24_host_intr(struct ata_port *ap)
|
||||
slot_stat, ap->active_tag, ap->sactive);
|
||||
}
|
||||
|
||||
static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t sil24_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
struct sil24_host_priv *hpriv = host->private_data;
|
||||
|
@ -152,7 +152,7 @@ struct pdc_host_priv {
|
||||
|
||||
|
||||
static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_regs *regs);
|
||||
static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance);
|
||||
static void pdc_eng_timeout(struct ata_port *ap);
|
||||
static void pdc_20621_phy_reset (struct ata_port *ap);
|
||||
static int pdc_port_start(struct ata_port *ap);
|
||||
@ -788,7 +788,7 @@ static void pdc20621_irq_clear(struct ata_port *ap)
|
||||
readl(mmio + PDC_20621_SEQMASK);
|
||||
}
|
||||
|
||||
static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
|
||||
static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
struct ata_port *ap;
|
||||
|
@ -203,8 +203,7 @@ static void vsc_sata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
|
||||
*
|
||||
* Read the interrupt register and process for the devices that have them pending.
|
||||
*/
|
||||
static irqreturn_t vsc_sata_interrupt (int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t vsc_sata_interrupt (int irq, void *dev_instance)
|
||||
{
|
||||
struct ata_host *host = dev_instance;
|
||||
unsigned int i;
|
||||
|
@ -861,10 +861,8 @@ static inline void interrupts_off (amb_dev * dev) {
|
||||
|
||||
/********** interrupt handling **********/
|
||||
|
||||
static irqreturn_t interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *pt_regs) {
|
||||
static irqreturn_t interrupt_handler(int irq, void *dev_id) {
|
||||
amb_dev * dev = (amb_dev *) dev_id;
|
||||
(void) pt_regs;
|
||||
|
||||
PRINTD (DBG_IRQ|DBG_FLOW, "interrupt_handler: %p", dev_id);
|
||||
|
||||
|
@ -1488,7 +1488,7 @@ static void bug_int(struct atm_dev *dev,unsigned long reason)
|
||||
}
|
||||
|
||||
|
||||
static irqreturn_t eni_int(int irq,void *dev_id,struct pt_regs *regs)
|
||||
static irqreturn_t eni_int(int irq,void *dev_id)
|
||||
{
|
||||
struct atm_dev *dev;
|
||||
struct eni_dev *eni_dev;
|
||||
|
@ -1546,7 +1546,7 @@ static void __devexit free_freepool (struct fs_dev *dev, struct freepool *fp)
|
||||
|
||||
|
||||
|
||||
static irqreturn_t fs_irq (int irq, void *dev_id, struct pt_regs * pt_regs)
|
||||
static irqreturn_t fs_irq (int irq, void *dev_id)
|
||||
{
|
||||
int i;
|
||||
u32 status;
|
||||
|
@ -1328,7 +1328,7 @@ fore200e_irq(struct fore200e* fore200e)
|
||||
|
||||
|
||||
static irqreturn_t
|
||||
fore200e_interrupt(int irq, void* dev, struct pt_regs* regs)
|
||||
fore200e_interrupt(int irq, void* dev)
|
||||
{
|
||||
struct fore200e* fore200e = FORE200E_DEV((struct atm_dev*)dev);
|
||||
|
||||
|
@ -109,7 +109,7 @@ static int he_open(struct atm_vcc *vcc);
|
||||
static void he_close(struct atm_vcc *vcc);
|
||||
static int he_send(struct atm_vcc *vcc, struct sk_buff *skb);
|
||||
static int he_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg);
|
||||
static irqreturn_t he_irq_handler(int irq, void *dev_id, struct pt_regs *regs);
|
||||
static irqreturn_t he_irq_handler(int irq, void *dev_id);
|
||||
static void he_tasklet(unsigned long data);
|
||||
static int he_proc_read(struct atm_dev *dev,loff_t *pos,char *page);
|
||||
static int he_start(struct atm_dev *dev);
|
||||
@ -2216,7 +2216,7 @@ he_tasklet(unsigned long data)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
he_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
|
||||
he_irq_handler(int irq, void *dev_id)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct he_dev *he_dev = (struct he_dev * )dev_id;
|
||||
|
@ -1382,12 +1382,10 @@ static inline void rx_data_av_handler (hrz_dev * dev) {
|
||||
|
||||
/********** interrupt handler **********/
|
||||
|
||||
static irqreturn_t interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *pt_regs) {
|
||||
static irqreturn_t interrupt_handler(int irq, void *dev_id) {
|
||||
hrz_dev * dev = (hrz_dev *) dev_id;
|
||||
u32 int_source;
|
||||
unsigned int irq_ok;
|
||||
(void) pt_regs;
|
||||
|
||||
PRINTD (DBG_FLOW, "interrupt_handler: %p", dev_id);
|
||||
|
||||
|
@ -2774,7 +2774,7 @@ idt77252_collect_stat(struct idt77252_dev *card)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
idt77252_interrupt(int irq, void *dev_id, struct pt_regs *ptregs)
|
||||
idt77252_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct idt77252_dev *card = dev_id;
|
||||
u32 stat;
|
||||
|
@ -2195,7 +2195,7 @@ err_out:
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
static irqreturn_t ia_int(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t ia_int(int irq, void *dev_id)
|
||||
{
|
||||
struct atm_dev *dev;
|
||||
IADEV *iadev;
|
||||
|
@ -1890,12 +1890,12 @@ static inline void lanai_int_1(struct lanai_dev *lanai, u32 reason)
|
||||
reg_write(lanai, ack, IntAck_Reg);
|
||||
}
|
||||
|
||||
static irqreturn_t lanai_int(int irq, void *devid, struct pt_regs *regs)
|
||||
static irqreturn_t lanai_int(int irq, void *devid)
|
||||
{
|
||||
struct lanai_dev *lanai = (struct lanai_dev *) devid;
|
||||
u32 reason;
|
||||
|
||||
(void) irq; (void) regs; /* unused variables */
|
||||
(void) irq; /* unused variables */
|
||||
|
||||
#ifdef USE_POWERDOWN
|
||||
/*
|
||||
|
@ -214,7 +214,7 @@ static void __devinit ns_init_card_error(ns_dev *card, int error);
|
||||
static scq_info *get_scq(int size, u32 scd);
|
||||
static void free_scq(scq_info *scq, struct atm_vcc *vcc);
|
||||
static void push_rxbufs(ns_dev *, struct sk_buff *);
|
||||
static irqreturn_t ns_irq_handler(int irq, void *dev_id, struct pt_regs *regs);
|
||||
static irqreturn_t ns_irq_handler(int irq, void *dev_id);
|
||||
static int ns_open(struct atm_vcc *vcc);
|
||||
static void ns_close(struct atm_vcc *vcc);
|
||||
static void fill_tst(ns_dev *card, int n, vc_map *vc);
|
||||
@ -1194,7 +1194,7 @@ static void push_rxbufs(ns_dev *card, struct sk_buff *skb)
|
||||
|
||||
|
||||
|
||||
static irqreturn_t ns_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t ns_irq_handler(int irq, void *dev_id)
|
||||
{
|
||||
u32 stat_r;
|
||||
ns_dev *card;
|
||||
|
@ -1012,7 +1012,7 @@ static int start_tx(struct atm_dev *dev)
|
||||
/*------------------------------- interrupts --------------------------------*/
|
||||
|
||||
|
||||
static irqreturn_t zatm_int(int irq,void *dev_id,struct pt_regs *regs)
|
||||
static irqreturn_t zatm_int(int irq,void *dev_id)
|
||||
{
|
||||
struct atm_dev *dev;
|
||||
struct zatm_dev *zatm_dev;
|
||||
|
@ -2698,8 +2698,7 @@ DAC960_DetectController(struct pci_dev *PCI_Device,
|
||||
{
|
||||
struct DAC960_privdata *privdata =
|
||||
(struct DAC960_privdata *)entry->driver_data;
|
||||
irqreturn_t (*InterruptHandler)(int, void *, struct pt_regs *) =
|
||||
privdata->InterruptHandler;
|
||||
irq_handler_t InterruptHandler = privdata->InterruptHandler;
|
||||
unsigned int MemoryWindowSize = privdata->MemoryWindowSize;
|
||||
DAC960_Controller_T *Controller = NULL;
|
||||
unsigned char DeviceFunction = PCI_Device->devfn;
|
||||
@ -5253,8 +5252,7 @@ static void DAC960_V2_ProcessCompletedCommand(DAC960_Command_T *Command)
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_GEM_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5295,8 +5293,7 @@ static irqreturn_t DAC960_GEM_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5338,8 +5335,7 @@ static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5381,8 +5377,7 @@ static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5420,8 +5415,7 @@ static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5459,8 +5453,7 @@ static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
@ -5498,8 +5491,7 @@ static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel,
|
||||
*/
|
||||
|
||||
static irqreturn_t DAC960_P_InterruptHandler(int IRQ_Channel,
|
||||
void *DeviceIdentifier,
|
||||
struct pt_regs *InterruptRegisters)
|
||||
void *DeviceIdentifier)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
|
||||
void __iomem *ControllerBaseAddress = Controller->BaseAddress;
|
||||
|
@ -2175,7 +2175,7 @@ static char
|
||||
struct DAC960_privdata {
|
||||
DAC960_HardwareType_T HardwareType;
|
||||
DAC960_FirmwareType_T FirmwareType;
|
||||
irqreturn_t (*InterruptHandler)(int, void *, struct pt_regs *);
|
||||
irq_handler_t InterruptHandler;
|
||||
unsigned int MemoryWindowSize;
|
||||
};
|
||||
|
||||
@ -4412,12 +4412,12 @@ static void DAC960_FinalizeController(DAC960_Controller_T *);
|
||||
static void DAC960_V1_QueueReadWriteCommand(DAC960_Command_T *);
|
||||
static void DAC960_V2_QueueReadWriteCommand(DAC960_Command_T *);
|
||||
static void DAC960_RequestFunction(struct request_queue *);
|
||||
static irqreturn_t DAC960_BA_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_LP_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_LA_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_PG_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_PD_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_P_InterruptHandler(int, void *, struct pt_regs *);
|
||||
static irqreturn_t DAC960_BA_InterruptHandler(int, void *);
|
||||
static irqreturn_t DAC960_LP_InterruptHandler(int, void *);
|
||||
static irqreturn_t DAC960_LA_InterruptHandler(int, void *);
|
||||
static irqreturn_t DAC960_PG_InterruptHandler(int, void *);
|
||||
static irqreturn_t DAC960_PD_InterruptHandler(int, void *);
|
||||
static irqreturn_t DAC960_P_InterruptHandler(int, void *);
|
||||
static void DAC960_V1_QueueMonitoringCommand(DAC960_Command_T *);
|
||||
static void DAC960_V2_QueueMonitoringCommand(DAC960_Command_T *);
|
||||
static void DAC960_MonitoringTimerFunction(unsigned long);
|
||||
|
@ -346,7 +346,7 @@ static int acsicmd_dma( const char *cmd, char *buffer, int blocks, int
|
||||
rwflag, int enable);
|
||||
static int acsi_reqsense( char *buffer, int targ, int lun);
|
||||
static void acsi_print_error(const unsigned char *errblk, struct acsi_info_struct *aip);
|
||||
static irqreturn_t acsi_interrupt (int irq, void *data, struct pt_regs *fp);
|
||||
static irqreturn_t acsi_interrupt (int irq, void *data);
|
||||
static void unexpected_acsi_interrupt( void );
|
||||
static void bad_rw_intr( void );
|
||||
static void read_intr( void );
|
||||
@ -726,7 +726,7 @@ static void acsi_print_error(const unsigned char *errblk, struct acsi_info_struc
|
||||
*
|
||||
*******************************************************************/
|
||||
|
||||
static irqreturn_t acsi_interrupt(int irq, void *data, struct pt_regs *fp )
|
||||
static irqreturn_t acsi_interrupt(int irq, void *data )
|
||||
|
||||
{ void (*acsi_irq_handler)(void) = do_acsi;
|
||||
|
||||
|
@ -246,7 +246,7 @@ static int slm_getstats( char *buffer, int device );
|
||||
static ssize_t slm_read( struct file* file, char *buf, size_t count, loff_t
|
||||
*ppos );
|
||||
static void start_print( int device );
|
||||
static irqreturn_t slm_interrupt(int irc, void *data, struct pt_regs *fp);
|
||||
static irqreturn_t slm_interrupt(int irc, void *data);
|
||||
static void slm_test_ready( unsigned long dummy );
|
||||
static void set_dma_addr( unsigned long paddr );
|
||||
static unsigned long get_dma_addr( void );
|
||||
@ -452,7 +452,7 @@ static void start_print( int device )
|
||||
|
||||
/* Only called when an error happened or at the end of a page */
|
||||
|
||||
static irqreturn_t slm_interrupt(int irc, void *data, struct pt_regs *fp)
|
||||
static irqreturn_t slm_interrupt(int irc, void *data)
|
||||
|
||||
{ unsigned long addr;
|
||||
int stat;
|
||||
|
@ -209,7 +209,7 @@ static int fd_device[4] = { 0, 0, 0, 0 };
|
||||
|
||||
/* Milliseconds timer */
|
||||
|
||||
static irqreturn_t ms_isr(int irq, void *dummy, struct pt_regs *fp)
|
||||
static irqreturn_t ms_isr(int irq, void *dummy)
|
||||
{
|
||||
ms_busy = -1;
|
||||
wake_up(&ms_wait);
|
||||
@ -560,7 +560,7 @@ static unsigned long fd_get_drive_id(int drive)
|
||||
return (id);
|
||||
}
|
||||
|
||||
static irqreturn_t fd_block_done(int irq, void *dummy, struct pt_regs *fp)
|
||||
static irqreturn_t fd_block_done(int irq, void *dummy)
|
||||
{
|
||||
if (block_flag)
|
||||
custom.dsklen = 0x4000;
|
||||
|
@ -342,7 +342,7 @@ static void fd_select_drive( int drive );
|
||||
static void fd_deselect( void );
|
||||
static void fd_motor_off_timer( unsigned long dummy );
|
||||
static void check_change( unsigned long dummy );
|
||||
static irqreturn_t floppy_irq (int irq, void *dummy, struct pt_regs *fp);
|
||||
static irqreturn_t floppy_irq (int irq, void *dummy);
|
||||
static void fd_error( void );
|
||||
static int do_format(int drive, int type, struct atari_format_descr *desc);
|
||||
static void do_fd_action( int drive );
|
||||
@ -573,7 +573,7 @@ static inline void copy_buffer(void *from, void *to)
|
||||
|
||||
static void (*FloppyIRQHandler)( int status ) = NULL;
|
||||
|
||||
static irqreturn_t floppy_irq (int irq, void *dummy, struct pt_regs *fp)
|
||||
static irqreturn_t floppy_irq (int irq, void *dummy)
|
||||
{
|
||||
unsigned char status;
|
||||
void (*handler)( int );
|
||||
|
@ -130,7 +130,7 @@ static struct board_type products[] = {
|
||||
static ctlr_info_t *hba[MAX_CTLR];
|
||||
|
||||
static void do_cciss_request(request_queue_t *q);
|
||||
static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs);
|
||||
static irqreturn_t do_cciss_intr(int irq, void *dev_id);
|
||||
static int cciss_open(struct inode *inode, struct file *filep);
|
||||
static int cciss_release(struct inode *inode, struct file *filep);
|
||||
static int cciss_ioctl(struct inode *inode, struct file *filep,
|
||||
@ -2300,7 +2300,7 @@ static int sendcmd(__u8 cmd, int ctlr, void *buff, size_t size, unsigned int use
|
||||
#ifdef CONFIG_CISS_SCSI_TAPE
|
||||
/* if we saved some commands for later, process them now. */
|
||||
if (info_p->scsi_rejects.ncompletions > 0)
|
||||
do_cciss_intr(0, info_p, NULL);
|
||||
do_cciss_intr(0, info_p);
|
||||
#endif
|
||||
cmd_free(info_p, c, 1);
|
||||
return status;
|
||||
@ -2652,7 +2652,7 @@ static inline long interrupt_not_for_us(ctlr_info_t *h)
|
||||
#endif
|
||||
}
|
||||
|
||||
static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t do_cciss_intr(int irq, void *dev_id)
|
||||
{
|
||||
ctlr_info_t *h = dev_id;
|
||||
CommandList_struct *c;
|
||||
|
@ -169,7 +169,7 @@ static inline cmdlist_t *removeQ(cmdlist_t **Qptr, cmdlist_t *c);
|
||||
static inline void complete_buffers(struct bio *bio, int ok);
|
||||
static inline void complete_command(cmdlist_t *cmd, int timeout);
|
||||
|
||||
static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs * regs);
|
||||
static irqreturn_t do_ida_intr(int irq, void *dev_id);
|
||||
static void ida_timer(unsigned long tdata);
|
||||
static int ida_revalidate(struct gendisk *disk);
|
||||
static int revalidate_allvol(ctlr_info_t *host);
|
||||
@ -1042,7 +1042,7 @@ static inline void complete_command(cmdlist_t *cmd, int timeout)
|
||||
* Find the command on the completion queue, remove it, tell the OS and
|
||||
* try to queue up more IO
|
||||
*/
|
||||
static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t do_ida_intr(int irq, void *dev_id)
|
||||
{
|
||||
ctlr_info_t *h = dev_id;
|
||||
cmdlist_t *c;
|
||||
|
@ -221,7 +221,7 @@ static DEFINE_SPINLOCK(floppy_lock);
|
||||
static struct completion device_release;
|
||||
|
||||
static unsigned short virtual_dma_port = 0x3f0;
|
||||
irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs);
|
||||
irqreturn_t floppy_interrupt(int irq, void *dev_id);
|
||||
static int set_dor(int fdc, char mask, char data);
|
||||
|
||||
#define K_64 0x10000 /* 64KB */
|
||||
@ -1726,7 +1726,7 @@ static void print_result(char *message, int inr)
|
||||
}
|
||||
|
||||
/* interrupt handler. Note that this can be called externally on the Sparc */
|
||||
irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
irqreturn_t floppy_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
void (*handler) (void) = do_floppy;
|
||||
int do_print;
|
||||
|
@ -75,8 +75,7 @@ static int ps2esdi_out_cmd_blk(u_short * cmd_blk);
|
||||
|
||||
static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode);
|
||||
|
||||
static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id);
|
||||
static void (*current_int_handler) (u_int) = NULL;
|
||||
static void ps2esdi_normal_interrupt_handler(u_int);
|
||||
static void ps2esdi_initial_reset_int_handler(u_int);
|
||||
@ -687,8 +686,7 @@ static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode)
|
||||
|
||||
|
||||
|
||||
static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id)
|
||||
{
|
||||
u_int int_ret_code;
|
||||
|
||||
|
@ -238,8 +238,8 @@ static void scan_timeout(unsigned long data);
|
||||
static void seek_timeout(unsigned long data);
|
||||
static void settle_timeout(unsigned long data);
|
||||
static void xfer_timeout(unsigned long data);
|
||||
static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs);
|
||||
/*static void fd_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs);*/
|
||||
static irqreturn_t swim3_interrupt(int irq, void *dev_id);
|
||||
/*static void fd_dma_interrupt(int irq, void *dev_id);*/
|
||||
static int grab_drive(struct floppy_state *fs, enum swim_state state,
|
||||
int interruptible);
|
||||
static void release_drive(struct floppy_state *fs);
|
||||
@ -624,7 +624,7 @@ static void xfer_timeout(unsigned long data)
|
||||
start_request(fs);
|
||||
}
|
||||
|
||||
static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t swim3_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct floppy_state *fs = (struct floppy_state *) dev_id;
|
||||
struct swim3 __iomem *sw = fs->swim3;
|
||||
@ -777,7 +777,7 @@ static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
}
|
||||
|
||||
/*
|
||||
static void fd_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static void fd_dma_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
@ -94,7 +94,7 @@ static char *drive_names[7] = {
|
||||
int swimiop_init(void);
|
||||
static void swimiop_init_request(struct swim_iop_req *);
|
||||
static int swimiop_send_request(struct swim_iop_req *);
|
||||
static void swimiop_receive(struct iop_msg *, struct pt_regs *);
|
||||
static void swimiop_receive(struct iop_msg *);
|
||||
static void swimiop_status_update(int, struct swim_drvstatus *);
|
||||
static int swimiop_eject(struct floppy_state *fs);
|
||||
|
||||
@ -257,7 +257,7 @@ static int swimiop_send_request(struct swim_iop_req *req)
|
||||
* 2. An unsolicited message was received from the IOP.
|
||||
*/
|
||||
|
||||
void swimiop_receive(struct iop_msg *msg, struct pt_regs *regs)
|
||||
void swimiop_receive(struct iop_msg *msg)
|
||||
{
|
||||
struct swim_iop_req *req;
|
||||
struct swimmsg_status *sm;
|
||||
|
@ -1200,7 +1200,7 @@ static inline void carm_handle_responses(struct carm_host *host)
|
||||
host->resp_idx += work;
|
||||
}
|
||||
|
||||
static irqreturn_t carm_interrupt(int irq, void *__host, struct pt_regs *regs)
|
||||
static irqreturn_t carm_interrupt(int irq, void *__host)
|
||||
{
|
||||
struct carm_host *host = __host;
|
||||
void __iomem *mmio;
|
||||
|
@ -362,7 +362,7 @@ static void ub_end_rq(struct request *rq, unsigned int status);
|
||||
static int ub_rw_cmd_retry(struct ub_dev *sc, struct ub_lun *lun,
|
||||
struct ub_request *urq, struct ub_scsi_cmd *cmd);
|
||||
static int ub_submit_scsi(struct ub_dev *sc, struct ub_scsi_cmd *cmd);
|
||||
static void ub_urb_complete(struct urb *urb, struct pt_regs *pt);
|
||||
static void ub_urb_complete(struct urb *urb);
|
||||
static void ub_scsi_action(unsigned long _dev);
|
||||
static void ub_scsi_dispatch(struct ub_dev *sc);
|
||||
static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd);
|
||||
@ -959,7 +959,7 @@ static void ub_urb_timeout(unsigned long arg)
|
||||
* the sc->lock taken) and from an interrupt (while we do NOT have
|
||||
* the sc->lock taken). Therefore, bounce this off to a tasklet.
|
||||
*/
|
||||
static void ub_urb_complete(struct urb *urb, struct pt_regs *pt)
|
||||
static void ub_urb_complete(struct urb *urb)
|
||||
{
|
||||
struct ub_dev *sc = urb->context;
|
||||
|
||||
@ -1923,7 +1923,7 @@ err_alloc:
|
||||
|
||||
/*
|
||||
*/
|
||||
static void ub_probe_urb_complete(struct urb *urb, struct pt_regs *pt)
|
||||
static void ub_probe_urb_complete(struct urb *urb)
|
||||
{
|
||||
struct completion *cop = urb->context;
|
||||
complete(cop);
|
||||
|
@ -571,7 +571,7 @@ static int mm_make_request(request_queue_t *q, struct bio *bio)
|
||||
-- mm_interrupt
|
||||
-----------------------------------------------------------------------------------
|
||||
*/
|
||||
static irqreturn_t mm_interrupt(int irq, void *__card, struct pt_regs *regs)
|
||||
static irqreturn_t mm_interrupt(int irq, void *__card)
|
||||
{
|
||||
struct cardinfo *card = (struct cardinfo *) __card;
|
||||
unsigned int dma_status;
|
||||
|
@ -462,8 +462,7 @@ static void xd_recalibrate (u_char drive)
|
||||
}
|
||||
|
||||
/* xd_interrupt_handler: interrupt service routine */
|
||||
static irqreturn_t xd_interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *regs)
|
||||
static irqreturn_t xd_interrupt_handler(int irq, void *dev_id)
|
||||
{
|
||||
if (inb(XD_STATUS) & STAT_INTERRUPT) { /* check if it was our device */
|
||||
#ifdef DEBUG_OTHER
|
||||
|
@ -109,8 +109,7 @@ static int xd_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsi
|
||||
static int xd_readwrite (u_char operation,XD_INFO *disk,char *buffer,u_int block,u_int count);
|
||||
static void xd_recalibrate (u_char drive);
|
||||
|
||||
static irqreturn_t xd_interrupt_handler(int irq, void *dev_id,
|
||||
struct pt_regs *regs);
|
||||
static irqreturn_t xd_interrupt_handler(int irq, void *dev_id);
|
||||
static u_char xd_setup_dma (u_char opcode,u_char *buffer,u_int count);
|
||||
static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control);
|
||||
static void xd_watchdog (unsigned long unused);
|
||||
|
@ -82,7 +82,7 @@ struct bcm203x_data {
|
||||
unsigned int fw_sent;
|
||||
};
|
||||
|
||||
static void bcm203x_complete(struct urb *urb, struct pt_regs *regs)
|
||||
static void bcm203x_complete(struct urb *urb)
|
||||
{
|
||||
struct bcm203x_data *data = urb->context;
|
||||
struct usb_device *udev = urb->dev;
|
||||
|
@ -95,8 +95,8 @@ struct bfusb_data_scb {
|
||||
struct urb *urb;
|
||||
};
|
||||
|
||||
static void bfusb_tx_complete(struct urb *urb, struct pt_regs *regs);
|
||||
static void bfusb_rx_complete(struct urb *urb, struct pt_regs *regs);
|
||||
static void bfusb_tx_complete(struct urb *urb);
|
||||
static void bfusb_rx_complete(struct urb *urb);
|
||||
|
||||
static struct urb *bfusb_get_completed(struct bfusb_data *data)
|
||||
{
|
||||
@ -190,7 +190,7 @@ static void bfusb_tx_wakeup(struct bfusb_data *data)
|
||||
clear_bit(BFUSB_TX_PROCESS, &data->state);
|
||||
}
|
||||
|
||||
static void bfusb_tx_complete(struct urb *urb, struct pt_regs *regs)
|
||||
static void bfusb_tx_complete(struct urb *urb)
|
||||
{
|
||||
struct sk_buff *skb = (struct sk_buff *) urb->context;
|
||||
struct bfusb_data *data = (struct bfusb_data *) skb->dev;
|
||||
@ -349,7 +349,7 @@ static inline int bfusb_recv_block(struct bfusb_data *data, int hdr, unsigned ch
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void bfusb_rx_complete(struct urb *urb, struct pt_regs *regs)
|
||||
static void bfusb_rx_complete(struct urb *urb)
|
||||
{
|
||||
struct sk_buff *skb = (struct sk_buff *) urb->context;
|
||||
struct bfusb_data *data = (struct bfusb_data *) skb->dev;
|
||||
|
@ -497,7 +497,7 @@ static void bluecard_receive(bluecard_info_t *info, unsigned int offset)
|
||||
}
|
||||
|
||||
|
||||
static irqreturn_t bluecard_interrupt(int irq, void *dev_inst, struct pt_regs *regs)
|
||||
static irqreturn_t bluecard_interrupt(int irq, void *dev_inst)
|
||||
{
|
||||
bluecard_info_t *info = dev_inst;
|
||||
unsigned int iobase;
|
||||
|
@ -263,7 +263,7 @@ static void bpa10x_wakeup(struct bpa10x_data *data)
|
||||
}
|
||||
}
|
||||
|
||||
static void bpa10x_complete(struct urb *urb, struct pt_regs *regs)
|
||||
static void bpa10x_complete(struct urb *urb)
|
||||
{
|
||||
struct bpa10x_data *data = urb->context;
|
||||
unsigned char *buf = urb->transfer_buffer;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user