Commit fb7a0e36 authored by Linus Torvalds's avatar Linus Torvalds

Merge kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git

Do arch/ia64/defconfig by hand.
parents 4e93d3e8 29516d75
...@@ -220,7 +220,7 @@ config IOSAPIC ...@@ -220,7 +220,7 @@ config IOSAPIC
config IA64_SGI_SN_SIM config IA64_SGI_SN_SIM
bool "SGI Medusa Simulator Support" bool "SGI Medusa Simulator Support"
depends on IA64_SGI_SN2 depends on IA64_SGI_SN2 || IA64_GENERIC
help help
If you are compiling a kernel that will run under SGI's IA-64 If you are compiling a kernel that will run under SGI's IA-64
simulator (Medusa) then say Y, otherwise say N. simulator (Medusa) then say Y, otherwise say N.
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.12-rc3 # Linux kernel version: 2.6.12-20050621
# Tue May 3 15:55:04 2005 # Tue Jun 21 14:03:24 2005
# #
# #
...@@ -67,6 +67,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y ...@@ -67,6 +67,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_TIME_INTERPOLATION=y CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y CONFIG_EFI=y
CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IOMAP=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
# CONFIG_IA64_GENERIC is not set # CONFIG_IA64_GENERIC is not set
CONFIG_IA64_DIG=y CONFIG_IA64_DIG=y
# CONFIG_IA64_HP_ZX1 is not set # CONFIG_IA64_HP_ZX1 is not set
...@@ -285,6 +286,7 @@ CONFIG_CHR_DEV_ST=m ...@@ -285,6 +286,7 @@ CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set # CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
# #
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
...@@ -313,11 +315,8 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -313,11 +315,8 @@ CONFIG_SCSI_FC_ATTRS=y
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set # CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set # CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_INIA100 is not set
...@@ -366,8 +365,10 @@ CONFIG_DM_ZERO=m ...@@ -366,8 +365,10 @@ CONFIG_DM_ZERO=m
# Fusion MPT device support # Fusion MPT device support
# #
CONFIG_FUSION=y CONFIG_FUSION=y
CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_SPI=y
# CONFIG_FUSION_CTL is not set CONFIG_FUSION_FC=y
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=y
# #
# IEEE 1394 (FireWire) support # IEEE 1394 (FireWire) support
...@@ -506,9 +507,11 @@ CONFIG_E1000=y ...@@ -506,9 +507,11 @@ CONFIG_E1000=y
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set # CONFIG_R8169 is not set
# CONFIG_SKGE is not set
# CONFIG_SK98LIN is not set # CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set # CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y CONFIG_TIGON3=y
# CONFIG_BNX2 is not set
# #
# Ethernet (10000 Mbit) # Ethernet (10000 Mbit)
...@@ -598,7 +601,6 @@ CONFIG_GAMEPORT=m ...@@ -598,7 +601,6 @@ CONFIG_GAMEPORT=m
# CONFIG_GAMEPORT_VORTEX is not set # CONFIG_GAMEPORT_VORTEX is not set
# CONFIG_GAMEPORT_FM801 is not set # CONFIG_GAMEPORT_FM801 is not set
# CONFIG_GAMEPORT_CS461X is not set # CONFIG_GAMEPORT_CS461X is not set
CONFIG_SOUND_GAMEPORT=m
# #
# Character devices # Character devices
...@@ -611,7 +613,6 @@ CONFIG_SERIAL_NONSTANDARD=y ...@@ -611,7 +613,6 @@ CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_CYCLADES is not set # CONFIG_CYCLADES is not set
# CONFIG_MOXA_SMARTIO is not set # CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not set # CONFIG_ISI is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set # CONFIG_SYNCLINKMP is not set
# CONFIG_N_HDLC is not set # CONFIG_N_HDLC is not set
# CONFIG_SPECIALIX is not set # CONFIG_SPECIALIX is not set
......
This diff is collapsed.
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
.spillsp @priunat,SW(AR_UNAT)+16+(off); \ .spillsp @priunat,SW(AR_UNAT)+16+(off); \
.spillsp ar.rnat,SW(AR_RNAT)+16+(off); \ .spillsp ar.rnat,SW(AR_RNAT)+16+(off); \
.spillsp ar.bspstore,SW(AR_BSPSTORE)+16+(off); \ .spillsp ar.bspstore,SW(AR_BSPSTORE)+16+(off); \
.spillsp pr,SW(PR)+16+(off)) .spillsp pr,SW(PR)+16+(off)
#define DO_SAVE_SWITCH_STACK \ #define DO_SAVE_SWITCH_STACK \
movl r28=1f; \ movl r28=1f; \
......
...@@ -405,17 +405,22 @@ ENTRY(nested_dtlb_miss) ...@@ -405,17 +405,22 @@ ENTRY(nested_dtlb_miss)
* r30: continuation address * r30: continuation address
* r31: saved pr * r31: saved pr
* *
* Clobbered: b0, r18, r19, r21, psr.dt (cleared) * Clobbered: b0, r18, r19, r21, r22, psr.dt (cleared)
*/ */
rsm psr.dt // switch to using physical data addressing rsm psr.dt // switch to using physical data addressing
mov r19=IA64_KR(PT_BASE) // get the page table base address mov r19=IA64_KR(PT_BASE) // get the page table base address
shl r21=r16,3 // shift bit 60 into sign bit shl r21=r16,3 // shift bit 60 into sign bit
mov r18=cr.itir
;; ;;
shr.u r17=r16,61 // get the region number into r17 shr.u r17=r16,61 // get the region number into r17
extr.u r18=r18,2,6 // get the faulting page size
;; ;;
cmp.eq p6,p7=5,r17 // is faulting address in region 5? cmp.eq p6,p7=5,r17 // is faulting address in region 5?
shr.u r18=r16,PGDIR_SHIFT // get bits 33-63 of faulting address add r22=-PAGE_SHIFT,r18 // adjustment for hugetlb address
add r18=PGDIR_SHIFT-PAGE_SHIFT,r18
;; ;;
shr.u r22=r16,r22
shr.u r18=r16,r18
(p7) dep r17=r17,r19,(PAGE_SHIFT-3),3 // put region number bits in place (p7) dep r17=r17,r19,(PAGE_SHIFT-3),3 // put region number bits in place
srlz.d srlz.d
...@@ -428,7 +433,7 @@ ENTRY(nested_dtlb_miss) ...@@ -428,7 +433,7 @@ ENTRY(nested_dtlb_miss)
(p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=PTA + IFA(33,42)*8 (p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=PTA + IFA(33,42)*8
(p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=PTA + (((IFA(61,63) << 7) | IFA(33,39))*8) (p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=PTA + (((IFA(61,63) << 7) | IFA(33,39))*8)
cmp.eq p7,p6=0,r21 // unused address bits all zeroes? cmp.eq p7,p6=0,r21 // unused address bits all zeroes?
shr.u r18=r16,PMD_SHIFT // shift L2 index into position shr.u r18=r22,PMD_SHIFT // shift L2 index into position
;; ;;
ld8 r17=[r17] // fetch the L1 entry (may be 0) ld8 r17=[r17] // fetch the L1 entry (may be 0)
;; ;;
...@@ -436,7 +441,7 @@ ENTRY(nested_dtlb_miss) ...@@ -436,7 +441,7 @@ ENTRY(nested_dtlb_miss)
dep r17=r18,r17,3,(PAGE_SHIFT-3) // compute address of L2 page table entry dep r17=r18,r17,3,(PAGE_SHIFT-3) // compute address of L2 page table entry
;; ;;
(p7) ld8 r17=[r17] // fetch the L2 entry (may be 0) (p7) ld8 r17=[r17] // fetch the L2 entry (may be 0)
shr.u r19=r16,PAGE_SHIFT // shift L3 index into position shr.u r19=r22,PAGE_SHIFT // shift L3 index into position
;; ;;
(p7) cmp.eq.or.andcm p6,p7=r17,r0 // was L2 entry NULL? (p7) cmp.eq.or.andcm p6,p7=r17,r0 // was L2 entry NULL?
dep r17=r19,r17,3,(PAGE_SHIFT-3) // compute address of L3 page table entry dep r17=r19,r17,3,(PAGE_SHIFT-3) // compute address of L3 page table entry
......
...@@ -945,6 +945,13 @@ access_uarea (struct task_struct *child, unsigned long addr, ...@@ -945,6 +945,13 @@ access_uarea (struct task_struct *child, unsigned long addr,
*data = (pt->cr_ipsr & IPSR_MASK); *data = (pt->cr_ipsr & IPSR_MASK);
return 0; return 0;
case PT_AR_RSC:
if (write_access)
pt->ar_rsc = *data | (3 << 2); /* force PL3 */
else
*data = pt->ar_rsc;
return 0;
case PT_AR_RNAT: case PT_AR_RNAT:
urbs_end = ia64_get_user_rbs_end(child, pt, NULL); urbs_end = ia64_get_user_rbs_end(child, pt, NULL);
rnat_addr = (long) ia64_rse_rnat_addr((long *) rnat_addr = (long) ia64_rse_rnat_addr((long *)
...@@ -996,9 +1003,6 @@ access_uarea (struct task_struct *child, unsigned long addr, ...@@ -996,9 +1003,6 @@ access_uarea (struct task_struct *child, unsigned long addr,
case PT_AR_BSPSTORE: case PT_AR_BSPSTORE:
ptr = pt_reg_addr(pt, ar_bspstore); ptr = pt_reg_addr(pt, ar_bspstore);
break; break;
case PT_AR_RSC:
ptr = pt_reg_addr(pt, ar_rsc);
break;
case PT_AR_UNAT: case PT_AR_UNAT:
ptr = pt_reg_addr(pt, ar_unat); ptr = pt_reg_addr(pt, ar_unat);
break; break;
...@@ -1234,7 +1238,7 @@ ptrace_getregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) ...@@ -1234,7 +1238,7 @@ ptrace_getregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
static long static long
ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
{ {
unsigned long psr, ec, lc, rnat, bsp, cfm, nat_bits, val = 0; unsigned long psr, rsc, ec, lc, rnat, bsp, cfm, nat_bits, val = 0;
struct unw_frame_info info; struct unw_frame_info info;
struct switch_stack *sw; struct switch_stack *sw;
struct ia64_fpreg fpval; struct ia64_fpreg fpval;
...@@ -1267,7 +1271,7 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) ...@@ -1267,7 +1271,7 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
/* app regs */ /* app regs */
retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]); retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]);
retval |= __get_user(pt->ar_rsc, &ppr->ar[PT_AUR_RSC]); retval |= __get_user(rsc, &ppr->ar[PT_AUR_RSC]);
retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]); retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]);
retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]); retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]);
retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]); retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]);
...@@ -1365,6 +1369,7 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) ...@@ -1365,6 +1369,7 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
retval |= __get_user(nat_bits, &ppr->nat); retval |= __get_user(nat_bits, &ppr->nat);
retval |= access_uarea(child, PT_CR_IPSR, &psr, 1); retval |= access_uarea(child, PT_CR_IPSR, &psr, 1);
retval |= access_uarea(child, PT_AR_RSC, &rsc, 1);
retval |= access_uarea(child, PT_AR_EC, &ec, 1); retval |= access_uarea(child, PT_AR_EC, &ec, 1);
retval |= access_uarea(child, PT_AR_LC, &lc, 1); retval |= access_uarea(child, PT_AR_LC, &lc, 1);
retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1); retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1);
......
...@@ -94,7 +94,7 @@ sys_sigaltstack (const stack_t __user *uss, stack_t __user *uoss, long arg2, ...@@ -94,7 +94,7 @@ sys_sigaltstack (const stack_t __user *uss, stack_t __user *uoss, long arg2,
static long static long
restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
{ {
unsigned long ip, flags, nat, um, cfm; unsigned long ip, flags, nat, um, cfm, rsc;
long err; long err;
/* Always make any pending restarted system calls return -EINTR */ /* Always make any pending restarted system calls return -EINTR */
...@@ -106,7 +106,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) ...@@ -106,7 +106,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
err |= __get_user(ip, &sc->sc_ip); /* instruction pointer */ err |= __get_user(ip, &sc->sc_ip); /* instruction pointer */
err |= __get_user(cfm, &sc->sc_cfm); err |= __get_user(cfm, &sc->sc_cfm);
err |= __get_user(um, &sc->sc_um); /* user mask */ err |= __get_user(um, &sc->sc_um); /* user mask */
err |= __get_user(scr->pt.ar_rsc, &sc->sc_ar_rsc); err |= __get_user(rsc, &sc->sc_ar_rsc);
err |= __get_user(scr->pt.ar_unat, &sc->sc_ar_unat); err |= __get_user(scr->pt.ar_unat, &sc->sc_ar_unat);
err |= __get_user(scr->pt.ar_fpsr, &sc->sc_ar_fpsr); err |= __get_user(scr->pt.ar_fpsr, &sc->sc_ar_fpsr);
err |= __get_user(scr->pt.ar_pfs, &sc->sc_ar_pfs); err |= __get_user(scr->pt.ar_pfs, &sc->sc_ar_pfs);
...@@ -119,6 +119,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) ...@@ -119,6 +119,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
err |= __copy_from_user(&scr->pt.r15, &sc->sc_gr[15], 8); /* r15 */ err |= __copy_from_user(&scr->pt.r15, &sc->sc_gr[15], 8); /* r15 */
scr->pt.cr_ifs = cfm | (1UL << 63); scr->pt.cr_ifs = cfm | (1UL << 63);
scr->pt.ar_rsc = rsc | (3 << 2); /* force PL3 */
/* establish new instruction pointer: */ /* establish new instruction pointer: */
scr->pt.cr_iip = ip & ~0x3UL; scr->pt.cr_iip = ip & ~0x3UL;
......
...@@ -269,7 +269,7 @@ smp_call_function_single (int cpuid, void (*func) (void *info), void *info, int ...@@ -269,7 +269,7 @@ smp_call_function_single (int cpuid, void (*func) (void *info), void *info, int
int me = get_cpu(); /* prevent preemption and reschedule on another processor */ int me = get_cpu(); /* prevent preemption and reschedule on another processor */
if (cpuid == me) { if (cpuid == me) {
printk("%s: trying to call self\n", __FUNCTION__); printk(KERN_INFO "%s: trying to call self\n", __FUNCTION__);
put_cpu(); put_cpu();
return -EBUSY; return -EBUSY;
} }
......
...@@ -33,8 +33,6 @@ ...@@ -33,8 +33,6 @@
#include <asm/hw_irq.h> #include <asm/hw_irq.h>
static int pci_routeirq;
/* /*
* Low-level SAL-based PCI configuration access functions. Note that SAL * Low-level SAL-based PCI configuration access functions. Note that SAL
* calls are already serialized (via sal_lock), so we don't need another * calls are already serialized (via sal_lock), so we don't need another
...@@ -139,24 +137,8 @@ static void acpi_map_iosapics(void) ...@@ -139,24 +137,8 @@ static void acpi_map_iosapics(void)
static int __init static int __init
pci_acpi_init (void) pci_acpi_init (void)
{ {
struct pci_dev *dev = NULL;
printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n");
acpi_map_iosapics(); acpi_map_iosapics();
if (pci_routeirq) {
/*
* PCI IRQ routing is set up by pci_enable_device(), but we
* also do it here in case there are still broken drivers that
* don't use pci_enable_device().
*/
printk(KERN_INFO "PCI: Routing interrupts for all devices because \"pci=routeirq\" specified\n");
for_each_pci_dev(dev)
acpi_pci_irq_enable(dev);
} else
printk(KERN_INFO "PCI: If a device doesn't work, try \"pci=routeirq\". If it helps, post a report\n");
return 0; return 0;
} }
...@@ -500,8 +482,6 @@ pcibios_align_resource (void *data, struct resource *res, ...@@ -500,8 +482,6 @@ pcibios_align_resource (void *data, struct resource *res,
char * __init char * __init
pcibios_setup (char *str) pcibios_setup (char *str)
{ {
if (!strcmp(str, "routeirq"))
pci_routeirq = 1;
return NULL; return NULL;
} }
......
...@@ -315,7 +315,7 @@ extern struct efi_memory_map memmap; ...@@ -315,7 +315,7 @@ extern struct efi_memory_map memmap;
*/ */
static inline int efi_range_is_wc(unsigned long start, unsigned long len) static inline int efi_range_is_wc(unsigned long start, unsigned long len)
{ {
int i; unsigned long i;
for (i = 0; i < len; i += (1UL << EFI_PAGE_SHIFT)) { for (i = 0; i < len; i += (1UL << EFI_PAGE_SHIFT)) {
unsigned long paddr = __pa(start + i); unsigned long paddr = __pa(start + i);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment