Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
521f6006
Commit
521f6006
authored
Jun 16, 2004
by
David Mosberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge tiger.hpl.hp.com:/data1/bk/vanilla/linux-2.5
into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5
parents
adf791bd
83454d6b
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
775 additions
and
124 deletions
+775
-124
arch/ia64/Kconfig
arch/ia64/Kconfig
+0
-14
arch/ia64/configs/sn2_defconfig
arch/ia64/configs/sn2_defconfig
+51
-55
arch/ia64/defconfig
arch/ia64/defconfig
+17
-6
arch/ia64/ia32/binfmt_elf32.c
arch/ia64/ia32/binfmt_elf32.c
+4
-0
arch/ia64/ia32/ia32_entry.S
arch/ia64/ia32/ia32_entry.S
+1
-1
arch/ia64/ia32/ia32_support.c
arch/ia64/ia32/ia32_support.c
+12
-0
arch/ia64/ia32/ia32priv.h
arch/ia64/ia32/ia32priv.h
+32
-4
arch/ia64/ia32/sys_ia32.c
arch/ia64/ia32/sys_ia32.c
+526
-4
arch/ia64/kernel/entry.S
arch/ia64/kernel/entry.S
+4
-2
arch/ia64/kernel/head.S
arch/ia64/kernel/head.S
+5
-1
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+8
-0
arch/ia64/kernel/palinfo.c
arch/ia64/kernel/palinfo.c
+2
-2
arch/ia64/kernel/process.c
arch/ia64/kernel/process.c
+8
-0
arch/ia64/kernel/unwind.c
arch/ia64/kernel/unwind.c
+20
-15
arch/ia64/mm/discontig.c
arch/ia64/mm/discontig.c
+3
-0
arch/ia64/sn/io/machvec/pci_bus_cvlink.c
arch/ia64/sn/io/machvec/pci_bus_cvlink.c
+2
-2
arch/ia64/sn/io/sn2/klgraph.c
arch/ia64/sn/io/sn2/klgraph.c
+2
-2
arch/ia64/sn/io/sn2/module.c
arch/ia64/sn/io/sn2/module.c
+7
-7
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+22
-1
include/asm-ia64/ia32.h
include/asm-ia64/ia32.h
+9
-1
include/asm-ia64/pgtable.h
include/asm-ia64/pgtable.h
+1
-5
include/asm-ia64/processor.h
include/asm-ia64/processor.h
+4
-1
include/asm-ia64/sn/module.h
include/asm-ia64/sn/module.h
+1
-1
include/asm-ia64/sn/sn_sal.h
include/asm-ia64/sn/sn_sal.h
+34
-0
No files found.
arch/ia64/Kconfig
View file @
521f6006
...
...
@@ -149,20 +149,6 @@ config IA64_L1_CACHE_SHIFT
default "6" if ITANIUM
# align cache-sensitive data to 64 bytes
config MCKINLEY_ASTEP_SPECIFIC
bool "McKinley A-step specific code"
depends on MCKINLEY
help
Select this option to build a kernel for an IA-64 McKinley prototype
system with any A-stepping CPU.
config MCKINLEY_A0_SPECIFIC
bool "McKinley A0/A1-step specific code"
depends on MCKINLEY_ASTEP_SPECIFIC
help
Select this option to build a kernel for an IA-64 McKinley prototype
system with an A0 or A1 stepping CPU.
config NUMA
bool "NUMA support"
depends on !IA64_HP_SIM
...
...
arch/ia64/configs/sn2_defconfig
View file @
521f6006
...
...
@@ -14,18 +14,22 @@ CONFIG_STANDALONE=y
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=20
CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
...
...
@@ -60,7 +64,6 @@ CONFIG_MCKINLEY=y
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
CONFIG_IA64_L1_CACHE_SHIFT=7
# CONFIG_MCKINLEY_ASTEP_SPECIFIC is not set
CONFIG_NUMA=y
CONFIG_VIRTUAL_MEM_MAP=y
CONFIG_DISCONTIGMEM=y
...
...
@@ -70,12 +73,17 @@ CONFIG_IA64_SGI_SN_SIM=y
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=512
# CONFIG_HOTPLUG_CPU is not set
# CONFIG_PREEMPT is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y
#
# Firmware Drivers
#
CONFIG_EFI_VARS=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
...
...
@@ -105,6 +113,7 @@ CONFIG_ACPI_SYSTEM=y
#
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_USE_VECTOR is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
...
...
@@ -174,7 +183,6 @@ CONFIG_BLK_DEV_IDE=y
#
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=y
...
...
@@ -218,6 +226,7 @@ CONFIG_BLK_DEV_SGIIOC4=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
...
...
@@ -243,7 +252,6 @@ CONFIG_CHR_DEV_SG=m
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_REPORT_LUNS=y
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
...
...
@@ -281,7 +289,9 @@ CONFIG_SCSI_SATA=y
CONFIG_SCSI_SATA_SVW=m
CONFIG_SCSI_ATA_PIIX=m
CONFIG_SCSI_SATA_PROMISE=m
# CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SIL is not set
# CONFIG_SCSI_SATA_SIS is not set
CONFIG_SCSI_SATA_VIA=m
CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_BUSLOGIC is not set
...
...
@@ -298,6 +308,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=y
...
...
@@ -343,6 +354,7 @@ CONFIG_FUSION_CTL=m
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Networking support
...
...
@@ -389,8 +401,6 @@ CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_DECNET is not set
CONFIG_BRIDGE=m
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
...
...
@@ -452,6 +462,7 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
# CONFIG_IP_NF_RAW is not set
#
# IPv6: Netfilter Configuration
...
...
@@ -471,7 +482,9 @@ CONFIG_XFRM_USER=m
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
...
...
@@ -516,18 +529,25 @@ CONFIG_NET_CLS_POLICE=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
# CONFIG_ETHERTAP is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -582,7 +602,6 @@ CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
CONFIG_SIS190=m
CONFIG_SK98LIN=m
CONFIG_TIGON3=y
...
...
@@ -591,6 +610,22 @@ CONFIG_TIGON3=y
#
CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
...
...
@@ -602,44 +637,10 @@ CONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
CONFIG_NET_FC=y
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
#
# ISDN subsystem
#
...
...
@@ -703,6 +704,7 @@ CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_N_HDLC is not set
...
...
@@ -713,18 +715,11 @@ CONFIG_SGI_L1_SERIAL_CONSOLE=y
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_HCDP=y
CONFIG_SERIAL_8250_ACPI=y
CONFIG_SERIAL_8250_NR_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
...
...
@@ -740,7 +735,6 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_GEN_RTC is not set
CONFIG_EFI_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
...
...
@@ -852,6 +846,7 @@ CONFIG_VFAT_FS=y
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
...
...
@@ -897,7 +892,6 @@ CONFIG_SMB_FS=m
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
...
...
@@ -968,6 +962,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# Library routines
#
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
...
...
@@ -1019,4 +1014,5 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_ARC4 is not set
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set
arch/ia64/defconfig
View file @
521f6006
...
...
@@ -26,6 +26,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
...
...
@@ -66,7 +67,6 @@ CONFIG_MCKINLEY=y
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
CONFIG_IA64_L1_CACHE_SHIFT=7
# CONFIG_MCKINLEY_ASTEP_SPECIFIC is not set
# CONFIG_NUMA is not set
CONFIG_VIRTUAL_MEM_MAP=y
# CONFIG_IA64_CYCLONE is not set
...
...
@@ -74,6 +74,7 @@ CONFIG_IOSAPIC=y
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=16
# CONFIG_HOTPLUG_CPU is not set
# CONFIG_PREEMPT is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
...
...
@@ -178,7 +179,6 @@ CONFIG_BLK_DEV_IDE=y
#
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=m
...
...
@@ -220,6 +220,7 @@ CONFIG_BLK_DEV_SIIMAGE=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
...
...
@@ -245,7 +246,6 @@ CONFIG_CHR_DEV_SG=y
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_REPORT_LUNS=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
...
...
@@ -282,6 +282,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
...
...
@@ -328,6 +329,7 @@ CONFIG_FUSION_MAX_SGE=40
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Networking support
...
...
@@ -573,7 +575,12 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
#
# Watchdog Cards
...
...
@@ -651,6 +658,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83L785TS is not set
...
...
@@ -662,6 +670,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
...
...
@@ -688,6 +697,7 @@ CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_RIVA=m
# CONFIG_FB_MATROX is not set
...
...
@@ -852,6 +862,7 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
...
...
@@ -901,6 +912,7 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_TEST is not set
#
...
...
@@ -998,7 +1010,6 @@ CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
...
...
@@ -1083,7 +1094,7 @@ CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_IA64_PRINT_HAZARDS=y
CONFIG_DISABLE_VHPT=y
# CONFIG_DISABLE_VHPT is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_IA64_EARLY_PRINTK_VGA is not set
# CONFIG_DEBUG_SLAB is not set
...
...
arch/ia64/ia32/binfmt_elf32.c
View file @
521f6006
...
...
@@ -197,6 +197,10 @@ ia32_setup_arg_pages (struct linux_binprm *bprm, int executable_stack)
}
up_write
(
&
current
->
mm
->
mmap_sem
);
/* Can't do it in ia64_elf32_init(). Needs to be done before calls to
elf32_map() */
current
->
thread
.
ppl
=
ia32_init_pp_list
();
return
0
;
}
...
...
arch/ia64/ia32/ia32_entry.S
View file @
521f6006
...
...
@@ -371,7 +371,7 @@ ia32_syscall_table:
data8
sys_sched_get_priority_min
/*
160
*/
data8
sys32_sched_rr_get_interval
data8
compat_sys_nanosleep
data8
sys_mremap
data8
sys
32
_mremap
data8
sys_setresuid
/*
16
-
bit
version
*/
data8
sys32_getresuid16
/*
16
-
bit
version
*/
/*
165
*/
data8
sys_ni_syscall
/*
vm86
*/
...
...
arch/ia64/ia32/ia32_support.c
View file @
521f6006
...
...
@@ -218,6 +218,18 @@ ia32_init (void)
ia32_exec_domain
.
signal_map
=
default_exec_domain
.
signal_map
;
ia32_exec_domain
.
signal_invmap
=
default_exec_domain
.
signal_invmap
;
register_exec_domain
(
&
ia32_exec_domain
);
#if PAGE_SHIFT > IA32_PAGE_SHIFT
{
extern
kmem_cache_t
*
partial_page_cachep
;
partial_page_cachep
=
kmem_cache_create
(
"partial_page_cache"
,
sizeof
(
struct
partial_page
),
0
,
0
,
NULL
,
NULL
);
if
(
!
partial_page_cachep
)
panic
(
"Cannot create partial page SLAB cache"
);
}
#endif
return
0
;
}
...
...
arch/ia64/ia32/ia32priv.h
View file @
521f6006
#ifndef _ASM_IA64_IA32_H
#define _ASM_IA64_IA32_H
#ifndef _ASM_IA64_IA32_
PRIV_
H
#define _ASM_IA64_IA32_
PRIV_
H
#include <linux/config.h>
...
...
@@ -9,6 +9,7 @@
#include <linux/binfmts.h>
#include <linux/compat.h>
#include <linux/rbtree.h>
#include <asm/processor.h>
...
...
@@ -16,12 +17,39 @@
* 32 bit structures for IA32 support.
*/
#define IA32_PAGE_SHIFT 12
/* 4KB pages */
#define IA32_PAGE_SIZE (1UL << IA32_PAGE_SHIFT)
#define IA32_PAGE_MASK (~(IA32_PAGE_SIZE - 1))
#define IA32_PAGE_ALIGN(addr) (((addr) + IA32_PAGE_SIZE - 1) & IA32_PAGE_MASK)
#define IA32_CLOCKS_PER_SEC 100
/* Cast in stone for IA32 Linux */
/*
* partially mapped pages provide precise accounting of which 4k sub pages
* are mapped and which ones are not, thereby improving IA-32 compatibility.
*/
struct
partial_page
{
struct
partial_page
*
next
;
/* linked list, sorted by address */
struct
rb_node
pp_rb
;
/* 64K is the largest "normal" page supported by ia64 ABI. So 4K*32
* should suffice.*/
unsigned
int
bitmap
;
unsigned
int
base
;
};
struct
partial_page_list
{
struct
partial_page
*
pp_head
;
/* list head, points to the lowest
* addressed partial page */
struct
rb_root
ppl_rb
;
struct
partial_page
*
pp_hint
;
/* pp_hint->next is the last
* accessed partial page */
atomic_t
pp_count
;
/* reference count */
};
#if PAGE_SHIFT > IA32_PAGE_SHIFT
struct
partial_page_list
*
ia32_init_pp_list
(
void
);
#else
# define ia32_init_pp_list() 0
#endif
/* sigcontext.h */
/*
* As documented in the iBCS2 standard..
...
...
@@ -528,4 +556,4 @@ extern int save_ia32_fpxstate (struct task_struct *tsk, struct ia32_user_fxsr_st
#endif
/* !CONFIG_IA32_SUPPORT */
#endif
/* _ASM_IA64_IA32_H */
#endif
/* _ASM_IA64_IA32_
PRIV_
H */
arch/ia64/ia32/sys_ia32.c
View file @
521f6006
This diff is collapsed.
Click to expand it.
arch/ia64/kernel/entry.S
View file @
521f6006
...
...
@@ -179,17 +179,19 @@ GLOBAL_ENTRY(ia64_switch_to)
.
body
adds
r22
=
IA64_TASK_THREAD_KSP_OFFSET
,
r13
movl
r25
=
init_task
mov
r27
=
IA64_KR
(
CURRENT_STACK
)
adds
r21
=
IA64_TASK_THREAD_KSP_OFFSET
,
in0
dep
r20
=
0
,
in0
,
61
,
3
//
physical
address
of
"current"
;;
st8
[
r22
]=
sp
//
save
kernel
stack
pointer
of
old
task
shr.u
r26
=
r20
,
IA64_GRANULE_SHIFT
adds
r21
=
IA64_TASK_THREAD_KSP_OFFSET
,
in0
cmp.eq
p7
,
p6
=
r25
,
in0
;;
/
*
*
If
we
've already mapped this task'
s
page
,
we
can
skip
doing
it
again
.
*/
cmp.eq
p7
,
p6
=
r26
,
r27
(
p6
)
cmp.eq
p7
,
p6
=
r26
,
r27
(
p6
)
br.cond.dpnt
.
map
;;
.
done
:
...
...
arch/ia64/kernel/head.S
View file @
521f6006
...
...
@@ -154,6 +154,10 @@ start_ap:
#endif
;;
tpa
r3
=
r2
//
r3
==
phys
addr
of
task
struct
;;
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
(
isBP
)
br.cond.dpnt
.
load_current
//
BP
stack
is
on
region
5
---
no
need
to
map
it
//
load
mapping
for
stack
(
virtaddr
in
r2
,
physaddr
in
r3
)
rsm
psr
.
ic
movl
r17
=
PAGE_KERNEL
...
...
@@ -165,7 +169,6 @@ start_ap:
dep
r2
=-
1
,
r3
,
61
,
3
//
IMVA
of
task
;;
mov
r17
=
rr
[
r2
]
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
;;
dep
r17
=
0
,
r17
,
8
,
24
;;
...
...
@@ -180,6 +183,7 @@ start_ap:
srlz.d
;;
.
load_current
:
//
load
the
"current"
pointer
(
r13
)
and
ar
.
k6
with
the
current
task
mov
IA64_KR
(
CURRENT
)=
r2
//
virtual
address
mov
IA64_KR
(
CURRENT_STACK
)=
r16
...
...
arch/ia64/kernel/mca.c
View file @
521f6006
...
...
@@ -267,6 +267,8 @@ ia64_mca_log_sal_error_record(int sal_info_type)
*/
#ifndef PLATFORM_MCA_HANDLERS
#ifdef CONFIG_ACPI
static
irqreturn_t
ia64_mca_cpe_int_handler
(
int
cpe_irq
,
void
*
arg
,
struct
pt_regs
*
ptregs
)
{
...
...
@@ -281,6 +283,8 @@ ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
return
IRQ_HANDLED
;
}
#endif
/* CONFIG_ACPI */
static
void
show_min_state
(
pal_min_state_area_t
*
minstate
)
{
...
...
@@ -967,6 +971,8 @@ ia64_mca_cmc_poll (unsigned long dummy)
* Outputs
* handled
*/
#ifdef CONFIG_ACPI
static
irqreturn_t
ia64_mca_cpe_int_caller
(
int
cpe_irq
,
void
*
arg
,
struct
pt_regs
*
ptregs
)
{
...
...
@@ -1003,6 +1009,8 @@ ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs)
return
IRQ_HANDLED
;
}
#endif
/* CONFIG_ACPI */
/*
* ia64_mca_cpe_poll
*
...
...
arch/ia64/kernel/palinfo.c
View file @
521f6006
...
...
@@ -515,10 +515,10 @@ static const char *bus_features[]={
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
"Enable Cache Line Repl. Exclusive"
,
"Enable Cache Line Repl. Shared"
,
"Enable Cache Line Repl. Exclusive"
,
"Disable Transaction Queuing"
,
"Disable Reponse Error Checking"
,
"Disable Re
s
ponse Error Checking"
,
"Disable Bus Error Checking"
,
"Disable Bus Requester Internal Error Signalling"
,
"Disable Bus Requester Error Signalling"
,
...
...
arch/ia64/kernel/process.c
View file @
521f6006
...
...
@@ -439,6 +439,10 @@ copy_thread (int nr, unsigned long clone_flags,
ia32_save_state
(
p
);
if
(
clone_flags
&
CLONE_SETTLS
)
retval
=
ia32_clone_tls
(
p
,
child_ptregs
);
/* Copy partially mapped page list */
if
(
!
retval
)
retval
=
ia32_copy_partial_page_list
(
p
,
clone_flags
);
}
#endif
...
...
@@ -672,6 +676,8 @@ flush_thread (void)
/* drop floating-point and debug-register state if it exists: */
current
->
thread
.
flags
&=
~
(
IA64_THREAD_FPH_VALID
|
IA64_THREAD_DBG_VALID
);
ia64_drop_fpu
(
current
);
if
(
IS_IA32_PROCESS
(
ia64_task_regs
(
current
)))
ia32_drop_partial_page_list
(
current
);
}
/*
...
...
@@ -691,6 +697,8 @@ exit_thread (void)
if
(
current
->
thread
.
flags
&
IA64_THREAD_DBG_VALID
)
pfm_release_debug_registers
(
current
);
#endif
if
(
IS_IA32_PROCESS
(
ia64_task_regs
(
current
)))
ia32_drop_partial_page_list
(
current
);
}
unsigned
long
...
...
arch/ia64/kernel/unwind.c
View file @
521f6006
...
...
@@ -385,9 +385,10 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char
}
if
(
write
)
{
if
(
read_only
(
addr
))
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
);
else
{
if
(
read_only
(
addr
))
{
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
,
__FUNCTION__
);
}
else
{
*
addr
=
*
val
;
if
(
*
nat
)
*
nat_addr
|=
nat_mask
;
...
...
@@ -432,9 +433,10 @@ unw_access_br (struct unw_frame_info *info, int regnum, unsigned long *val, int
return
-
1
;
}
if
(
write
)
if
(
read_only
(
addr
))
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
);
else
if
(
read_only
(
addr
))
{
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
,
__FUNCTION__
);
}
else
*
addr
=
*
val
;
else
*
val
=
*
addr
;
...
...
@@ -480,9 +482,10 @@ unw_access_fr (struct unw_frame_info *info, int regnum, struct ia64_fpreg *val,
}
if
(
write
)
if
(
read_only
(
addr
))
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
);
else
if
(
read_only
(
addr
))
{
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
,
__FUNCTION__
);
}
else
*
addr
=
*
val
;
else
*
val
=
*
addr
;
...
...
@@ -576,9 +579,10 @@ unw_access_ar (struct unw_frame_info *info, int regnum, unsigned long *val, int
}
if
(
write
)
{
if
(
read_only
(
addr
))
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
);
else
if
(
read_only
(
addr
))
{
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
,
__FUNCTION__
);
}
else
*
addr
=
*
val
;
}
else
*
val
=
*
addr
;
...
...
@@ -596,9 +600,10 @@ unw_access_pr (struct unw_frame_info *info, unsigned long *val, int write)
addr
=
&
info
->
sw
->
pr
;
if
(
write
)
{
if
(
read_only
(
addr
))
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
);
else
if
(
read_only
(
addr
))
{
UNW_DPRINT
(
0
,
"unwind.%s: ignoring attempt to write read-only location
\n
"
,
__FUNCTION__
);
}
else
*
addr
=
*
val
;
}
else
*
val
=
*
addr
;
...
...
arch/ia64/mm/discontig.c
View file @
521f6006
...
...
@@ -154,6 +154,9 @@ static void __init reassign_cpu_only_nodes(void)
memcpy
(
numa_slit
,
numa_slit_fix
,
sizeof
(
numa_slit
));
for
(
i
=
nnode
;
i
<
numnodes
;
i
++
)
node_set_offline
(
i
);
numnodes
=
nnode
;
return
;
...
...
arch/ia64/sn/io/machvec/pci_bus_cvlink.c
View file @
521f6006
...
...
@@ -741,7 +741,7 @@ pci_bus_to_hcl_cvlink(void)
/* Is this PCI bus associated with this moduleid? */
moduleid
=
NODE_MODULEID
(
nasid_to_cnodeid
(
pcibr_soft
->
bs_nasid
));
if
(
modules
[
i
]
->
id
==
moduleid
)
{
if
(
sn_
modules
[
i
]
->
id
==
moduleid
)
{
struct
pcibr_list_s
*
new_element
;
new_element
=
kmalloc
(
sizeof
(
struct
pcibr_soft_s
),
GFP_KERNEL
);
...
...
@@ -781,7 +781,7 @@ pci_bus_to_hcl_cvlink(void)
/*
* We now have a list of all the pci bridges associated with
* the module_id, modules[i]. Call pci_bus_map_create() for
* the module_id,
sn_
modules[i]. Call pci_bus_map_create() for
* each pci bridge
*/
softlistp
=
first_in_list
;
...
...
arch/ia64/sn/io/sn2/klgraph.c
View file @
521f6006
...
...
@@ -527,7 +527,7 @@ klhwg_add_all_modules(vertex_hdl_t hwgraph_root)
/* Use module as module vertex fastinfo */
memset
(
buffer
,
0
,
16
);
format_module_id
(
buffer
,
modules
[
cm
]
->
id
,
MODULE_FORMAT_BRIEF
);
format_module_id
(
buffer
,
sn_
modules
[
cm
]
->
id
,
MODULE_FORMAT_BRIEF
);
sprintf
(
name
,
EDGE_LBL_MODULE
"/%s"
,
buffer
);
rc
=
hwgraph_path_add
(
hwgraph_root
,
name
,
&
module_vhdl
);
...
...
@@ -535,7 +535,7 @@ klhwg_add_all_modules(vertex_hdl_t hwgraph_root)
rc
=
rc
;
HWGRAPH_DEBUG
(
__FILE__
,
__FUNCTION__
,
__LINE__
,
module_vhdl
,
NULL
,
"Created module path.
\n
"
);
hwgraph_fastinfo_set
(
module_vhdl
,
(
arbitrary_info_t
)
modules
[
cm
]);
hwgraph_fastinfo_set
(
module_vhdl
,
(
arbitrary_info_t
)
sn_
modules
[
cm
]);
/* Add system controller */
sprintf
(
name
,
...
...
arch/ia64/sn/io/sn2/module.c
View file @
521f6006
...
...
@@ -33,7 +33,7 @@
#define DPRINTF(x...)
#endif
module_t
*
modules
[
MODULE_MAX
];
module_t
*
sn_
modules
[
MODULE_MAX
];
int
nummodules
;
#define SN00_SERIAL_FUDGE 0x3b1af409d513c2
...
...
@@ -59,9 +59,9 @@ module_lookup(moduleid_t id)
int
i
;
for
(
i
=
0
;
i
<
nummodules
;
i
++
)
if
(
modules
[
i
]
->
id
==
id
)
{
DPRINTF
(
"module_lookup: found m=0x%p
\n
"
,
modules
[
i
]);
return
modules
[
i
];
if
(
sn_
modules
[
i
]
->
id
==
id
)
{
DPRINTF
(
"module_lookup: found m=0x%p
\n
"
,
sn_
modules
[
i
]);
return
sn_
modules
[
i
];
}
return
NULL
;
...
...
@@ -104,10 +104,10 @@ module_add_node(geoid_t geoid, cnodeid_t cnodeid)
/* Insert in sorted order by module number */
for
(
i
=
nummodules
;
i
>
0
&&
modules
[
i
-
1
]
->
id
>
moduleid
;
i
--
)
modules
[
i
]
=
modules
[
i
-
1
];
for
(
i
=
nummodules
;
i
>
0
&&
sn_
modules
[
i
-
1
]
->
id
>
moduleid
;
i
--
)
sn_modules
[
i
]
=
sn_
modules
[
i
-
1
];
modules
[
i
]
=
m
;
sn_
modules
[
i
]
=
m
;
nummodules
++
;
}
...
...
arch/ia64/sn/kernel/setup.c
View file @
521f6006
...
...
@@ -226,7 +226,25 @@ sn_check_for_wars(void)
shub_1_1_found
=
1
;
}
/**
* sn_set_error_handling_features - Tell the SN prom how to handle certain
* error types.
*/
static
void
__init
sn_set_error_handling_features
(
void
)
{
u64
ret
;
u64
sn_ehf_bits
[
7
];
/* see ia64_sn_set_error_handling_features */
memset
(
sn_ehf_bits
,
0
,
sizeof
(
sn_ehf_bits
));
#define EHF(x) __set_bit(SN_SAL_EHF_ ## x, sn_ehf_bits)
EHF
(
MCA_SLV_TO_OS_INIT_SLV
);
EHF
(
NO_RZ_TLBC
);
// Uncomment once Jesse's code goes in - EHF(NO_RZ_IO_READ);
#undef EHF
ret
=
ia64_sn_set_error_handling_features
(
sn_ehf_bits
);
if
(
ret
)
printk
(
KERN_ERR
"%s: failed, return code %ld
\n
"
,
__FUNCTION__
,
ret
);
}
/**
* sn_setup - SN platform setup routine
...
...
@@ -318,6 +336,9 @@ sn_setup(char **cmdline_p)
master_node_bedrock_address
);
}
/* Tell the prom how to handle certain error types */
sn_set_error_handling_features
();
/*
* we set the default root device to /dev/hda
* to make simulation easy
...
...
include/asm-ia64/ia32.h
View file @
521f6006
...
...
@@ -6,7 +6,8 @@
#include <asm/ptrace.h>
#include <asm/signal.h>
#define IA32_NR_syscalls 283
/* length of syscall table */
#define IA32_NR_syscalls 283
/* length of syscall table */
#define IA32_PAGE_SHIFT 12
/* 4KB pages */
#ifndef __ASSEMBLY__
...
...
@@ -24,6 +25,13 @@ extern int ia32_clone_tls (struct task_struct *child, struct pt_regs *childregs)
/* Declare this unconditionally, so we don't get warnings for unreachable code. */
extern
int
ia32_setup_frame1
(
int
sig
,
struct
k_sigaction
*
ka
,
siginfo_t
*
info
,
sigset_t
*
set
,
struct
pt_regs
*
regs
);
#if PAGE_SHIFT > IA32_PAGE_SHIFT
extern
int
ia32_copy_partial_page_list
(
struct
task_struct
*
,
unsigned
long
);
extern
void
ia32_drop_partial_page_list
(
struct
task_struct
*
);
#else
# define ia32_copy_partial_page_list(a1, a2) 0
# define ia32_drop_partial_page_list(a1) do { ; } while (0)
#endif
#endif
/* !__ASSEMBLY__ */
...
...
include/asm-ia64/pgtable.h
View file @
521f6006
...
...
@@ -297,11 +297,7 @@ ia64_phys_addr_valid (unsigned long addr)
* works bypasses the caches, but does allow for consecutive writes to
* be combined into single (but larger) write transactions.
*/
#ifdef CONFIG_MCKINLEY_A0_SPECIFIC
# define pgprot_writecombine(prot) prot
#else
# define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~_PAGE_MA_MASK) | _PAGE_MA_WC)
#endif
#define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~_PAGE_MA_MASK) | _PAGE_MA_WC)
static
inline
unsigned
long
pgd_index
(
unsigned
long
address
)
...
...
include/asm-ia64/processor.h
View file @
521f6006
...
...
@@ -230,6 +230,7 @@ struct desc_struct {
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
struct
partial_page_list
;
#endif
struct
thread_struct
{
...
...
@@ -251,6 +252,7 @@ struct thread_struct {
__u64
fdr
;
/* IA32 fp except. data reg */
__u64
old_k1
;
/* old value of ar.k1 */
__u64
old_iob
;
/* old IOBase value */
struct
partial_page_list
*
ppl
;
/* partial page list for 4K page size issue */
/* cached TLS descriptors. */
struct
desc_struct
tls_array
[
GDT_ENTRY_TLS_ENTRIES
];
...
...
@@ -260,7 +262,8 @@ struct thread_struct {
.fir = 0, \
.fdr = 0, \
.old_k1 = 0, \
.old_iob = 0,
.old_iob = 0, \
.ppl = 0,
#else
# define INIT_THREAD_IA32
#endif
/* CONFIG_IA32_SUPPORT */
...
...
include/asm-ia64/sn/module.h
View file @
521f6006
...
...
@@ -180,7 +180,7 @@ struct module_s {
};
/* module.c */
extern
module_t
*
modules
[
MODULE_MAX
];
/* Indexed by cmoduleid_t */
extern
module_t
*
sn_
modules
[
MODULE_MAX
];
/* Indexed by cmoduleid_t */
extern
int
nummodules
;
extern
module_t
*
module_lookup
(
moduleid_t
id
);
...
...
include/asm-ia64/sn/sn_sal.h
View file @
521f6006
...
...
@@ -33,6 +33,7 @@
#define SN_SAL_NO_FAULT_ZONE_VIRTUAL 0x02000010
#define SN_SAL_NO_FAULT_ZONE_PHYSICAL 0x02000011
#define SN_SAL_PRINT_ERROR 0x02000012
#define SN_SAL_SET_ERROR_HANDLING_FEATURES 0x0200001a // reentrant
#define SN_SAL_CONSOLE_PUTC 0x02000021
#define SN_SAL_CONSOLE_GETC 0x02000022
#define SN_SAL_CONSOLE_PUTS 0x02000023
...
...
@@ -92,6 +93,19 @@
#define SALRET_INVALID_ARG -2
#define SALRET_ERROR -3
/*
* SN_SAL_SET_ERROR_HANDLING_FEATURES bit settings
*/
enum
{
/* if "rz always" is set, have the mca slaves call os_init_slave */
SN_SAL_EHF_MCA_SLV_TO_OS_INIT_SLV
=
0
,
/* do not rz on tlb checks, even if "rz always" is set */
SN_SAL_EHF_NO_RZ_TLBC
,
/* do not rz on PIO reads to I/O space, even if "rz always" is set */
SN_SAL_EHF_NO_RZ_IO_READ
,
};
/**
* sn_sal_rev_major - get the major SGI SAL revision number
...
...
@@ -670,4 +684,24 @@ ia64_sn_sysctl_iobrick_pci_op(nasid_t n, u64 connection_type,
return
0
;
}
/*
* Tell the prom how the OS wants to handle specific error features.
* It takes an array of 7 u64.
*/
static
inline
u64
ia64_sn_set_error_handling_features
(
const
u64
*
feature_bits
)
{
struct
ia64_sal_retval
rv
=
{
0
,
0
,
0
,
0
};
SAL_CALL_REENTRANT
(
rv
,
SN_SAL_SET_ERROR_HANDLING_FEATURES
,
feature_bits
[
0
],
feature_bits
[
1
],
feature_bits
[
2
],
feature_bits
[
3
],
feature_bits
[
4
],
feature_bits
[
5
],
feature_bits
[
6
]);
return
rv
.
status
;
}
#endif
/* _ASM_IA64_SN_SN_SAL_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment