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
Kirill Smelkov
linux
Commits
f0681259
Commit
f0681259
authored
Jun 23, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://lia64.bkbits.net/to-linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
6571a999
56263875
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
556 additions
and
974 deletions
+556
-974
arch/ia64/Kconfig
arch/ia64/Kconfig
+6
-0
arch/ia64/Makefile
arch/ia64/Makefile
+3
-2
arch/ia64/defconfig
arch/ia64/defconfig
+355
-261
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+0
-63
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+1
-1
arch/ia64/kernel/efivars.c
arch/ia64/kernel/efivars.c
+1
-1
arch/ia64/kernel/gate.S
arch/ia64/kernel/gate.S
+11
-7
arch/ia64/kernel/head.S
arch/ia64/kernel/head.S
+2
-2
arch/ia64/kernel/init_task.c
arch/ia64/kernel/init_task.c
+6
-6
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+3
-3
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq.c
+19
-19
arch/ia64/kernel/irq_ia64.c
arch/ia64/kernel/irq_ia64.c
+1
-1
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+1
-1
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/perfmon.c
+84
-222
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/smpboot.c
+1
-1
arch/ia64/lib/Makefile
arch/ia64/lib/Makefile
+1
-6
arch/ia64/pci/pci.c
arch/ia64/pci/pci.c
+0
-2
arch/ia64/scripts/toolchain-flags
arch/ia64/scripts/toolchain-flags
+3
-5
arch/ia64/sn/io/drivers/Makefile
arch/ia64/sn/io/drivers/Makefile
+1
-1
arch/ia64/sn/io/drivers/ifconfig_net.c
arch/ia64/sn/io/drivers/ifconfig_net.c
+0
-298
arch/ia64/sn/io/hwgfs/hcl.c
arch/ia64/sn/io/hwgfs/hcl.c
+6
-19
arch/ia64/sn/io/machvec/pci.c
arch/ia64/sn/io/machvec/pci.c
+4
-0
arch/ia64/sn/io/machvec/pci_dma.c
arch/ia64/sn/io/machvec/pci_dma.c
+15
-11
arch/ia64/sn/kernel/Makefile
arch/ia64/sn/kernel/Makefile
+2
-1
arch/ia64/sn/kernel/idle.c
arch/ia64/sn/kernel/idle.c
+3
-3
arch/ia64/sn/kernel/machvec.c
arch/ia64/sn/kernel/machvec.c
+1
-0
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+6
-21
include/asm-ia64/agp.h
include/asm-ia64/agp.h
+1
-4
include/asm-ia64/hw_irq.h
include/asm-ia64/hw_irq.h
+5
-5
include/asm-ia64/thread_info.h
include/asm-ia64/thread_info.h
+0
-1
include/asm-ia64/timex.h
include/asm-ia64/timex.h
+9
-2
include/asm-ia64/tlb.h
include/asm-ia64/tlb.h
+1
-0
include/asm-ia64/topology.h
include/asm-ia64/topology.h
+4
-5
No files found.
arch/ia64/Kconfig
View file @
f0681259
...
...
@@ -544,6 +544,8 @@ source "drivers/pnp/Kconfig"
source "drivers/block/Kconfig"
source "drivers/ide/Kconfig"
source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig"
...
...
@@ -787,6 +789,10 @@ config IA64_EARLY_PRINTK_VGA
bool "Early printk on VGA"
depends on IA64_EARLY_PRINTK
config IA64_EARLY_PRINTK_SGI_SN
bool "Early printk on SGI SN serial console"
depends on IA64_EARLY_PRINTK && (IA64_GENERIC || IA64_SGI_SN2)
config DEBUG_SLAB
bool "Debug memory allocations"
depends on DEBUG_KERNEL
...
...
arch/ia64/Makefile
View file @
f0681259
...
...
@@ -27,7 +27,7 @@ GCC_MINOR_VERSION=$(shell $(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' |
GAS_STATUS
=
$(
shell
arch
/ia64/scripts/check-gas
$(CC)
$(OBJDUMP)
)
arch-cppflags
:=
$(
shell
arch
/ia64/scripts/toolchain-flags
$(CC)
$(
LD)
$(
OBJDUMP)
)
arch-cppflags
:=
$(
shell
arch
/ia64/scripts/toolchain-flags
$(CC)
$(OBJDUMP)
)
cflags-y
+=
$
(
arch-cppflags
)
AFLAGS
+=
$
(
arch-cppflags
)
...
...
@@ -66,7 +66,8 @@ core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
drivers-$(CONFIG_PCI)
+=
arch
/ia64/pci/
drivers-$(CONFIG_IA64_HP_SIM)
+=
arch
/ia64/hp/sim/
drivers-$(CONFIG_IA64_HP_ZX1)
+=
arch
/ia64/hp/common/
arch
/ia64/hp/zx1/
drivers-$(CONFIG_IA64_GENERIC)
+=
arch
/ia64/hp/common/
arch
/ia64/hp/zx1/
arch
/ia64/hp/sim/
drivers-$(CONFIG_IA64_GENERIC)
+=
arch
/ia64/hp/common/
arch
/ia64/hp/zx1/
arch
/ia64/hp/sim/
\
arch
/ia64/sn/
boot
:=
arch
/ia64/boot
...
...
arch/ia64/defconfig
View file @
f0681259
...
...
@@ -10,30 +10,38 @@ CONFIG_EXPERIMENTAL=y
#
# General setup
#
CONFIG_
NET
=y
CONFIG_
SWAP
=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_EMBEDDED is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
# CONFIG_KMOD is not set
CONFIG_KMOD=y
#
# Processor type and features
#
CONFIG_IA64=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ITANIUM=y
# CONFIG_MCKINLEY is not set
CONFIG_MMU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_TIME_INTERPOLATION=y
# CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y
# CONFIG_IA64_GENERIC is not set
CONFIG_IA64_DIG=y
# CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_SIM is not set
# CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_SGI_SN1 is not set
CONFIG_IA64_HP_ZX1=y
# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_PAGE_SIZE_4KB is not set
# CONFIG_IA64_PAGE_SIZE_8KB is not set
...
...
@@ -43,54 +51,82 @@ CONFIG_ACPI=y
CONFIG_ACPI_EFI=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_KERNEL_CONFIG=y
CONFIG_IA64_BRL_EMU=y
# CONFIG_ITANIUM_BSTEP_SPECIFIC is not set
CONFIG_IA64_L1_CACHE_SHIFT=6
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_MCA=y
CONFIG_PM=y
CONFIG_IOSAPIC=y
CONFIG_KCORE_ELF=y
CONFIG_FORCE_MAX_ZONEORDER=18
# CONFIG_HUGETLB_PAGE is not set
CONFIG_HUGETLB_PAGE=y
# CONFIG_HUGETLB_PAGE_SIZE_4GB is not set
# CONFIG_HUGETLB_PAGE_SIZE_1GB is not set
# CONFIG_HUGETLB_PAGE_SIZE_256MB is not set
CONFIG_HUGETLB_PAGE_SIZE_64MB=y
# CONFIG_HUGETLB_PAGE_SIZE_16MB is not set
# CONFIG_HUGETLB_PAGE_SIZE_4MB is not set
# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
# CONFIG_HUGETLB_PAGE_SIZE_256KB is not set
CONFIG_IA64_PAL_IDLE=y
CONFIG_SMP=y
# CONFIG_PREEMPT is not set
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y
CONFIG_EFI_VARS=y
CONFIG_NR_CPUS=16
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_BINFMT_MISC=y
#
# ACPI Support
#
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=
m
CONFIG_ACPI_PROCESSOR=
m
CONFIG_ACPI_THERMAL=
m
CONFIG_ACPI_FAN=
y
CONFIG_ACPI_PROCESSOR=
y
CONFIG_ACPI_THERMAL=
y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
# CONFIG_HOTPLUG is not set
CONFIG_HOTPLUG=y
#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
#
# PCMCIA/CardBus support
#
# CONFIG_PCMCIA is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Generic Driver Options
#
# CONFIG_FW_LOADER is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Plug and Play
configuration
# Plug and Play
support
#
# CONFIG_PNP is not set
...
...
@@ -104,7 +140,9 @@ CONFIG_PCI_NAMES=y
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
...
...
@@ -124,64 +162,11 @@ CONFIG_BLK_DEV_LOOP=y
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_BLK_DEV_GENERIC is not set
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_PCI_AUTO is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_PCI_WIP is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NFORCE is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDEDMA_IVB is not set
CONFIG_FUSION=y
CONFIG_FUSION_BOOT=y
CONFIG_FUSION_MAX_SGE=40
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set
#
# SCSI support
...
...
@@ -192,16 +177,17 @@ CONFIG_SCSI=y
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
CONFIG_CHR_DEV_ST=y
CONFIG_CHR_DEV_OSST=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_REPORT_LUNS is not set
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_REPORT_LUNS=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
...
...
@@ -212,57 +198,76 @@ CONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
CONFIG_SCSI_AIC7XXX_OLD=y
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
CONFIG_SCSI_MEGARAID=y
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_DMA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C7xx is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_NCR53C8XX is not set
# CONFIG_SCSI_SYM53C8XX is not set
CONFIG_SCSI_SYM53C8XX_2=y
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_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
CONFIG_FILTER=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
#
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_CONNTRACK is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
CONFIG_IP_NF_ARPTABLES=y
# CONFIG_IP_NF_ARPFILTER is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
# CONFIG_IPV6 is not set
# CONFIG_XFRM_USER is not set
#
# SCTP Configuration (EXPERIMENTAL)
...
...
@@ -288,8 +293,9 @@ CONFIG_IPV6_SCTP__=y
# CONFIG_NET_SCHED is not set
#
# Network
device support
# Network
testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETDEVICES=y
#
...
...
@@ -297,7 +303,7 @@ CONFIG_NETDEVICES=y
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
CONFIG_BONDING=y
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
...
...
@@ -306,11 +312,10 @@ CONFIG_DUMMY=y
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
...
...
@@ -319,9 +324,12 @@ CONFIG_NET_ETHERNET=y
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=y
# CONFIG_EEPRO100_PIO is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
...
...
@@ -333,19 +341,25 @@ CONFIG_EEPRO100=y
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_NET_POCKET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
CONFIG_TIGON3=m
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
...
...
@@ -357,9 +371,8 @@ CONFIG_EEPRO100=y
# CONFIG_NET_RADIO is not set
#
# Token Ring devices
# Token Ring devices
(depends on LLC=y)
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
...
...
@@ -393,10 +406,10 @@ CONFIG_INPUT=y
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_JOYDEV=y
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
...
...
@@ -407,26 +420,19 @@ CONFIG_INPUT_EVDEV=y
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_I8042 is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_PCSPKR is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_MISC is not set
#
# Character devices
...
...
@@ -441,12 +447,9 @@ CONFIG_HW_CONSOLE=y
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set
CONFIG_SERIAL_8250_ACPI=y
CONFIG_SERIAL_8250_HCDP=y
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
...
...
@@ -459,14 +462,16 @@ CONFIG_UNIX98_PTY_COUNT=256
#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_ELV is not set
# CONFIG_I2C_VELLEMAN is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_ALGOPCF is not set
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_PROC=y
# CONFIG_I2C is not set
#
# I2C Hardware Sensors Mainboard support
#
#
# I2C Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
#
# Mice
...
...
@@ -474,13 +479,17 @@ CONFIG_I2C_PROC=y
# CONFIG_BUSMOUSE is not set
# CONFIG_QIC02_TAPE is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_
INTEL_RNG
is not set
# CONFIG_
HW_RANDOM
is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_GEN_RTC is not set
CONFIG_EFI_RTC=y
# CONFIG_DTLK is not set
...
...
@@ -491,77 +500,97 @@ CONFIG_EFI_RTC=y
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_I810=y
CONFIG_AGP_VIA=y
CONFIG_AGP_AMD=y
CONFIG_AGP_SIS=y
CONFIG_AGP_ALI=y
CONFIG_AGP_SWORKS=y
# CONFIG_AGP_AMD_8151 is not set
CONFIG_AGP_I460=y
CONFIG_AGP_HP_ZX1=y
CONFIG_AGP=m
CONFIG_AGP_I460=m
CONFIG_AGP_HP_ZX1=m
CONFIG_DRM=y
CONFIG_DRM_TDFX=y
CONFIG_DRM_R128=y
CONFIG_DRM_RADEON=y
CONFIG_DRM_I810=y
CONFIG_DRM_I830=y
CONFIG_DRM_MGA=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
# CONFIG_DRM_MGA is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
# CONFIG_AUTOFS4_FS is not set
# CONFIG_REISERFS_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
CONFIG_EXT3_FS=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_TMPFS is not set
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_JFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_XFS_FS is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
...
...
@@ -569,13 +598,16 @@ CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_TCP is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
# CONFIG_CIFS is not set
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SMB_FS is not set
# 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
#
...
...
@@ -593,6 +625,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
...
...
@@ -603,53 +636,84 @@ CONFIG_NLS=y
# Native Language Support
#
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
CONFIG_NLS_CODEPAGE_775=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_CODEPAGE_855=y
CONFIG_NLS_CODEPAGE_857=y
CONFIG_NLS_CODEPAGE_860=y
CONFIG_NLS_CODEPAGE_861=y
CONFIG_NLS_CODEPAGE_862=y
CONFIG_NLS_CODEPAGE_863=y
CONFIG_NLS_CODEPAGE_864=y
CONFIG_NLS_CODEPAGE_865=y
CONFIG_NLS_CODEPAGE_866=y
CONFIG_NLS_CODEPAGE_869=y
CONFIG_NLS_CODEPAGE_936=y
CONFIG_NLS_CODEPAGE_950=y
CONFIG_NLS_CODEPAGE_932=y
CONFIG_NLS_CODEPAGE_949=y
CONFIG_NLS_CODEPAGE_874=y
CONFIG_NLS_ISO8859_8=y
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Console drivers
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_ISO8859_4=y
CONFIG_NLS_ISO8859_5=y
CONFIG_NLS_ISO8859_6=y
CONFIG_NLS_ISO8859_7=y
CONFIG_NLS_ISO8859_9=y
CONFIG_NLS_ISO8859_13=y
CONFIG_NLS_ISO8859_14=y
CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_KOI8_R=y
CONFIG_NLS_KOI8_U=y
CONFIG_NLS_UTF8=y
#
# Graphics support
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_RIVA=m
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=y
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
#
#
Frame-buffer support
#
Logo configuration
#
# CONFIG_FB is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
...
...
@@ -659,31 +723,62 @@ CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
# CONFIG_SND is not set
CONFIG_SND=m
CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set
# CONFIG_SND_OSSEMUL is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
#
# PCI devices
#
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
CONFIG_SND_FM801=m
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VX222 is not set
#
# ALSA USB devices
#
# CONFIG_SND_USB_AUDIO is not set
#
# Open Sound System
#
CONFIG_SOUND_PRIME=y
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
CONFIG_SOUND_CS4281=y
# CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1371 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_VIA82CXXX is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_TVMIXER is not set
# CONFIG_SOUND_PRIME is not set
#
# USB support
...
...
@@ -694,17 +789,16 @@ CONFIG_USB=y
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_LONG_TIMEOUT is not set
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DEVICEFS is not set
CONFIG_USB_BANDWIDTH=y
# CONFIG_USB_DYNAMIC_MINORS is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_EHCI_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD
_ALT=y
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD
=m
#
# USB Device Class drivers
...
...
@@ -725,6 +819,7 @@ CONFIG_USB_HIDINPUT=y
CONFIG_USB_HIDDEV=y
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_XPAD is not set
...
...
@@ -748,8 +843,8 @@ CONFIG_USB_HIDDEV=y
#
# USB Network adaptors
#
# CONFIG_USB_AX8817X is not set
# CONFIG_USB_CATC is not set
# CONFIG_USB_CDCETHER is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
...
...
@@ -772,17 +867,17 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_
TES
T is not set
# CONFIG_USB_
GADGE
T is not set
#
#
Library routines
#
Bluetooth support
#
# CONFIG_
CRC32
is not set
# CONFIG_
BT
is not set
#
#
Bluetooth support
#
Library routines
#
# CONFIG_BT is not set
CONFIG_CRC32=y
#
# Kernel hacking
...
...
@@ -794,18 +889,17 @@ CONFIG_KALLSYMS=y
CONFIG_IA64_PRINT_HAZARDS=y
# CONFIG_DISABLE_VHPT is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_IA64_EARLY_PRINTK=y
# CONFIG_IA64_EARLY_PRINTK_UART is not set
CONFIG_IA64_EARLY_PRINTK_VGA=y
# CONFIG_IA64_EARLY_PRINTK is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
#
# Security options
#
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY is not set
#
# Cryptographic options
...
...
arch/ia64/kernel/acpi.c
View file @
f0681259
...
...
@@ -575,59 +575,6 @@ acpi_find_rsdp (void)
}
#ifdef CONFIG_SERIAL_8250_ACPI
#include <linux/acpi_serial.h>
static
int
__init
acpi_parse_spcr
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
acpi_ser_t
*
spcr
;
unsigned
int
gsi
;
if
(
!
phys_addr
||
!
size
)
return
-
EINVAL
;
if
(
!
iosapic_register_intr
)
return
-
ENODEV
;
/*
* ACPI is able to describe serial ports that live at non-standard
* memory addresses and use non-standard interrupts, either via
* direct SAPIC mappings or via PCI interrupts. We handle interrupt
* routing for SAPIC-based (non-PCI) devices here. Interrupt routing
* for PCI devices will be handled when processing the PCI Interrupt
* Routing Table (PRT).
*/
spcr
=
(
acpi_ser_t
*
)
__va
(
phys_addr
);
setup_serial_acpi
(
spcr
);
if
(
spcr
->
length
<
sizeof
(
acpi_ser_t
))
/* Table not long enough for full info, thus no interrupt */
return
-
ENODEV
;
if
((
spcr
->
base_addr
.
space_id
!=
ACPI_SERIAL_PCICONF_SPACE
)
&&
(
spcr
->
int_type
==
ACPI_SERIAL_INT_SAPIC
))
{
int
vector
;
/* We have a UART in memory space with an SAPIC interrupt */
gsi
=
(
(
spcr
->
global_int
[
3
]
<<
24
)
|
(
spcr
->
global_int
[
2
]
<<
16
)
|
(
spcr
->
global_int
[
1
]
<<
8
)
|
(
spcr
->
global_int
[
0
])
);
vector
=
iosapic_register_intr
(
gsi
,
IOSAPIC_POL_HIGH
,
IOSAPIC_EDGE
);
}
return
0
;
}
#endif
/* CONFIG_SERIAL_8250_ACPI */
int
__init
acpi_boot_init
(
void
)
{
...
...
@@ -682,16 +629,6 @@ acpi_boot_init (void)
if
(
acpi_table_parse
(
ACPI_FADT
,
acpi_parse_fadt
)
<
1
)
printk
(
KERN_ERR
PREFIX
"Can't find FADT
\n
"
);
#ifdef CONFIG_SERIAL_8250_ACPI
/*
* TBD: Need phased approach to table parsing (only do those absolutely
* required during boot-up). Recommend expanding concept of fix-
* feature devices (LDM) to include table-based devices such as
* serial ports, EC, SMBus, etc.
*/
acpi_table_parse
(
ACPI_SPCR
,
acpi_parse_spcr
);
#endif
#ifdef CONFIG_SMP
smp_boot_data
.
cpu_count
=
available_cpus
;
if
(
available_cpus
==
0
)
{
...
...
arch/ia64/kernel/efi.c
View file @
f0681259
...
...
@@ -46,7 +46,7 @@ static efi_runtime_services_t *runtime;
* prior to creating their own entries under /proc/efi.
*/
#ifdef CONFIG_PROC_FS
struct
proc_dir_entry
*
efi_dir
=
NULL
;
struct
proc_dir_entry
*
efi_dir
;
#endif
static
unsigned
long
mem_limit
=
~
0UL
;
...
...
arch/ia64/kernel/efivars.c
View file @
f0681259
...
...
@@ -119,7 +119,7 @@ typedef struct _efivar_entry_t {
*/
static
spinlock_t
efivars_lock
=
SPIN_LOCK_UNLOCKED
;
static
LIST_HEAD
(
efivar_list
);
static
struct
proc_dir_entry
*
efi_vars_dir
=
NULL
;
static
struct
proc_dir_entry
*
efi_vars_dir
;
#define efivar_entry(n) list_entry(n, efivar_entry_t, list)
...
...
arch/ia64/kernel/gate.S
View file @
f0681259
...
...
@@ -199,7 +199,7 @@ GLOBAL_ENTRY(__kernel_sigtramp)
cmp.ne
p8
,
p0
=
r15
,
r0
//
do
we
need
to
switch
the
rbs
?
mov.m
r9
=
ar
.
bsp
//
fetch
ar
.
bsp
.
spillsp.p
p8
,
ar
.
rnat
,
RNAT_OFF
+
SIGCONTEXT_OFF
(
p8
)
br.cond.spnt
setup_rbs
//
yup
->
(
clobbers
r14
,
r15
,
and
r16
)
(
p8
)
br.cond.spnt
setup_rbs
//
yup
->
(
clobbers
p8
,
r14
-
r16
,
and
r18
-
r20
)
back_from_setup_rbs
:
alloc
r8
=
ar
.
pfs
,
0
,
0
,
3
,
0
ld8
out0
=[
base0
],
16
//
load
arg0
(
signum
)
...
...
@@ -268,26 +268,30 @@ back_from_restore_rbs:
setup_rbs
:
mov
ar
.
rsc
=
0
//
put
RSE
into
enforced
lazy
mode
;;
.
save
ar
.
rnat
,
r1
6
mov
r1
6
=
ar
.
rnat
//
save
RNaT
before
switching
backing
store
area
.
save
ar
.
rnat
,
r1
9
mov
r1
9
=
ar
.
rnat
//
save
RNaT
before
switching
backing
store
area
adds
r14
=(
RNAT_OFF
+
SIGCONTEXT_OFF
),
sp
mov
r18
=
ar
.
bspstore
mov
ar
.
bspstore
=
r15
//
switch
over
to
new
register
backing
store
area
;;
.
spillsp
ar
.
rnat
,
RNAT_OFF
+
SIGCONTEXT_OFF
st8
[
r14
]=
r1
6
//
save
sc_ar_rnat
st8
[
r14
]=
r1
9
//
save
sc_ar_rnat
.
body
adds
r14
=(
LOADRS_OFF
+
SIGCONTEXT_OFF
),
sp
mov.m
r16
=
ar
.
bsp
//
sc_loadrs
<-
(
new
bsp
-
new
bspstore
)
<<
16
adds
r14
=(
LOADRS_OFF
+
SIGCONTEXT_OFF
),
sp
;;
invala
sub
r15
=
r16
,
r15
extr.u
r20
=
r18
,
3
,
6
;;
mov
ar
.
rsc
=
0xf
//
set
RSE
into
eager
mode
,
pl
3
cmp.eq
p8
,
p0
=
63
,
r20
shl
r15
=
r15
,
16
;;
st8
[
r14
]=
r15
//
save
sc_loadrs
mov
ar
.
rsc
=
0xf
//
set
RSE
into
eager
mode
,
pl
3
(
p8
)
st8
[
r18
]=
r19
//
if
bspstore
points
at
RNaT
slot
,
store
RNaT
there
now
.
restore
sp
//
pop
.
prologue
br.cond.sptk
back_from_setup_rbs
...
...
arch/ia64/kernel/head.S
View file @
f0681259
...
...
@@ -144,13 +144,13 @@ start_ap:
movl
r3
=
task_for_booting_cpu
;;
ld8
r3
=[
r3
]
movl
r2
=
init_t
hread_union
movl
r2
=
init_t
ask
;;
cmp.eq
isBP
,
isAP
=
r3
,
r0
;;
(
isAP
)
mov
r2
=
r3
#else
movl
r2
=
init_t
hread_union
movl
r2
=
init_t
ask
cmp.eq
isBP
,
isAP
=
r0
,
r0
#endif
;;
...
...
arch/ia64/kernel/init_task.c
View file @
f0681259
...
...
@@ -26,17 +26,17 @@ struct mm_struct init_mm = INIT_MM(init_mm);
* We need to make sure that this is properly aligned due to the way process stacks are
* handled. This is done by having a special ".data.init_task" section...
*/
#define init_thread_info init_t
hread_union
.s.thread_info
#define init_thread_info init_t
ask_mem
.s.thread_info
union
init_thread
{
static
union
{
struct
{
struct
task_struct
task
;
struct
thread_info
thread_info
;
}
s
;
unsigned
long
stack
[
KERNEL_STACK_SIZE
/
sizeof
(
unsigned
long
)];
}
init_t
hread_union
__attribute__
((
section
(
".data.init_task"
)))
=
{{
.
task
=
INIT_TASK
(
init_t
hread_union
.
s
.
task
),
.
thread_info
=
INIT_THREAD_INFO
(
init_t
hread_union
.
s
.
task
)
}
init_t
ask_mem
__attribute__
((
section
(
".data.init_task"
)))
=
{{
.
task
=
INIT_TASK
(
init_t
ask_mem
.
s
.
task
),
.
thread_info
=
INIT_THREAD_INFO
(
init_t
ask_mem
.
s
.
task
)
}};
asm
(
".global init_task; init_task = init_t
hread_union
"
);
asm
(
".global init_task; init_task = init_t
ask_mem
"
);
arch/ia64/kernel/iosapic.c
View file @
f0681259
...
...
@@ -382,7 +382,7 @@ iosapic_startup_edge_irq (unsigned int irq)
static
void
iosapic_ack_edge_irq
(
unsigned
int
irq
)
{
irq_desc_t
*
idesc
=
irq_desc
(
irq
);
irq_desc_t
*
idesc
=
irq_desc
p
(
irq
);
/*
* Once we have recorded IRQ_PENDING already, we can mask the
* interrupt for real. This prevents IRQ storms from unhandled
...
...
@@ -478,7 +478,7 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
else
irq_type
=
&
irq_type_iosapic_level
;
idesc
=
irq_desc
(
vector
);
idesc
=
irq_desc
p
(
vector
);
if
(
idesc
->
handler
!=
irq_type
)
{
if
(
idesc
->
handler
!=
&
no_irq_type
)
printk
(
KERN_WARNING
"%s: changing vector %d from %s to %s
\n
"
,
...
...
@@ -724,7 +724,7 @@ iosapic_parse_prt (void)
* If vector was previously initialized to a different
* handler, re-initialize.
*/
idesc
=
irq_desc
(
vector
);
idesc
=
irq_desc
p
(
vector
);
if
(
idesc
->
handler
!=
irq_type
)
register_intr
(
gsi
,
vector
,
IOSAPIC_LOWEST_PRIORITY
,
IOSAPIC_POL_LOW
,
IOSAPIC_LEVEL
);
...
...
arch/ia64/kernel/irq.c
View file @
f0681259
...
...
@@ -74,7 +74,7 @@ irq_desc_t _irq_desc[NR_IRQS] __cacheline_aligned = {
};
#ifdef CONFIG_IA64_GENERIC
struct
irq_desc
*
__ia64_irq_desc
(
unsigned
int
irq
)
irq_desc_t
*
__ia64_irq_desc
(
unsigned
int
irq
)
{
return
_irq_desc
+
irq
;
}
...
...
@@ -171,7 +171,7 @@ int show_interrupts(struct seq_file *p, void *v)
seq_putc
(
p
,
'\n'
);
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
{
idesc
=
irq_desc
(
i
);
idesc
=
irq_desc
p
(
i
);
spin_lock_irqsave
(
&
idesc
->
lock
,
flags
);
action
=
idesc
->
action
;
if
(
!
action
)
...
...
@@ -218,7 +218,7 @@ int show_interrupts(struct seq_file *p, void *v)
#ifdef CONFIG_SMP
inline
void
synchronize_irq
(
unsigned
int
irq
)
{
while
(
irq_desc
(
irq
)
->
status
&
IRQ_INPROGRESS
)
while
(
irq_desc
p
(
irq
)
->
status
&
IRQ_INPROGRESS
)
cpu_relax
();
}
#endif
...
...
@@ -352,7 +352,7 @@ static void note_interrupt(int irq, irq_desc_t *desc, irqreturn_t action_ret)
inline
void
disable_irq_nosync
(
unsigned
int
irq
)
{
irq_desc_t
*
desc
=
irq_desc
(
irq
);
irq_desc_t
*
desc
=
irq_desc
p
(
irq
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
desc
->
lock
,
flags
);
...
...
@@ -395,7 +395,7 @@ void disable_irq(unsigned int irq)
void
enable_irq
(
unsigned
int
irq
)
{
irq_desc_t
*
desc
=
irq_desc
(
irq
);
irq_desc_t
*
desc
=
irq_desc
p
(
irq
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
desc
->
lock
,
flags
);
...
...
@@ -437,7 +437,7 @@ unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs)
* 0 return value means that this irq is already being
* handled by some other CPU. (or is disabled)
*/
irq_desc_t
*
desc
=
irq_desc
(
irq
);
irq_desc_t
*
desc
=
irq_desc
p
(
irq
);
struct
irqaction
*
action
;
irqreturn_t
action_ret
;
unsigned
int
status
;
...
...
@@ -620,7 +620,7 @@ void free_irq(unsigned int irq, void *dev_id)
if
(
irq
>=
NR_IRQS
)
return
;
desc
=
irq_desc
(
irq
);
desc
=
irq_desc
p
(
irq
);
spin_lock_irqsave
(
&
desc
->
lock
,
flags
);
p
=
&
desc
->
action
;
for
(;;)
{
...
...
@@ -682,7 +682,7 @@ unsigned long probe_irq_on(void)
* flush such a longstanding irq before considering it as spurious.
*/
for
(
i
=
NR_IRQS
-
1
;
i
>
0
;
i
--
)
{
desc
=
irq_desc
(
i
);
desc
=
irq_desc
p
(
i
);
spin_lock_irq
(
&
desc
->
lock
);
if
(
!
desc
->
action
)
...
...
@@ -700,7 +700,7 @@ unsigned long probe_irq_on(void)
* happened in the previous stage, it may have masked itself)
*/
for
(
i
=
NR_IRQS
-
1
;
i
>
0
;
i
--
)
{
desc
=
irq_desc
(
i
);
desc
=
irq_desc
p
(
i
);
spin_lock_irq
(
&
desc
->
lock
);
if
(
!
desc
->
action
)
{
...
...
@@ -722,7 +722,7 @@ unsigned long probe_irq_on(void)
*/
val
=
0
;
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
{
irq_desc_t
*
desc
=
irq_desc
(
i
);
irq_desc_t
*
desc
=
irq_desc
p
(
i
);
unsigned
int
status
;
spin_lock_irq
(
&
desc
->
lock
);
...
...
@@ -762,7 +762,7 @@ unsigned int probe_irq_mask(unsigned long val)
mask
=
0
;
for
(
i
=
0
;
i
<
16
;
i
++
)
{
irq_desc_t
*
desc
=
irq_desc
(
i
);
irq_desc_t
*
desc
=
irq_desc
p
(
i
);
unsigned
int
status
;
spin_lock_irq
(
&
desc
->
lock
);
...
...
@@ -807,7 +807,7 @@ int probe_irq_off(unsigned long val)
nr_irqs
=
0
;
irq_found
=
0
;
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
{
irq_desc_t
*
desc
=
irq_desc
(
i
);
irq_desc_t
*
desc
=
irq_desc
p
(
i
);
unsigned
int
status
;
spin_lock_irq
(
&
desc
->
lock
);
...
...
@@ -836,7 +836,7 @@ int setup_irq(unsigned int irq, struct irqaction * new)
int
shared
=
0
;
unsigned
long
flags
;
struct
irqaction
*
old
,
**
p
;
irq_desc_t
*
desc
=
irq_desc
(
irq
);
irq_desc_t
*
desc
=
irq_desc
p
(
irq
);
if
(
desc
->
handler
==
&
no_irq_type
)
return
-
ENOSYS
;
...
...
@@ -963,15 +963,16 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off,
}
static
int
irq_affinity_write_proc
(
struct
file
*
file
,
const
char
*
buffer
,
unsigned
long
count
,
void
*
data
)
unsigned
long
count
,
void
*
data
)
{
unsigned
int
irq
=
(
unsigned
long
)
data
;
int
full_count
=
count
,
err
;
unsigned
long
new_value
;
const
char
*
buf
=
buffer
;
irq_desc_t
*
desc
=
irq_descp
(
irq
);
int
redir
;
if
(
!
irq_desc
(
irq
)
->
handler
->
set_affinity
)
if
(
!
desc
->
handler
->
set_affinity
)
return
-
EIO
;
if
(
buf
[
0
]
==
'r'
||
buf
[
0
]
==
'R'
)
{
...
...
@@ -993,8 +994,7 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
if
(
!
(
new_value
&
cpu_online_map
))
return
-
EINVAL
;
irq_desc
(
irq
)
->
handler
->
set_affinity
(
irq
|
(
redir
?
IA64_IRQ_REDIRECTED
:
0
),
new_value
);
desc
->
handler
->
set_affinity
(
irq
|
(
redir
?
IA64_IRQ_REDIRECTED
:
0
),
new_value
);
return
full_count
;
}
...
...
@@ -1030,7 +1030,7 @@ static void register_irq_proc (unsigned int irq)
{
char
name
[
MAX_NAMELEN
];
if
(
!
root_irq_dir
||
(
irq_desc
(
irq
)
->
handler
==
&
no_irq_type
)
||
irq_dir
[
irq
])
if
(
!
root_irq_dir
||
(
irq_desc
p
(
irq
)
->
handler
==
&
no_irq_type
)
||
irq_dir
[
irq
])
return
;
memset
(
name
,
0
,
MAX_NAMELEN
);
...
...
@@ -1083,7 +1083,7 @@ void init_irq_proc (void)
* Create entries for all existing IRQs.
*/
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
{
if
(
irq_desc
(
i
)
->
handler
==
&
no_irq_type
)
if
(
irq_desc
p
(
i
)
->
handler
==
&
no_irq_type
)
continue
;
register_irq_proc
(
i
);
}
...
...
arch/ia64/kernel/irq_ia64.c
View file @
f0681259
...
...
@@ -162,7 +162,7 @@ register_percpu_irq (ia64_vector vec, struct irqaction *action)
for
(
irq
=
0
;
irq
<
NR_IRQS
;
++
irq
)
if
(
irq_to_vector
(
irq
)
==
vec
)
{
desc
=
irq_desc
(
irq
);
desc
=
irq_desc
p
(
irq
);
desc
->
status
|=
IRQ_PER_CPU
;
desc
->
handler
=
&
irq_type_ia64_lsapic
;
if
(
action
)
...
...
arch/ia64/kernel/mca.c
View file @
f0681259
...
...
@@ -734,7 +734,7 @@ ia64_mca_init(void)
if
(
cpev
>=
0
)
{
for
(
irq
=
0
;
irq
<
NR_IRQS
;
++
irq
)
if
(
irq_to_vector
(
irq
)
==
cpev
)
{
desc
=
irq_desc
(
irq
);
desc
=
irq_desc
p
(
irq
);
desc
->
status
|=
IRQ_PER_CPU
;
desc
->
handler
=
&
irq_type_iosapic_level
;
setup_irq
(
irq
,
&
mca_cpe_irqaction
);
...
...
arch/ia64/kernel/perfmon.c
View file @
f0681259
...
...
@@ -115,6 +115,8 @@
#define PMD_IS_COUNTING(i) ((pmu_conf.pmd_desc[i].type & PFM_REG_COUNTING) == PFM_REG_COUNTING)
#define PMC_IS_COUNTING(i) ((pmu_conf.pmc_desc[i].type & PFM_REG_COUNTING) == PFM_REG_COUNTING)
#define PMC_IS_MONITOR(i) ((pmu_conf.pmc_desc[i].type & PFM_REG_MONITOR) == PFM_REG_MONITOR)
#define PMC_IS_CONTROL(i) ((pmu_conf.pmc_desc[i].type & PFM_REG_CONTROL) == PFM_REG_CONTROL)
#define PMC_DFL_VAL(i) pmu_conf.pmc_desc[i].default_value
#define PMC_RSVD_MASK(i) pmu_conf.pmc_desc[i].reserved_mask
#define PMD_PMD_DEP(i) pmu_conf.pmd_desc[i].dep_pmd[0]
...
...
@@ -232,6 +234,8 @@
*/
#define PMC0_HAS_OVFL(cmp0) (cmp0 & ~0x1UL)
#define PFMFS_MAGIC 0xa0b4d889
/*
* debugging
*/
...
...
@@ -328,7 +332,7 @@ typedef struct pfm_context {
pfm_counter_t
ctx_pmds
[
IA64_NUM_PMD_REGS
];
/* software state for PMDS */
u64
ctx_saved_psr
;
/* copy of psr used for ctxsw
*/
u64
ctx_saved_psr
_up
;
/* only contains psr.up value
*/
unsigned
long
ctx_last_activation
;
/* context last activation number for last_cpu */
unsigned
int
ctx_last_cpu
;
/* CPU id of current or last CPU used (SMP only) */
...
...
@@ -560,100 +564,6 @@ static struct vm_operations_struct pfm_vm_ops={
close:
pfm_vm_close
};
/*
* Linux 2.5 vs. 2.4 helper macros and definitions
*
* if not at least 2.5.69, then assume 2.4.x.
*/
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
#define PFM_COMPILED_FOR_2_4 1
#include <linux/wrapper.h>
#define pfm_get_cpu_var(v) local_cpu_data->v
#define pfm_get_cpu_data(a,b) cpu_data((b))->a
typedef
void
pfm_irq_handler_t
;
#define PFM_IRQ_HANDLER_RET(v)
#define DEFINE_PER_CPU(a,b)
static
inline
int
pfm_wait_task_inactive
(
struct
task_struct
*
task
)
{
#ifdef CONFIG_SMP
/* Make sure the child gets off its CPU.. */
for
(;;)
{
task_lock
(
task
);
if
(
!
task_has_cpu
(
task
))
break
;
task_unlock
(
task
);
do
{
if
(
task
->
state
!=
TASK_STOPPED
)
return
-
ESRCH
;
barrier
();
cpu_relax
();
}
while
(
task_has_cpu
(
task
));
}
task_unlock
(
task
);
#endif
return
0
;
}
static
inline
void
pfm_put_task
(
struct
task_struct
*
task
)
{
if
(
task
!=
current
)
free_task_struct
(
task
);
}
static
inline
void
pfm_set_task_notify
(
struct
task_struct
*
task
)
{
}
static
inline
void
pfm_clear_task_notify
(
void
)
{
}
static
inline
void
pfm_reserve_page
(
unsigned
long
a
)
{
unsigned
long
page
;
page
=
ia64_tpa
(
a
);
mem_map_reserve
(
virt_to_page
(
__va
(
page
)));
}
static
inline
void
pfm_unreserve_page
(
unsigned
long
a
)
{
unsigned
long
page
;
page
=
ia64_tpa
(
a
);
mem_map_unreserve
(
virt_to_page
(
__va
(
page
)));
}
static
inline
int
pfm_remap_page_range
(
struct
vm_area_struct
*
vma
,
unsigned
long
from
,
unsigned
long
phys_addr
,
unsigned
long
size
,
pgprot_t
prot
)
{
return
remap_page_range
(
from
,
phys_addr
,
size
,
prot
);
}
static
inline
unsigned
long
pfm_protect_ctx_ctxsw
(
pfm_context_t
*
x
)
{
unsigned
long
f
;
spin_lock
(
&
(
x
)
->
ctx_lock
);
return
f
;
}
static
inline
unsigned
long
pfm_unprotect_ctx_ctxsw
(
pfm_context_t
*
x
,
unsigned
long
f
)
{
spin_unlock
(
&
(
x
)
->
ctx_lock
);
}
#else
/* 2.5.69 or higher */
#define pfm_wait_task_inactive(t) wait_task_inactive(t)
#define pfm_get_cpu_var(v) __get_cpu_var(v)
...
...
@@ -705,7 +615,7 @@ pfm_remap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned lo
static
inline
unsigned
long
pfm_protect_ctx_ctxsw
(
pfm_context_t
*
x
)
{
spin_lock
_irq
(
&
(
x
)
->
ctx_lock
);
spin_lock
(
&
(
x
)
->
ctx_lock
);
return
0UL
;
}
...
...
@@ -715,7 +625,30 @@ pfm_unprotect_ctx_ctxsw(pfm_context_t *x, unsigned long f)
spin_unlock
(
&
(
x
)
->
ctx_lock
);
}
#endif
/* 2.5 vs. 2.4 */
static
inline
unsigned
int
pfm_do_munmap
(
struct
mm_struct
*
mm
,
unsigned
long
addr
,
size_t
len
,
int
acct
)
{
return
do_munmap
(
mm
,
addr
,
len
);
}
static
inline
unsigned
long
pfm_get_unmapped_area
(
struct
file
*
file
,
unsigned
long
addr
,
unsigned
long
len
,
unsigned
long
pgoff
,
unsigned
long
flags
,
unsigned
long
exec
)
{
return
get_unmapped_area
(
file
,
addr
,
len
,
pgoff
,
flags
);
}
static
struct
super_block
*
pfmfs_get_sb
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
return
get_sb_pseudo
(
fs_type
,
"pfm:"
,
NULL
,
PFMFS_MAGIC
);
}
static
struct
file_system_type
pfm_fs_type
=
{
.
name
=
"pfmfs"
,
.
get_sb
=
pfmfs_get_sb
,
.
kill_sb
=
kill_anon_super
,
};
DEFINE_PER_CPU
(
unsigned
long
,
pfm_syst_info
);
DEFINE_PER_CPU
(
struct
task_struct
*
,
pmu_owner
);
...
...
@@ -758,13 +691,13 @@ pfm_set_psr_pp(void)
static
inline
void
pfm_clear_psr_up
(
void
)
{
__asm__
__volatile__
(
"r
u
m psr.up;; srlz.i;;"
:::
"memory"
);
__asm__
__volatile__
(
"r
s
m psr.up;; srlz.i;;"
:::
"memory"
);
}
static
inline
void
pfm_set_psr_up
(
void
)
{
__asm__
__volatile__
(
"s
u
m psr.up;; srlz.i;;"
:::
"memory"
);
__asm__
__volatile__
(
"s
s
m psr.up;; srlz.i;;"
:::
"memory"
);
}
static
inline
unsigned
long
...
...
@@ -1502,7 +1435,7 @@ pfm_remove_smpl_mapping(struct task_struct *task, void *vaddr, unsigned long siz
DPRINT
((
"down_write done smpl_vaddr=%p size=%lu
\n
"
,
vaddr
,
size
));
r
=
do_munmap
(
task
->
mm
,
(
unsigned
long
)
vaddr
,
size
);
r
=
pfm_do_munmap
(
task
->
mm
,
(
unsigned
long
)
vaddr
,
size
,
0
);
up_write
(
&
task
->
mm
->
mmap_sem
);
if
(
r
!=
0
)
{
...
...
@@ -1569,68 +1502,6 @@ pfm_exit_smpl_buffer(pfm_buffer_fmt_t *fmt)
* d_name - pfm: will go nicely and kill the special-casing in procfs.
*/
static
struct
vfsmount
*
pfmfs_mnt
;
#define PFMFS_MAGIC 0xa0b4d889
#ifdef PFM_COMPILED_FOR_2_4
static
int
pfmfs_statfs
(
struct
super_block
*
sb
,
struct
statfs
*
buf
)
{
buf
->
f_type
=
PFMFS_MAGIC
;
buf
->
f_bsize
=
1024
;
buf
->
f_namelen
=
255
;
return
0
;
}
static
struct
super_operations
pfmfs_ops
=
{
statfs:
pfmfs_statfs
,
};
static
struct
super_block
*
pfmfs_read_super
(
struct
super_block
*
sb
,
void
*
data
,
int
silent
)
{
struct
inode
*
root
=
new_inode
(
sb
);
if
(
!
root
)
return
NULL
;
root
->
i_mode
=
S_IFDIR
|
S_IRUSR
|
S_IWUSR
;
root
->
i_uid
=
root
->
i_gid
=
0
;
root
->
i_atime
=
root
->
i_mtime
=
root
->
i_ctime
=
CURRENT_TIME
;
sb
->
s_blocksize
=
1024
;
sb
->
s_blocksize_bits
=
10
;
sb
->
s_magic
=
PFMFS_MAGIC
;
sb
->
s_op
=
&
pfmfs_ops
;
sb
->
s_root
=
d_alloc
(
NULL
,
&
(
const
struct
qstr
)
{
"pfm:"
,
4
,
0
});
if
(
!
sb
->
s_root
)
{
iput
(
root
);
return
NULL
;
}
sb
->
s_root
->
d_sb
=
sb
;
sb
->
s_root
->
d_parent
=
sb
->
s_root
;
d_instantiate
(
sb
->
s_root
,
root
);
return
sb
;
}
//static DECLARE_FSTYPE(pfm_fs_type, "pfmfs", pfmfs_read_super, FS_NOMOUNT);
static
struct
file_system_type
pfm_fs_type
=
{
name:
"pfmfs"
,
read_super:
pfmfs_read_super
,
fs_flags:
FS_NOMOUNT
,
};
#else
/* ! COMPILED_FOR_2_4 */
static
struct
super_block
*
pfmfs_get_sb
(
struct
file_system_type
*
fs_type
,
int
flags
,
char
*
dev_name
,
void
*
data
)
{
return
get_sb_pseudo
(
fs_type
,
"pfm:"
,
NULL
,
PFMFS_MAGIC
);
}
static
struct
file_system_type
pfm_fs_type
=
{
.
name
=
"pfmfs"
,
.
get_sb
=
pfmfs_get_sb
,
.
kill_sb
=
kill_anon_super
,
};
#endif
/* COMPILED_FOR_2_4 */
static
int
__init
init_pfm_fs
(
void
)
...
...
@@ -2453,7 +2324,7 @@ pfm_smpl_buffer_alloc(struct task_struct *task, pfm_context_t *ctx, unsigned lon
down_write
(
&
task
->
mm
->
mmap_sem
);
/* find some free area in address space, must have mmap sem held */
vma
->
vm_start
=
get_unmapped_area
(
NULL
,
0
,
size
,
0
,
MAP_PRIVATE
|
MAP_ANONYMOUS
);
vma
->
vm_start
=
pfm_get_unmapped_area
(
NULL
,
0
,
size
,
0
,
MAP_PRIVATE
|
MAP_ANONYMOUS
,
0
);
if
(
vma
->
vm_start
==
0UL
)
{
DPRINT
((
"Cannot find unmapped area for size %ld
\n
"
,
size
));
up_write
(
&
task
->
mm
->
mmap_sem
);
...
...
@@ -3020,7 +2891,7 @@ pfm_write_pmcs(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
* as attempts to modify PMC[0-3] which are used
* as status registers by the PMU
*/
if
(
!
PMC_IS_IMPL
(
cnum
)
||
cnum
<
4
)
{
if
(
PMC_IS_IMPL
(
cnum
)
==
0
||
PMC_IS_CONTROL
(
cnum
)
)
{
DPRINT
((
"pmc%u is unimplemented or invalid
\n
"
,
cnum
));
goto
error
;
}
...
...
@@ -4124,7 +3995,7 @@ pfm_stop(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
/*
* monitoring disabled in kernel at next reschedule
*/
ctx
->
ctx_saved_psr
&=
~
IA64_PSR_UP
;
ctx
->
ctx_saved_psr
_up
=
0
;
printk
(
"pfm_stop: current [%d] task=[%d]
\n
"
,
current
->
pid
,
ctx
->
ctx_task
->
pid
);
}
return
0
;
...
...
@@ -4198,7 +4069,7 @@ pfm_start(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
* start monitoring at the kernel level the next
* time the task is scheduled
*/
ctx
->
ctx_saved_psr
|
=
IA64_PSR_UP
;
ctx
->
ctx_saved_psr
_up
=
IA64_PSR_UP
;
/*
* activate monitoring at user level
...
...
@@ -4429,7 +4300,7 @@ pfm_context_load(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
SET_LAST_CPU
(
ctx
,
-
1
);
/* initial saved psr (stopped) */
ctx
->
ctx_saved_psr
=
pfm_get_psr
()
&
~
(
IA64_PSR_PP
|
IA64_PSR_UP
)
;
ctx
->
ctx_saved_psr
_up
=
0UL
;
ia64_psr
(
regs
)
->
up
=
ia64_psr
(
regs
)
->
pp
=
0
;
if
(
ctx
->
ctx_fl_unsecure
)
{
...
...
@@ -5640,6 +5511,7 @@ pfm_save_regs(struct task_struct *task)
unsigned
long
flags
;
u64
psr
;
ctx
=
PFM_GET_CTX
(
task
);
if
(
ctx
==
NULL
)
goto
save_error
;
t
=
&
task
->
thread
;
...
...
@@ -5672,9 +5544,9 @@ pfm_save_regs(struct task_struct *task)
* sanity check
*/
if
(
ctx
->
ctx_last_activation
!=
GET_ACTIVATION
())
{
DPRINT
(
(
"ctx_activation=%lu activation=%lu state=%d: no save
\n
"
,
printk
(
"ctx_activation=%lu activation=%lu state=%d: no save
\n
"
,
ctx
->
ctx_last_activation
,
GET_ACTIVATION
(),
ctx
->
ctx_state
)
)
;
GET_ACTIVATION
(),
ctx
->
ctx_state
);
pfm_unprotect_ctx_ctxsw
(
ctx
,
flags
);
...
...
@@ -5684,8 +5556,11 @@ pfm_save_regs(struct task_struct *task)
/*
* save current PSR: needed because we modify it
*/
ia64_srlz_d
();
psr
=
pfm_get_psr
();
BUG_ON
(
psr
&
(
IA64_PSR_I
));
/*
* stop monitoring:
* This is the last instruction which may generate an overflow
...
...
@@ -5696,9 +5571,13 @@ pfm_save_regs(struct task_struct *task)
pfm_clear_psr_up
();
/*
* keep a copy of
the saved psr
(for reload)
* keep a copy of
psr.up
(for reload)
*/
ctx
->
ctx_saved_psr
=
psr
;
ctx
->
ctx_saved_psr_up
=
psr
&
IA64_PSR_UP
;
{
u64
foo
=
pfm_get_psr
();
BUG_ON
(
foo
&
((
IA64_PSR_UP
|
IA64_PSR_PP
)));
}
/*
* release ownership of this PMU.
...
...
@@ -5772,18 +5651,16 @@ pfm_save_regs(struct task_struct *task)
pfm_clear_psr_up
();
/*
* keep a copy of
the saved psr
(for reload)
* keep a copy of
psr.up
(for reload)
*/
ctx
->
ctx_saved_psr
=
psr
;
ctx
->
ctx_saved_psr
_up
=
psr
&
IA64_PSR_UP
;
psr
=
pfm_get_psr
();
if
(
psr
&
IA64_PSR_UP
)
{
printk
(
KERN_ERR
" perfmon: pfm_save_regs: psr.up set current [%d] owner [%d] psr=0x%lx
\n
"
,
current
->
pid
,
GET_PMU_OWNER
()
->
pid
,
psr
);
}
if
(
psr
&
IA64_PSR_I
)
{
printk
(
KERN_ERR
" perfmon: pfm_save_regs: psr.i set current [%d] owner [%d] psr=0x%lx
\n
"
,
current
->
pid
,
GET_PMU_OWNER
()
->
pid
,
psr
);
#if 1
{
u64
foo
=
pfm_get_psr
();
BUG_ON
(
foo
&
(
IA64_PSR_I
));
BUG_ON
(
foo
&
((
IA64_PSR_UP
|
IA64_PSR_PP
)));
}
#endif
return
;
save_error:
printk
(
KERN_ERR
"perfmon: pfm_save_regs CPU%d [%d] NULL context PM_VALID=%ld
\n
"
,
...
...
@@ -5797,13 +5674,10 @@ pfm_lazy_save_regs (struct task_struct *task)
pfm_context_t
*
ctx
;
struct
thread_struct
*
t
;
unsigned
long
flags
;
unsigned
long
psr
;
#if 1
psr
=
pfm_get_psr
();
if
(
psr
&
IA64_PSR_UP
)
{
printk
(
KERN_ERR
" perfmon: pfm_lazy_save_regs: psr.up set current [%d] owner [%d] psr=0x%lx
\n
"
,
current
->
pid
,
task
->
pid
,
psr
);
pfm_clear_psr_up
();
{
u64
foo
=
pfm_get_psr
();
BUG_ON
(
foo
&
IA64_PSR_UP
);
}
#endif
...
...
@@ -5864,10 +5738,9 @@ pfm_load_regs (struct task_struct *task)
{
pfm_context_t
*
ctx
;
struct
thread_struct
*
t
;
struct
task_struct
*
owner
;
unsigned
long
pmc_mask
=
0UL
,
pmd_mask
=
0UL
;
unsigned
long
flags
;
u64
psr
;
u64
psr
,
psr_up
;
ctx
=
PFM_GET_CTX
(
task
);
if
(
unlikely
(
ctx
==
NULL
))
{
...
...
@@ -5875,22 +5748,21 @@ pfm_load_regs (struct task_struct *task)
return
;
}
owner
=
GET_PMU_OWNER
();
BUG_ON
(
GET_PMU_OWNER
());
t
=
&
task
->
thread
;
psr
=
pfm_get_psr
();
#if 1
psr
=
pfm_get_psr
();
BUG_ON
(
psr
&
IA64_PSR_UP
);
psr
=
pfm_get_psr
();
BUG_ON
(
psr
&
(
IA64_PSR_UP
|
IA64_PSR_PP
));
BUG_ON
(
psr
&
IA64_PSR_I
);
#endif
/*
* possible on unload
*/
if
(
unlikely
((
t
->
flags
&
IA64_THREAD_PM_VALID
)
==
0
))
{
DPRINT
((
"[%d] PM_VALID=0, nothing to do
\n
"
,
task
->
pid
)
);
printk
(
"[%d] PM_VALID=0, nothing to do
\n
"
,
task
->
pid
);
return
;
}
...
...
@@ -5923,19 +5795,15 @@ pfm_load_regs (struct task_struct *task)
/*
* we restore ALL the debug registers to avoid picking up
* stale state.
*
* This must be done even when the task is still the owner
* as the registers may have been modified via ptrace()
* (not perfmon) by the previous task.
*/
if
(
ctx
->
ctx_fl_using_dbreg
)
{
pfm_restore_ibrs
(
ctx
->
ctx_ibrs
,
pmu_conf
.
num_ibrs
);
pfm_restore_dbrs
(
ctx
->
ctx_dbrs
,
pmu_conf
.
num_dbrs
);
}
/*
* retrieve saved psr
* retrieve saved psr
.up
*/
psr
=
ctx
->
ctx_saved_psr
;
psr
_up
=
ctx
->
ctx_saved_psr_up
;
/*
* if we were the last user of the PMU on that CPU,
...
...
@@ -5968,8 +5836,8 @@ pfm_load_regs (struct task_struct *task)
*/
pmc_mask
=
ctx
->
ctx_all_pmcs
[
0
];
DPRINT
((
"full reload for [%d]
owner=%d
activation=%lu last_activation=%lu last_cpu=%d pmd_mask=0x%lx pmc_mask=0x%lx
\n
"
,
task
->
pid
,
owner
?
owner
->
pid
:
-
1
,
DPRINT
((
"full reload for [%d] activation=%lu last_activation=%lu last_cpu=%d pmd_mask=0x%lx pmc_mask=0x%lx
\n
"
,
task
->
pid
,
GET_ACTIVATION
(),
ctx
->
ctx_last_activation
,
GET_LAST_CPU
(
ctx
),
pmd_mask
,
pmc_mask
));
...
...
@@ -6026,9 +5894,9 @@ pfm_load_regs (struct task_struct *task)
SET_PMU_OWNER
(
task
,
ctx
);
/*
* restore the psr
we changed
* restore the psr
.up bit
*/
pfm_set_psr_l
(
psr
);
if
(
likely
(
psr_up
))
pfm_set_psr_up
(
);
/*
* allow concurrent access to context
...
...
@@ -6047,21 +5915,16 @@ pfm_load_regs (struct task_struct *task)
pfm_context_t
*
ctx
;
struct
task_struct
*
owner
;
unsigned
long
pmd_mask
,
pmc_mask
;
u64
psr
;
u64
psr
,
psr_up
;
owner
=
GET_PMU_OWNER
();
ctx
=
PFM_GET_CTX
(
task
);
t
=
&
task
->
thread
;
owner
=
GET_PMU_OWNER
();
ctx
=
PFM_GET_CTX
(
task
);
t
=
&
task
->
thread
;
psr
=
pfm_get_psr
();
#if 1
psr
=
pfm_get_psr
();
if
(
psr
&
IA64_PSR_UP
)
{
printk
(
KERN_ERR
" perfmon: pfm_load_regs: psr.up set current [%d] owner [%d] psr=0x%lx
\n
"
,
current
->
pid
,
owner
->
pid
,
psr
);
}
psr
=
pfm_get_psr
();
if
(
psr
&
IA64_PSR_I
)
{
printk
(
KERN_ERR
" perfmon: pfm_load_regs: psr.i set current [%d] owner [%d] psr=0x%lx
\n
"
,
current
->
pid
,
owner
->
pid
,
psr
);
}
BUG_ON
(
psr
&
(
IA64_PSR_UP
|
IA64_PSR_PP
));
BUG_ON
(
psr
&
IA64_PSR_I
);
#endif
/*
...
...
@@ -6078,9 +5941,9 @@ pfm_load_regs (struct task_struct *task)
}
/*
* retrieved save
psr
* retrieved save
d psr.up
*/
psr
=
ctx
->
ctx_saved_psr
;
psr
_up
=
ctx
->
ctx_saved_psr_up
;
/*
* short path, our state is still there, just
...
...
@@ -6091,7 +5954,7 @@ pfm_load_regs (struct task_struct *task)
* concurrency even without interrupt masking.
*/
if
(
likely
(
owner
==
task
))
{
pfm_set_psr_l
(
psr
);
if
(
likely
(
psr_up
))
pfm_set_psr_up
(
);
return
;
}
...
...
@@ -6163,8 +6026,7 @@ pfm_load_regs (struct task_struct *task)
* restore the psr. This is the point at which
* new overflow interrupts can be generated again.
*/
pfm_set_psr_l
(
psr
);
if
(
likely
(
psr_up
))
pfm_set_psr_up
();
}
#endif
/* CONFIG_SMP */
...
...
@@ -6469,13 +6331,13 @@ dump_pmu_state(void)
printk
(
"pmd[%d]=0x%lx tpmd=0x%lx
\n
"
,
i
,
ia64_get_pmd
(
i
),
t
->
pmds
[
i
]);
}
if
(
ctx
)
{
printk
(
"ctx_state=%d vaddr=%p addr=%p fd=%d ctx_task=[%d] saved_psr=0x%lx
\n
"
,
printk
(
"ctx_state=%d vaddr=%p addr=%p fd=%d ctx_task=[%d] saved_psr
_up
=0x%lx
\n
"
,
ctx
->
ctx_state
,
ctx
->
ctx_smpl_vaddr
,
ctx
->
ctx_smpl_hdr
,
ctx
->
ctx_msgq_head
,
ctx
->
ctx_msgq_tail
,
ctx
->
ctx_saved_psr
);
ctx
->
ctx_saved_psr
_up
);
}
}
...
...
arch/ia64/kernel/smpboot.c
View file @
f0681259
...
...
@@ -452,7 +452,7 @@ smp_build_cpu_map (void)
sapicid
=
smp_boot_data
.
cpu_phys_id
[
i
];
if
(
sapicid
==
boot_cpu_id
)
continue
;
phys_cpu_present_map
|=
(
1
<<
cpu
);
phys_cpu_present_map
|=
(
1
UL
<<
cpu
);
ia64_cpu_to_sapicid
[
cpu
]
=
sapicid
;
cpu
++
;
}
...
...
arch/ia64/lib/Makefile
View file @
f0681259
...
...
@@ -12,12 +12,7 @@ lib-y := __divsi3.o __udivsi3.o __modsi3.o __umodsi3.o \
lib-$(CONFIG_ITANIUM)
+=
copy_page.o copy_user.o memcpy.o
lib-$(CONFIG_MCKINLEY)
+=
copy_page_mck.o memcpy_mck.o
lib-$(CONFIG_PERFMON)
+=
carta_random.o
ifeq
($(CONFIG_MD_RAID5),m)
lib-y
+=
xor.o
else
lib-$(CONFIG_MD_RAID5)
+=
xor.o
endif
lib-$(CONFIG_MD_RAID5)
+=
xor.o
IGNORE_FLAGS_OBJS
=
__divsi3.o __udivsi3.o __modsi3.o __umodsi3.o
\
__divdi3.o __udivdi3.o __moddi3.o __umoddi3.o
...
...
arch/ia64/pci/pci.c
View file @
f0681259
...
...
@@ -364,8 +364,6 @@ pcibios_fixup_bus (struct pci_bus *b)
return
;
}
#warning pcibios_update_resource() is now a generic implementation - please check
void
__devinit
pcibios_update_irq
(
struct
pci_dev
*
dev
,
int
irq
)
{
...
...
arch/ia64/scripts/toolchain-flags
View file @
f0681259
...
...
@@ -3,15 +3,13 @@
# Check whether linker can handle cross-segment @segrel():
#
CC
=
$1
LD
=
$2
OBJDUMP
=
$3
OBJDUMP
=
$2
dir
=
$(
dirname
$0
)
tmp
=
${
TMPDIR
:-
/tmp
}
out
=
$tmp
/out
$$
$CC
-c
$dir
/check-segrel.S
-o
$out
.o
$LD
-static
-T
$dir
/check-segrel.lds
$out
.o
-o
$out
$CC
-nostdlib
-static
-Wl
,-T
$dir
/check-segrel.lds
$dir
/check-segrel.S
-o
$out
res
=
$(
$OBJDUMP
--full
--section
.rodata
$out
| fgrep 000 |
cut
-f3
-d
' '
)
rm
-f
$out
$out
.o
rm
-f
$out
if
[
$res
!=
00000a00
]
;
then
echo
" -DHAVE_BUGGY_SEGREL"
cat
>
&2
<<
EOF
...
...
arch/ia64/sn/io/drivers/Makefile
View file @
f0681259
...
...
@@ -9,4 +9,4 @@
EXTRA_CFLAGS
:=
-DLITTLE_ENDIAN
obj-y
+=
ioconfig_bus.o
ifconfig_net.o
obj-y
+=
ioconfig_bus.o
arch/ia64/sn/io/drivers/ifconfig_net.c
deleted
100644 → 0
View file @
6571a999
/* $Id: ifconfig_net.c,v 1.1 2002/02/28 17:31:25 marcelo Exp $
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* ifconfig_net - SGI's Persistent Network Device names.
*
* Copyright (C) 1992-1997, 2000-2003 Silicon Graphics, Inc. All rights reserved.
*/
#include <linux/types.h>
#include <linux/config.h>
#include <linux/slab.h>
#include <linux/ctype.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <asm/sn/sgi.h>
#include <linux/devfs_fs.h>
#include <linux/devfs_fs_kernel.h>
#include <asm/io.h>
#include <asm/sn/iograph.h>
#include <asm/sn/invent.h>
#include <asm/sn/hcl.h>
#include <asm/sn/labelcl.h>
#include <asm/sn/ifconfig_net.h>
#define SGI_IFCONFIG_NET "SGI-PERSISTENT NETWORK DEVICE NAME DRIVER"
#define SGI_IFCONFIG_NET_VERSION "1.0"
/*
* Some Global definitions.
*/
static
devfs_handle_t
ifconfig_net_handle
;
static
unsigned
long
ifconfig_net_debug
;
/*
* ifconfig_net_open - Opens the special device node "/devhw/.ifconfig_net".
*/
static
int
ifconfig_net_open
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
if
(
ifconfig_net_debug
)
{
printk
(
"ifconfig_net_open called.
\n
"
);
}
return
(
0
);
}
/*
* ifconfig_net_close - Closes the special device node "/devhw/.ifconfig_net".
*/
static
int
ifconfig_net_close
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
if
(
ifconfig_net_debug
)
{
printk
(
"ifconfig_net_close called.
\n
"
);
}
return
(
0
);
}
/*
* assign_ifname - Assign the next available interface name from the persistent list.
*/
void
assign_ifname
(
struct
net_device
*
dev
,
struct
ifname_num
*
ifname_num
)
{
/*
* Handle eth devices.
*/
if
(
(
memcmp
(
dev
->
name
,
"eth"
,
3
)
==
0
)
)
{
if
(
ifname_num
->
next_eth
!=
-
1
)
{
/*
* Assign it the next available eth interface number.
*/
memset
(
dev
->
name
,
0
,
strlen
(
dev
->
name
));
sprintf
(
dev
->
name
,
"eth%d"
,
(
int
)
ifname_num
->
next_eth
);
ifname_num
->
next_eth
++
;
}
return
;
}
/*
* Handle fddi devices.
*/
if
(
(
memcmp
(
dev
->
name
,
"fddi"
,
4
)
==
0
)
)
{
if
(
ifname_num
->
next_fddi
!=
-
1
)
{
/*
* Assign it the next available fddi interface number.
*/
memset
(
dev
->
name
,
0
,
strlen
(
dev
->
name
));
sprintf
(
dev
->
name
,
"fddi%d"
,
(
int
)
ifname_num
->
next_fddi
);
ifname_num
->
next_fddi
++
;
}
return
;
}
/*
* Handle hip devices.
*/
if
(
(
memcmp
(
dev
->
name
,
"hip"
,
3
)
==
0
)
)
{
if
(
ifname_num
->
next_hip
!=
-
1
)
{
/*
* Assign it the next available hip interface number.
*/
memset
(
dev
->
name
,
0
,
strlen
(
dev
->
name
));
sprintf
(
dev
->
name
,
"hip%d"
,
(
int
)
ifname_num
->
next_hip
);
ifname_num
->
next_hip
++
;
}
return
;
}
/*
* Handle tr devices.
*/
if
(
(
memcmp
(
dev
->
name
,
"tr"
,
2
)
==
0
)
)
{
if
(
ifname_num
->
next_tr
!=
-
1
)
{
/*
* Assign it the next available tr interface number.
*/
memset
(
dev
->
name
,
0
,
strlen
(
dev
->
name
));
sprintf
(
dev
->
name
,
"tr%d"
,
(
int
)
ifname_num
->
next_tr
);
ifname_num
->
next_tr
++
;
}
return
;
}
/*
* Handle fc devices.
*/
if
(
(
memcmp
(
dev
->
name
,
"fc"
,
2
)
==
0
)
)
{
if
(
ifname_num
->
next_fc
!=
-
1
)
{
/*
* Assign it the next available fc interface number.
*/
memset
(
dev
->
name
,
0
,
strlen
(
dev
->
name
));
sprintf
(
dev
->
name
,
"fc%d"
,
(
int
)
ifname_num
->
next_fc
);
ifname_num
->
next_fc
++
;
}
return
;
}
}
/*
* find_persistent_ifname: Returns the entry that was seen in previous boot.
*/
struct
ifname_MAC
*
find_persistent_ifname
(
struct
net_device
*
dev
,
struct
ifname_MAC
*
ifname_MAC
)
{
while
(
ifname_MAC
->
addr_len
)
{
if
(
memcmp
(
dev
->
dev_addr
,
ifname_MAC
->
dev_addr
,
dev
->
addr_len
)
==
0
)
return
(
ifname_MAC
);
ifname_MAC
++
;
}
return
(
NULL
);
}
/*
* ifconfig_net_ioctl: ifconfig_net driver ioctl interface.
*/
static
int
ifconfig_net_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
extern
struct
net_device
*
__dev_get_by_name
(
const
char
*
);
#ifdef CONFIG_NET
struct
net_device
*
dev
;
struct
ifname_MAC
*
found
;
char
temp
[
64
];
#endif
struct
ifname_MAC
*
ifname_MAC
;
struct
ifname_MAC
*
new_devices
,
*
temp_new_devices
;
struct
ifname_num
*
ifname_num
;
unsigned
long
size
;
if
(
ifconfig_net_debug
)
{
printk
(
"HCL: hcl_ioctl called.
\n
"
);
}
/*
* Read in the header and see how big of a buffer we really need to
* allocate.
*/
ifname_num
=
(
struct
ifname_num
*
)
kmalloc
(
sizeof
(
struct
ifname_num
),
GFP_KERNEL
);
copy_from_user
(
ifname_num
,
(
char
*
)
arg
,
sizeof
(
struct
ifname_num
));
size
=
ifname_num
->
size
;
kfree
(
ifname_num
);
ifname_num
=
(
struct
ifname_num
*
)
kmalloc
(
size
,
GFP_KERNEL
);
ifname_MAC
=
(
struct
ifname_MAC
*
)
((
char
*
)
ifname_num
+
(
sizeof
(
struct
ifname_num
))
);
copy_from_user
(
ifname_num
,
(
char
*
)
arg
,
size
);
new_devices
=
kmalloc
(
size
-
sizeof
(
struct
ifname_num
),
GFP_KERNEL
);
temp_new_devices
=
new_devices
;
memset
(
new_devices
,
0
,
size
-
sizeof
(
struct
ifname_num
));
#ifdef CONFIG_NET
/*
* Go through the net device entries and make them persistent!
*/
for
(
dev
=
dev_base
;
dev
!=
NULL
;
dev
=
dev
->
next
)
{
/*
* Skip NULL entries or "lo"
*/
if
(
(
dev
->
addr_len
==
0
)
||
(
!
strncmp
(
dev
->
name
,
"lo"
,
strlen
(
dev
->
name
)))
){
continue
;
}
/*
* See if we have a persistent interface name for this device.
*/
found
=
NULL
;
found
=
find_persistent_ifname
(
dev
,
ifname_MAC
);
if
(
found
)
{
strcpy
(
dev
->
name
,
found
->
name
);
}
else
{
/* Never seen this before .. */
assign_ifname
(
dev
,
ifname_num
);
/*
* Save the information for the next boot.
*/
sprintf
(
temp
,
"%s %02x:%02x:%02x:%02x:%02x:%02x
\n
"
,
dev
->
name
,
dev
->
dev_addr
[
0
],
dev
->
dev_addr
[
1
],
dev
->
dev_addr
[
2
],
dev
->
dev_addr
[
3
],
dev
->
dev_addr
[
4
],
dev
->
dev_addr
[
5
]);
strcpy
(
temp_new_devices
->
name
,
dev
->
name
);
temp_new_devices
->
addr_len
=
dev
->
addr_len
;
memcpy
(
temp_new_devices
->
dev_addr
,
dev
->
dev_addr
,
dev
->
addr_len
);
temp_new_devices
++
;
}
}
#endif
/*
* Copy back to the User Buffer area any new devices encountered.
*/
copy_to_user
((
char
*
)
arg
+
(
sizeof
(
struct
ifname_num
)),
new_devices
,
size
-
sizeof
(
struct
ifname_num
));
return
(
0
);
}
struct
file_operations
ifconfig_net_fops
=
{
ioctl:
ifconfig_net_ioctl
,
/* ioctl */
open:
ifconfig_net_open
,
/* open */
release:
ifconfig_net_close
/* release */
};
/*
* init_ifconfig_net() - Boot time initialization. Ensure that it is called
* after devfs has been initialized.
*
*/
#ifdef MODULE
int
init_module
(
void
)
#else
int
__init
init_ifconfig_net
(
void
)
#endif
{
ifconfig_net_handle
=
NULL
;
ifconfig_net_handle
=
hwgraph_register
(
hwgraph_root
,
".ifconfig_net"
,
0
,
0
,
0
,
0
,
S_IFCHR
|
S_IRUSR
|
S_IWUSR
|
S_IRGRP
,
0
,
0
,
&
ifconfig_net_fops
,
NULL
);
if
(
ifconfig_net_handle
==
NULL
)
{
panic
(
"Unable to create SGI PERSISTENT NETWORK DEVICE Name Driver.
\n
"
);
}
return
(
0
);
}
arch/ia64/sn/io/hwgfs/hcl.c
View file @
f0681259
...
...
@@ -113,22 +113,10 @@ static int hcl_ioctl(struct inode * inode, struct file * file,
}
struct
file_operations
hcl_fops
=
{
(
struct
module
*
)
0
,
NULL
,
/* lseek - default */
NULL
,
/* read - general block-dev read */
NULL
,
/* write - general block-dev write */
NULL
,
/* readdir - bad */
NULL
,
/* poll */
hcl_ioctl
,
/* ioctl */
NULL
,
/* mmap */
hcl_open
,
/* open */
NULL
,
/* flush */
hcl_close
,
/* release */
NULL
,
/* fsync */
NULL
,
/* fasync */
NULL
,
/* lock */
NULL
,
/* readv */
NULL
,
/* writev */
.
owner
=
(
struct
module
*
)
0
,
.
ioctl
=
hcl_ioctl
,
.
open
=
hcl_open
,
.
release
=
hcl_close
,
};
...
...
@@ -140,7 +128,6 @@ int __init init_hcl(void)
{
extern
void
string_table_init
(
struct
string_table
*
);
extern
struct
string_table
label_string_table
;
extern
int
init_ifconfig_net
(
void
);
extern
int
init_ioconfig_bus
(
void
);
extern
int
init_hwgfs_fs
(
void
);
int
rv
=
0
;
...
...
@@ -195,7 +182,6 @@ int __init init_hcl(void)
* Initialize the ifconfgi_net driver that does network devices
* Persistent Naming.
*/
init_ifconfig_net
();
init_ioconfig_bus
();
return
(
0
);
...
...
@@ -258,6 +244,7 @@ hwgraph_fastinfo_get(vertex_hdl_t de)
if
(
!
de
)
{
printk
(
KERN_WARNING
"HCL: hwgraph_fastinfo_get handle given is NULL.
\n
"
);
dump_stack
();
return
(
-
1
);
}
...
...
@@ -568,7 +555,7 @@ hwgraph_edge_add(vertex_hdl_t from, vertex_hdl_t to, char *name)
* In this case the vertex was previous created with a REAL pathname.
*/
rv
=
hwgfs_mk_symlink
(
from
,
(
const
char
*
)
name
,
DEVFS_FL_DEFAULT
,
link
,
0
,
link
,
&
handle
,
NULL
);
kfree
(
path
);
kfree
(
link
);
...
...
arch/ia64/sn/io/machvec/pci.c
View file @
f0681259
...
...
@@ -49,6 +49,8 @@ int sn_read_config(struct pci_bus *bus, unsigned int devfn, int where, int size,
vertex_hdl_t
device_vertex
;
device_vertex
=
devfn_to_vertex
(
bus
->
number
,
devfn
);
if
(
!
device_vertex
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
res
=
pciio_config_get
(
device_vertex
,
(
unsigned
)
where
,
size
);
*
val
=
(
unsigned
int
)
res
;
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -59,6 +61,8 @@ int sn_write_config(struct pci_bus *bus, unsigned int devfn, int where, int size
vertex_hdl_t
device_vertex
;
device_vertex
=
devfn_to_vertex
(
bus
->
number
,
devfn
);
if
(
!
device_vertex
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
pciio_config_set
(
device_vertex
,
(
unsigned
)
where
,
size
,
(
uint64_t
)
val
);
return
PCIBIOS_SUCCESSFUL
;
}
...
...
arch/ia64/sn/io/machvec/pci_dma.c
View file @
f0681259
...
...
@@ -280,7 +280,7 @@ sn_pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int dire
*/
for
(
i
=
0
;
i
<
nents
;
i
++
,
sg
++
)
{
phys_addr
=
__pa
(
sg
->
dma_address
?
sg
->
dma_address
:
page_address
(
sg
->
page
)
+
sg
->
offset
);
(
unsigned
long
)
page_address
(
sg
->
page
)
+
sg
->
offset
);
/*
* Handle the most common case: 64 bit cards. This
...
...
@@ -578,7 +578,7 @@ sn_dma_supported(struct device *dev, u64 mask)
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
return
pci_dma_supported
(
to_pci_dev
(
dev
),
mask
);
return
sn_
pci_dma_supported
(
to_pci_dev
(
dev
),
mask
);
}
EXPORT_SYMBOL
(
sn_dma_supported
);
...
...
@@ -587,7 +587,11 @@ sn_dma_set_mask(struct device *dev, u64 dma_mask)
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
return
pci_set_dma_mask
(
to_pci_dev
(
dev
),
dma_mask
);
if
(
!
sn_dma_supported
(
dev
,
dma_mask
))
return
0
;
dev
->
dma_mask
=
dma_mask
;
return
1
;
}
EXPORT_SYMBOL
(
sn_dma_set_mask
);
...
...
@@ -597,7 +601,7 @@ sn_dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
return
pci_alloc_consistent
(
to_pci_dev
(
dev
),
size
,
dma_handle
);
return
sn_
pci_alloc_consistent
(
to_pci_dev
(
dev
),
size
,
dma_handle
);
}
EXPORT_SYMBOL
(
sn_dma_alloc_coherent
);
...
...
@@ -607,7 +611,7 @@ sn_dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
pci_free_consistent
(
to_pci_dev
(
dev
),
size
,
cpu_addr
,
dma_handle
);
sn_
pci_free_consistent
(
to_pci_dev
(
dev
),
size
,
cpu_addr
,
dma_handle
);
}
EXPORT_SYMBOL
(
sn_dma_free_coherent
);
...
...
@@ -617,7 +621,7 @@ sn_dma_map_single(struct device *dev, void *cpu_addr, size_t size,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
return
pci_map_single
(
to_pci_dev
(
dev
),
cpu_addr
,
size
,
(
int
)
direction
);
return
sn_
pci_map_single
(
to_pci_dev
(
dev
),
cpu_addr
,
size
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_map_single
);
...
...
@@ -627,7 +631,7 @@ sn_dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
pci_unmap_single
(
to_pci_dev
(
dev
),
dma_addr
,
size
,
(
int
)
direction
);
sn_
pci_unmap_single
(
to_pci_dev
(
dev
),
dma_addr
,
size
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_unmap_single
);
...
...
@@ -658,7 +662,7 @@ sn_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
return
pci_map_sg
(
to_pci_dev
(
dev
),
sg
,
nents
,
(
int
)
direction
);
return
sn_
pci_map_sg
(
to_pci_dev
(
dev
),
sg
,
nents
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_map_sg
);
...
...
@@ -668,7 +672,7 @@ sn_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
pci_unmap_sg
(
to_pci_dev
(
dev
),
sg
,
nhwentries
,
(
int
)
direction
);
sn_
pci_unmap_sg
(
to_pci_dev
(
dev
),
sg
,
nhwentries
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_unmap_sg
);
...
...
@@ -678,7 +682,7 @@ sn_dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
pci_dma_sync_single
(
to_pci_dev
(
dev
),
dma_handle
,
size
,
(
int
)
direction
);
sn_
pci_dma_sync_single
(
to_pci_dev
(
dev
),
dma_handle
,
size
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_sync_single
);
...
...
@@ -688,7 +692,7 @@ sn_dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems,
{
BUG_ON
(
dev
->
bus
!=
&
pci_bus_type
);
pci_dma_sync_sg
(
to_pci_dev
(
dev
),
sg
,
nelems
,
(
int
)
direction
);
sn_
pci_dma_sync_sg
(
to_pci_dev
(
dev
),
sg
,
nelems
,
(
int
)
direction
);
}
EXPORT_SYMBOL
(
sn_dma_sync_sg
);
...
...
arch/ia64/sn/kernel/Makefile
View file @
f0681259
...
...
@@ -9,7 +9,8 @@
EXTRA_CFLAGS
:=
-DLITTLE_ENDIAN
obj-y
:=
probe.o setup.o sv.o bte.o irq.o mca.o sn2/
obj-y
:=
probe.o setup.o sv.o bte.o irq.o mca.o
\
idle.o sn2/
obj-$(CONFIG_IA64_GENERIC)
+=
machvec.o
obj-$(CONFIG_MODULES)
+=
sn_ksyms.o
arch/ia64/sn/kernel/idle.c
View file @
f0681259
...
...
@@ -12,7 +12,7 @@
void
snidle
(
int
state
)
{
if
(
state
)
{
if
(
pda
.
idle_flag
==
0
)
{
if
(
pda
->
idle_flag
==
0
)
{
/*
* Turn the activity LED off.
*/
...
...
@@ -24,13 +24,13 @@ void snidle(int state) {
SIMULATOR_SLEEP
();
#endif
pda
.
idle_flag
=
1
;
pda
->
idle_flag
=
1
;
}
else
{
/*
* Turn the activity LED on.
*/
set_led_bits
(
LED_CPU_ACTIVITY
,
LED_CPU_ACTIVITY
);
pda
.
idle_flag
=
0
;
pda
->
idle_flag
=
0
;
}
}
arch/ia64/sn/kernel/machvec.c
View file @
f0681259
...
...
@@ -31,4 +31,5 @@
*/
#define MACHVEC_PLATFORM_NAME sn2
#define MACHVEC_PLATFORM_HEADER <asm/machvec_sn2.h>
#include <asm/machvec_init.h>
arch/ia64/sn/kernel/setup.c
View file @
f0681259
...
...
@@ -75,11 +75,13 @@ DEFINE_PER_CPU(struct pda_s, pda_percpu);
#define pxm_to_nasid(pxm) ((pxm)<<1)
#define MAX_PHYS_MEMORY (1UL << 49)
/* 1 TB */
extern
void
bte_init_node
(
nodepda_t
*
,
cnodeid_t
);
extern
void
bte_init_cpu
(
void
);
extern
void
sn_timer_init
(
void
);
extern
void
sn_timer_init
(
void
);
extern
void
(
*
ia64_mark_idle
)(
int
);
void
snidle
(
int
);
extern
void
snidle
(
int
);
unsigned
long
sn_rtc_cycles_per_second
;
...
...
@@ -296,21 +298,20 @@ sn_setup(char **cmdline_p)
*/
sn_check_for_wars
();
ia64_mark_idle
=
&
snidle
;
/*
* For the bootcpu, we do this here. All other cpus will make the
* call as part of cpu_init in slave cpu initialization.
*/
sn_cpu_init
();
#ifdef CONFIG_SMP
init_smp_config
();
#endif
screen_info
=
sn_screen_info
;
sn_timer_init
();
ia64_mark_idle
=
&
snidle
;
}
/**
...
...
@@ -438,19 +439,3 @@ sn_cpu_init(void)
bte_init_cpu
();
}
void
snidle
(
int
idleness
)
{
if
(
!
idleness
)
{
if
(
pda
->
idle_flag
==
0
)
{
set_led_bits
(
0
,
LED_CPU_ACTIVITY
);
}
pda
->
idle_flag
=
1
;
}
else
{
set_led_bits
(
LED_CPU_ACTIVITY
,
LED_CPU_ACTIVITY
);
pda
->
idle_flag
=
0
;
}
}
include/asm-ia64/agp.h
View file @
f0681259
...
...
@@ -4,7 +4,7 @@
/*
* IA-64 specific AGP definitions.
*
* Copyright (C) 2002 Hewlett-Packard Co
* Copyright (C) 2002
-2003
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
*/
...
...
@@ -18,7 +18,4 @@
#define flush_agp_mappings()
/* nothing */
#define flush_agp_cache() mb()
/* Page-protection value to be used for AGP memory mapped into kernel space. */
#define PAGE_AGP PAGE_KERNEL
#endif
/* _ASM_IA64_AGP_H */
include/asm-ia64/hw_irq.h
View file @
f0681259
...
...
@@ -2,7 +2,7 @@
#define _ASM_IA64_HW_IRQ_H
/*
* Copyright (C) 2001-200
2
Hewlett-Packard Co
* Copyright (C) 2001-200
3
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
*/
...
...
@@ -91,10 +91,10 @@ hw_resend_irq (struct hw_interrupt_type *h, unsigned int vector)
* Default implementations for the irq-descriptor API:
*/
extern
struct
irq_desc
_irq_desc
[
NR_IRQS
];
extern
irq_desc_t
_irq_desc
[
NR_IRQS
];
#ifndef CONFIG_IA64_GENERIC
static
inline
struct
irq_desc
*
static
inline
irq_desc_t
*
__ia64_irq_desc
(
unsigned
int
irq
)
{
return
_irq_desc
+
irq
;
...
...
@@ -124,8 +124,8 @@ __ia64_local_vector_to_irq (ia64_vector vec)
*/
/* Return a pointer to the irq descriptor for IRQ. */
static
inline
struct
irq_desc
*
irq_desc
(
int
irq
)
static
inline
irq_desc_t
*
irq_desc
p
(
int
irq
)
{
return
platform_irq_desc
(
irq
);
}
...
...
include/asm-ia64/thread_info.h
View file @
f0681259
...
...
@@ -37,7 +37,6 @@ struct thread_info {
struct
restart_block
restart_block
;
};
#define INIT_THREAD_SIZE
/* tell sched.h not to declare the thread_union */
#define THREAD_SIZE KERNEL_STACK_SIZE
#define INIT_THREAD_INFO(tsk) \
...
...
include/asm-ia64/timex.h
View file @
f0681259
...
...
@@ -15,8 +15,15 @@
typedef
unsigned
long
cycles_t
;
/*
* Something low processor frequency like 100Mhz but
* yet multiple of HZ to avoid truncation in some formulas.
* For performance reasons, we don't want to define CLOCK_TICK_TRATE as
* local_cpu_data->itc_rate. Fortunately, we don't have to, either: according to George
* Anzinger, 1/CLOCK_TICK_RATE is taken as the resolution of the timer clock. The time
* calculation assumes that you will use enough of these so that your tick size <= 1/HZ.
* If the calculation shows that your CLOCK_TICK_RATE can not supply exactly 1/HZ ticks,
* the actual value is calculated and used to update the wall clock each jiffie. Setting
* the CLOCK_TICK_RATE to x*HZ insures that the calculation will find no errors. Hence we
* pick a multiple of HZ which gives us a (totally virtual) CLOCK_TICK_RATE of about
* 100MHz.
*/
#define CLOCK_TICK_RATE (HZ * 100000UL)
...
...
include/asm-ia64/tlb.h
View file @
f0681259
...
...
@@ -39,6 +39,7 @@
*/
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/swap.h>
#include <asm/processor.h>
#include <asm/tlbflush.h>
...
...
include/asm-ia64/topology.h
View file @
f0681259
...
...
@@ -28,11 +28,6 @@
*/
#define node_to_cpumask(node) (node_to_cpu_mask[node])
#else
#define cpu_to_node(cpu) (0)
#define node_to_cpumask(node) (phys_cpu_present_map)
#endif
/*
* Returns the number of the node containing MemBlk 'memblk'
*/
...
...
@@ -65,4 +60,8 @@
void
build_cpu_to_node_map
(
void
);
#endif
/* CONFIG_NUMA */
#include <asm-generic/topology.h>
#endif
/* _ASM_IA64_TOPOLOGY_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