Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: [PATCH] i386: fix rwsem build bug on CONFIG_M386=y [PATCH] x86-64: Annotate interrupt frame backlink in interrupt handlers [PATCH] x86-64: Fix FPU corruption [PATCH] x86: Terminate the kernel stacks for the unwinder [PATCH] i386: Fix PCI BIOS config space access [PATCH] x86-64: Calgary IOMMU: print PCI bus numbers in hex [PATCH] x86-64: Calgary IOMMU: Update Jon's contact info [PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location [PATCH] x86-64: Calgary IOMMU: deobfuscate calgary_init [PATCH] i386: Update defconfig [PATCH] x86-64: Update defconfig [ Manually skipped commits that incorrectly ignored AC in kernel space. The alignment fault is defined to only happen for CPL3 anyway - Linus ]
This commit is contained in:
commit
e03508b43f
10 changed files with 118 additions and 34 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 @@ static int __init calgary_init_one(struct pci_dev *dev)
|
|||
|
||||
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 @@ static int __init calgary_init(void)
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue