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
56263875
Commit
56263875
authored
Jun 23, 2003
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
8514206e
df786e56
Changes
33
Show 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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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
;
...
...
@@ -969,9 +969,10 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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
;
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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
8514206e
/* $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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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 @
56263875
...
...
@@ -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