Commit 57cafcc8 authored by David S. Miller's avatar David S. Miller

Merge bk://kernel.bkbits.net/wesolows/sparc32-2.6

into nuts.davemloft.net:/disk1/BK/sparc-2.6
parents f96599ee f756a8b3
...@@ -10,6 +10,9 @@ CONFIG_GENERIC_ISA_DMA=y ...@@ -10,6 +10,9 @@ CONFIG_GENERIC_ISA_DMA=y
# Code maturity level options # Code maturity level options
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_STANDALONE=y
CONFIG_BROKEN_ON_SMP=y
# #
# General setup # General setup
...@@ -19,6 +22,16 @@ CONFIG_SYSVIPC=y ...@@ -19,6 +22,16 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
# #
# Loadable module support # Loadable module support
...@@ -50,9 +63,8 @@ CONFIG_PCI=y ...@@ -50,9 +63,8 @@ CONFIG_PCI=y
# CONFIG_PCI_LEGACY_PROC is not set # CONFIG_PCI_LEGACY_PROC is not set
# CONFIG_PCI_NAMES is not set # CONFIG_PCI_NAMES is not set
CONFIG_SUN_OPENPROMFS=m CONFIG_SUN_OPENPROMFS=m
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=m CONFIG_BINFMT_MISC=m
CONFIG_SUNOS_EMUL=y CONFIG_SUNOS_EMUL=y
...@@ -61,6 +73,11 @@ CONFIG_SUNOS_EMUL=y ...@@ -61,6 +73,11 @@ CONFIG_SUNOS_EMUL=y
# #
# CONFIG_PARPORT is not set # CONFIG_PARPORT is not set
#
# Generic Driver Options
#
# CONFIG_DEBUG_DRIVER is not set
# #
# Graphics support # Graphics support
# #
...@@ -69,7 +86,6 @@ CONFIG_SUNOS_EMUL=y ...@@ -69,7 +86,6 @@ CONFIG_SUNOS_EMUL=y
# #
# Console display driver support # Console display driver support
# #
# CONFIG_VGA_CONSOLE is not set
# CONFIG_MDA_CONSOLE is not set # CONFIG_MDA_CONSOLE is not set
# CONFIG_PROM_CONSOLE is not set # CONFIG_PROM_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE=y
...@@ -89,7 +105,9 @@ CONFIG_DUMMY_CONSOLE=y ...@@ -89,7 +105,9 @@ CONFIG_DUMMY_CONSOLE=y
# #
CONFIG_SERIAL_SUNCORE=y CONFIG_SERIAL_SUNCORE=y
CONFIG_SERIAL_SUNZILOG=y CONFIG_SERIAL_SUNZILOG=y
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
CONFIG_SERIAL_SUNSU=y CONFIG_SERIAL_SUNSU=y
CONFIG_SERIAL_SUNSU_CONSOLE=y
# CONFIG_SERIAL_SUNSAB is not set # CONFIG_SERIAL_SUNSAB is not set
CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_CORE_CONSOLE=y
...@@ -111,13 +129,14 @@ CONFIG_RTC=m ...@@ -111,13 +129,14 @@ CONFIG_RTC=m
# Block devices # Block devices
# #
# CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_CARMEL is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
...@@ -130,12 +149,13 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -130,12 +149,13 @@ CONFIG_BLK_DEV_INITRD=y
# #
# ISDN subsystem # ISDN subsystem
# #
# CONFIG_ISDN_BOOL is not set # CONFIG_ISDN is not set
# #
# SCSI support # SCSI device support
# #
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
# #
# SCSI support type (disk, tape, CD-ROM) # SCSI support type (disk, tape, CD-ROM)
...@@ -155,6 +175,12 @@ CONFIG_SCSI_REPORT_LUNS=y ...@@ -155,6 +175,12 @@ CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_FC_ATTRS is not set
# #
# SCSI low-level drivers # SCSI low-level drivers
# #
...@@ -164,10 +190,9 @@ CONFIG_SCSI_REPORT_LUNS=y ...@@ -164,10 +190,9 @@ CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
...@@ -175,21 +200,22 @@ CONFIG_SCSI_REPORT_LUNS=y ...@@ -175,21 +200,22 @@ CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_EATA_PIO is not set # CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_IPS 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_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_NCR53C8XX 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_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLOGICPTI=m CONFIG_SCSI_QLOGICPTI=m
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DEBUG is not set
CONFIG_SCSI_SUNESP=y CONFIG_SCSI_SUNESP=y
...@@ -199,6 +225,11 @@ CONFIG_SCSI_SUNESP=y ...@@ -199,6 +225,11 @@ CONFIG_SCSI_SUNESP=y
# #
# CONFIG_FC4 is not set # CONFIG_FC4 is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
# #
# Networking support # Networking support
# #
...@@ -210,8 +241,6 @@ CONFIG_NET=y ...@@ -210,8 +241,6 @@ CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set # CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK_DEV=y CONFIG_NETLINK_DEV=y
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_INET=y CONFIG_INET=y
...@@ -224,26 +253,36 @@ CONFIG_IP_PNP_DHCP=y ...@@ -224,26 +253,36 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_NET_IPIP is not set # CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set # CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set # CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set # CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=y CONFIG_INET_AH=y
CONFIG_INET_ESP=y CONFIG_INET_ESP=y
CONFIG_XFRM_USER=m CONFIG_INET_IPCOMP=y
CONFIG_IPV6=m CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_NETFILTER is not set
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# #
# SCTP Configuration (EXPERIMENTAL) # SCTP Configuration (EXPERIMENTAL)
# #
CONFIG_IPV6_SCTP__=y
CONFIG_IP_SCTP=m CONFIG_IP_SCTP=m
# CONFIG_SCTP_ADLER32 is not set
# CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_MSG is not set
CONFIG_SCTP_DBG_OBJCNT=y CONFIG_SCTP_DBG_OBJCNT=y
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
# CONFIG_ATM is not set # CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set # CONFIG_VLAN_8021Q is not set
# CONFIG_LLC is not set # CONFIG_LLC2 is not set
# CONFIG_DECNET is not set # CONFIG_IPX is not set
# CONFIG_BRIDGE is not set # CONFIG_ATALK is not set
# CONFIG_X25 is not set # CONFIG_X25 is not set
# CONFIG_LAPB is not set # CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
...@@ -261,28 +300,97 @@ CONFIG_SCTP_DBG_OBJCNT=y ...@@ -261,28 +300,97 @@ CONFIG_SCTP_DBG_OBJCNT=y
# Network testing # Network testing
# #
CONFIG_NET_PKTGEN=m CONFIG_NET_PKTGEN=m
CONFIG_NETDEVICES=y
# #
# Network device support # ARCnet devices
# #
CONFIG_NETDEVICES=y # CONFIG_ARCNET is not set
CONFIG_DUMMY=m CONFIG_DUMMY=m
# CONFIG_BONDING is not set # CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m CONFIG_TUN=m
# CONFIG_PPP is not set # CONFIG_ETHERTAP is not set
# CONFIG_SLIP is not set
CONFIG_SUNLANCE=m #
CONFIG_HAPPYMEAL=y # Ethernet (10 or 100Mbit)
# CONFIG_SUNBMAC is not set #
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
CONFIG_SUNLANCE=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNBMAC=m
CONFIG_SUNQE=m CONFIG_SUNQE=m
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_MYRI_SBUS is not set # CONFIG_MYRI_SBUS is not set
CONFIG_VORTEX=m # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# #
# Amateur Radio support # Amateur Radio support
# #
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# #
# Unix98 PTY support # Unix98 PTY support
# #
...@@ -297,7 +405,7 @@ CONFIG_INPUT=y ...@@ -297,7 +405,7 @@ CONFIG_INPUT=y
# #
# Userland interfaces # Userland interfaces
# #
CONFIG_INPUT_MOUSEDEV=m CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
...@@ -315,6 +423,7 @@ CONFIG_SERIO=m ...@@ -315,6 +423,7 @@ CONFIG_SERIO=m
# CONFIG_SERIO_I8042 is not set # CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=m CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
# #
# Input Device Drivers # Input Device Drivers
...@@ -322,11 +431,13 @@ CONFIG_SERIO_SERPORT=m ...@@ -322,11 +431,13 @@ CONFIG_SERIO_SERPORT=m
CONFIG_INPUT_KEYBOARD=y CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=m CONFIG_KEYBOARD_ATKBD=m
CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_SUNKBD=m
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set # CONFIG_INPUT_MISC is not set
...@@ -334,68 +445,93 @@ CONFIG_MOUSE_SERIAL=m ...@@ -334,68 +445,93 @@ CONFIG_MOUSE_SERIAL=m
# #
# File systems # File systems
# #
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_RT=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_MINIX_FS is not set
CONFIG_ROMFS_FS=m
# CONFIG_QUOTA is not set # CONFIG_QUOTA is not set
CONFIG_QUOTACTL=y CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=m CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m CONFIG_AUTOFS4_FS=m
# CONFIG_REISERFS_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_FAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS_XATTR=y
# CONFIG_DEVPTS_FS_SECURITY is not set
# CONFIG_TMPFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set # CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set # CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
CONFIG_BEFS_FS=m CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set # CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set # CONFIG_BFS_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
# CONFIG_FAT_FS is not set
# CONFIG_EFS_FS is not set # CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set # CONFIG_CRAMFS is not set
# CONFIG_TMPFS is not set
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=m
# 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_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_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_QNX4FS_FS is not set
CONFIG_ROMFS_FS=m
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_SYSV_FS is not set # CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set # CONFIG_UFS_FS is not set
CONFIG_XFS_FS=m
CONFIG_XFS_RT=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# #
# Network File Systems # Network File Systems
# #
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set # CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set # CONFIG_NFS_V4 is not set
CONFIG_ROOT_NFS=y # CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set # CONFIG_NFSD is not set
CONFIG_SUNRPC=y CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y CONFIG_LOCKD=y
# CONFIG_EXPORTFS is not set # CONFIG_EXPORTFS is not set
CONFIG_CIFS=m CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_SMB_FS is not set # CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_AFS_FS=m CONFIG_AFS_FS=m
CONFIG_RXRPC=m CONFIG_RXRPC=m
CONFIG_FS_MBCACHE=y
CONFIG_FS_POSIX_ACL=y
# #
# Partition Types # Partition Types
...@@ -403,11 +539,11 @@ CONFIG_FS_POSIX_ACL=y ...@@ -403,11 +539,11 @@ CONFIG_FS_POSIX_ACL=y
# CONFIG_PARTITION_ADVANCED is not set # CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y CONFIG_MSDOS_PARTITION=y
CONFIG_SUN_PARTITION=y CONFIG_SUN_PARTITION=y
CONFIG_NLS=y
# #
# Native Language Support # Native Language Support
# #
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_737 is not set
...@@ -448,7 +584,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" ...@@ -448,7 +584,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_UTF8 is not set # CONFIG_NLS_UTF8 is not set
# #
# Sound card support # Sound
# #
# CONFIG_SOUND is not set # CONFIG_SOUND is not set
...@@ -456,26 +592,28 @@ CONFIG_NLS_DEFAULT="iso8859-1" ...@@ -456,26 +592,28 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# USB support # USB support
# #
# CONFIG_USB is not set # CONFIG_USB is not set
# CONFIG_USB_GADGET is not set
# #
# Bluetooth support # USB Gadget Support
# #
# CONFIG_BT is not set # CONFIG_USB_GADGET is not set
# #
# Watchdog # Watchdog Cards
# #
# CONFIG_SOFT_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# #
# Kernel hacking # Kernel hacking
# #
CONFIG_DEBUG_SLAB=y CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_SPINLOCK=y # CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_BUGVERBOSE is not set
# #
# Security options # Security options
...@@ -492,13 +630,22 @@ CONFIG_CRYPTO_MD4=y ...@@ -492,13 +630,22 @@ CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_TEST is not set # CONFIG_CRYPTO_TEST is not set
# #
# Library routines # Library routines
# #
CONFIG_CRC32=y CONFIG_CRC32=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
...@@ -288,10 +288,9 @@ bad_trap_handler: ...@@ -288,10 +288,9 @@ bad_trap_handler:
wr %l0, PSR_ET, %psr wr %l0, PSR_ET, %psr
WRITE_PAUSE WRITE_PAUSE
mov %l7, %o0 ! trap number add %sp, STACKFRAME_SZ, %o0 ! pt_regs
mov %l0, %o1 ! psr
call do_hw_interrupt call do_hw_interrupt
mov %l1, %o2 ! pc mov %l7, %o1 ! trap number
RESTORE_ALL RESTORE_ALL
...@@ -350,21 +349,15 @@ smp4m_ticker: ...@@ -350,21 +349,15 @@ smp4m_ticker:
* for cross calls. That has a separate entry point below. * for cross calls. That has a separate entry point below.
*/ */
maybe_smp4m_msg: maybe_smp4m_msg:
GET_PROCESSOR_MID(o3) GET_PROCESSOR4M_ID(o3)
set sun4m_interrupts, %l5 set sun4m_interrupts, %l5
ld [%l5], %o5 ld [%l5], %o5
sethi %hi(0x60000000), %o4 sethi %hi(0x40000000), %o2
sll %o3, 12, %o3 sll %o3, 12, %o3
ld [%o5 + %o3], %o1 ld [%o5 + %o3], %o1
andcc %o1, %o4, %g0 andcc %o1, %o2, %g0
be,a smp4m_ticker be,a smp4m_ticker
cmp %l7, 14 cmp %l7, 14
sethi %hi(0x40000000), %o2
add %o5, %o3, %o5
andcc %o1, %o2, %g0
be,a 1f
sethi %hi(0x20000000), %o2
1:
st %o2, [%o5 + 0x4] st %o2, [%o5 + 0x4]
WRITE_PAUSE WRITE_PAUSE
ld [%o5], %g0 ld [%o5], %g0
...@@ -374,15 +367,9 @@ maybe_smp4m_msg: ...@@ -374,15 +367,9 @@ maybe_smp4m_msg:
WRITE_PAUSE WRITE_PAUSE
wr %l4, PSR_ET, %psr wr %l4, PSR_ET, %psr
WRITE_PAUSE WRITE_PAUSE
srl %o2, (16+14), %o2
tst %o2
bne 2f
nop
call smp_reschedule_irq call smp_reschedule_irq
add %o7, 8, %o7
2:
call smp_stop_cpu_irq
nop nop
RESTORE_ALL RESTORE_ALL
.align 4 .align 4
...@@ -390,7 +377,7 @@ maybe_smp4m_msg: ...@@ -390,7 +377,7 @@ maybe_smp4m_msg:
linux_trap_ipi15_sun4m: linux_trap_ipi15_sun4m:
SAVE_ALL SAVE_ALL
sethi %hi(0x80000000), %o2 sethi %hi(0x80000000), %o2
GET_PROCESSOR_MID(o0) GET_PROCESSOR4M_ID(o0)
set sun4m_interrupts, %l5 set sun4m_interrupts, %l5
ld [%l5], %o5 ld [%l5], %o5
sll %o0, 12, %o0 sll %o0, 12, %o0
......
...@@ -746,9 +746,6 @@ go_to_highmem: ...@@ -746,9 +746,6 @@ go_to_highmem:
jmpl %g1, %g0 jmpl %g1, %g0
nop nop
/* This is to align init_thread_union properly, be careful. -DaveM */
.align 8192
/* The code above should be at beginning and we have to take care about /* The code above should be at beginning and we have to take care about
* short jumps, as branching to .text.init section from .text is usually * short jumps, as branching to .text.init section from .text is usually
* impossible */ * impossible */
......
...@@ -21,5 +21,7 @@ EXPORT_SYMBOL(init_task); ...@@ -21,5 +21,7 @@ EXPORT_SYMBOL(init_task);
* If this is not aligned on a 8k boundry, then you should change code * If this is not aligned on a 8k boundry, then you should change code
* in etrap.S which assumes it. * in etrap.S which assumes it.
*/ */
__asm__(".section \".text\",#alloc\n"); union thread_union init_thread_union
union thread_union init_thread_union = { INIT_THREAD_INFO(init_task) }; __attribute__((section (".text")))
__attribute__((aligned (THREAD_SIZE)))
= { INIT_THREAD_INFO(init_task) };
...@@ -36,7 +36,9 @@ void module_free(struct module *mod, void *module_region) ...@@ -36,7 +36,9 @@ void module_free(struct module *mod, void *module_region)
table entries. */ table entries. */
} }
/* Make generic code ignore STT_REGISTER dummy undefined symbols. */ /* Make generic code ignore STT_REGISTER dummy undefined symbols,
* and replace references to .func with func as in ppc64's dedotify.
*/
int module_frob_arch_sections(Elf_Ehdr *hdr, int module_frob_arch_sections(Elf_Ehdr *hdr,
Elf_Shdr *sechdrs, Elf_Shdr *sechdrs,
char *secstrings, char *secstrings,
...@@ -44,7 +46,7 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, ...@@ -44,7 +46,7 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
{ {
unsigned int symidx; unsigned int symidx;
Elf32_Sym *sym; Elf32_Sym *sym;
const char *strtab; char *strtab;
int i; int i;
for (symidx = 0; sechdrs[symidx].sh_type != SHT_SYMTAB; symidx++) { for (symidx = 0; sechdrs[symidx].sh_type != SHT_SYMTAB; symidx++) {
...@@ -57,9 +59,15 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, ...@@ -57,9 +59,15 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
strtab = (char *)sechdrs[sechdrs[symidx].sh_link].sh_addr; strtab = (char *)sechdrs[sechdrs[symidx].sh_link].sh_addr;
for (i = 1; i < sechdrs[symidx].sh_size / sizeof(Elf_Sym); i++) { for (i = 1; i < sechdrs[symidx].sh_size / sizeof(Elf_Sym); i++) {
if (sym[i].st_shndx == SHN_UNDEF && if (sym[i].st_shndx == SHN_UNDEF) {
ELF32_ST_TYPE(sym[i].st_info) == STT_REGISTER) if (ELF32_ST_TYPE(sym[i].st_info) == STT_REGISTER)
sym[i].st_shndx = SHN_ABS; sym[i].st_shndx = SHN_ABS;
else {
char *name = strtab + sym[i].st_name;
if (name[0] == '.')
memmove(name, name+1, strlen(name));
}
}
} }
return 0; return 0;
} }
......
...@@ -1128,9 +1128,9 @@ do_sys_sigstack(struct sigstack __user *ssptr, struct sigstack __user *ossptr, ...@@ -1128,9 +1128,9 @@ do_sys_sigstack(struct sigstack __user *ssptr, struct sigstack __user *ossptr,
/* Now see if we want to update the new state. */ /* Now see if we want to update the new state. */
if (ssptr) { if (ssptr) {
void *ss_sp; char *ss_sp;
if (get_user((long)ss_sp, &ssptr->the_stack)) if (get_user(ss_sp, &ssptr->the_stack))
goto out; goto out;
/* If the current stack was set with sigaltstack, don't /* If the current stack was set with sigaltstack, don't
swap stacks while we are on it. */ swap stacks while we are on it. */
......
...@@ -92,31 +92,21 @@ extern void ___set_bit(void); ...@@ -92,31 +92,21 @@ extern void ___set_bit(void);
extern void ___clear_bit(void); extern void ___clear_bit(void);
extern void ___change_bit(void); extern void ___change_bit(void);
/* One thing to note is that the way the symbols of the mul/div /* Alias functions whose names begin with "." and export the aliases.
* support routines are named is a mess, they all start with * The module references will be fixed up by module_frob_arch_sections.
* a '.' which makes it a bitch to export, here is the trick:
*/ */
#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \
extern __ret __x(__arg1, __arg2) \
__attribute__((weak, alias("." # __x)));
/* If the interface of any of these special functions does ever DOT_ALIAS2(int, div, int, int)
* change in an incompatible way, you must modify this. DOT_ALIAS2(int, mul, int, int)
*/ DOT_ALIAS2(int, rem, int, int)
#define DOT_PROTO(sym) extern int __dot_##sym(int, int) DOT_ALIAS2(unsigned, udiv, unsigned, unsigned)
DOT_ALIAS2(unsigned, umul, unsigned, unsigned)
#ifdef __GENKSYMS__ DOT_ALIAS2(unsigned, urem, unsigned, unsigned)
#define EXPORT_SYMBOL_DOT(sym) \
DOT_PROTO(sym); \ #undef DOT_ALIAS2
EXPORT_SYMBOL(__dot_ ## sym)
#else /* !__GENKSYMS__ */
#define EXPORT_SYMBOL_DOT(sym) \
DOT_PROTO(sym) __asm__("." # sym); \
__CRC_SYMBOL(__dot_##sym, "") \
static const char __kstrtab___dot_##sym[] \
__attribute__((section("__ksymtab_strings"))) \
= "." #sym; \
static const struct kernel_symbol __ksymtab___dot_##sym \
__attribute__((section("__ksymtab"))) \
= { (unsigned long)&__dot_##sym, __kstrtab___dot_##sym }
#endif
/* used by various drivers */ /* used by various drivers */
EXPORT_SYMBOL(sparc_cpu_model); EXPORT_SYMBOL(sparc_cpu_model);
...@@ -180,21 +170,20 @@ EXPORT_SYMBOL(io_remap_page_range); ...@@ -180,21 +170,20 @@ EXPORT_SYMBOL(io_remap_page_range);
/* EXPORT_SYMBOL(iounit_map_dma_init); */ /* EXPORT_SYMBOL(iounit_map_dma_init); */
/* EXPORT_SYMBOL(iounit_map_dma_page); */ /* EXPORT_SYMBOL(iounit_map_dma_page); */
/* Btfixup stuff cannot have versions, it would be complicated too much */
#ifndef CONFIG_SMP #ifndef CONFIG_SMP
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(___xchg32)); EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32));
#else #else
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(__smp_processor_id)); EXPORT_SYMBOL(BTFIXUP_CALL(__hard_smp_processor_id));
#endif #endif
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(enable_irq)); EXPORT_SYMBOL(BTFIXUP_CALL(enable_irq));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(disable_irq)); EXPORT_SYMBOL(BTFIXUP_CALL(disable_irq));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(__irq_itoa)); EXPORT_SYMBOL(BTFIXUP_CALL(__irq_itoa));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_unlockarea)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_unlockarea));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_lockarea)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_lockarea));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_get_scsi_sgl)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_get_scsi_one)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_release_scsi_sgl)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl));
EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_release_scsi_one)); EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one));
#ifdef CONFIG_SBUS #ifdef CONFIG_SBUS
EXPORT_SYMBOL(sbus_root); EXPORT_SYMBOL(sbus_root);
...@@ -271,15 +260,15 @@ EXPORT_SYMBOL(__prom_getsibling); ...@@ -271,15 +260,15 @@ EXPORT_SYMBOL(__prom_getsibling);
/* sparc library symbols */ /* sparc library symbols */
EXPORT_SYMBOL(bcopy); EXPORT_SYMBOL(bcopy);
EXPORT_SYMBOL(memchr); EXPORT_SYMBOL(memchr);
EXPORT_SYMBOL_NOVERS(memscan); EXPORT_SYMBOL(memscan);
EXPORT_SYMBOL_NOVERS(strlen); EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strnlen); EXPORT_SYMBOL(strnlen);
EXPORT_SYMBOL(strcpy); EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strncpy); EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strcat); EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strncat); EXPORT_SYMBOL(strncat);
EXPORT_SYMBOL(strcmp); EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL_NOVERS(strncmp); EXPORT_SYMBOL(strncmp);
EXPORT_SYMBOL(strchr); EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr); EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(strpbrk); EXPORT_SYMBOL(strpbrk);
...@@ -309,28 +298,24 @@ EXPORT_SYMBOL(csum_partial); ...@@ -309,28 +298,24 @@ EXPORT_SYMBOL(csum_partial);
/* Cache flushing. */ /* Cache flushing. */
EXPORT_SYMBOL(sparc_flush_page_to_ram); EXPORT_SYMBOL(sparc_flush_page_to_ram);
/* No version information on this, heavily used in inline asm, EXPORT_SYMBOL(__ret_efault);
* and will always be 'void __ret_efault(void)'.
*/ EXPORT_SYMBOL(memcmp);
EXPORT_SYMBOL_NOVERS(__ret_efault); EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
/* No version information on these, as gcc produces such symbols. */ EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL_NOVERS(memcmp); EXPORT_SYMBOL(__ashrdi3);
EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL(__ashldi3);
EXPORT_SYMBOL_NOVERS(memset); EXPORT_SYMBOL(__lshrdi3);
EXPORT_SYMBOL_NOVERS(memmove); EXPORT_SYMBOL(__muldi3);
EXPORT_SYMBOL_NOVERS(__ashrdi3); EXPORT_SYMBOL(__divdi3);
EXPORT_SYMBOL_NOVERS(__ashldi3);
EXPORT_SYMBOL_NOVERS(__lshrdi3); EXPORT_SYMBOL(rem);
EXPORT_SYMBOL_NOVERS(__muldi3); EXPORT_SYMBOL(urem);
EXPORT_SYMBOL_NOVERS(__divdi3); EXPORT_SYMBOL(mul);
EXPORT_SYMBOL(umul);
EXPORT_SYMBOL_DOT(rem); EXPORT_SYMBOL(div);
EXPORT_SYMBOL_DOT(urem); EXPORT_SYMBOL(udiv);
EXPORT_SYMBOL_DOT(mul);
EXPORT_SYMBOL_DOT(umul);
EXPORT_SYMBOL_DOT(div);
EXPORT_SYMBOL_DOT(udiv);
#ifdef CONFIG_DEBUG_BUGVERBOSE #ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL(do_BUG); EXPORT_SYMBOL(do_BUG);
......
...@@ -343,7 +343,7 @@ static int sunos_filldir(void * __buf, const char * name, int namlen, ...@@ -343,7 +343,7 @@ static int sunos_filldir(void * __buf, const char * name, int namlen,
put_user(reclen, &dirent->d_reclen); put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen); copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen); put_user(0, dirent->d_name + namlen);
((char *) dirent) += reclen; dirent = (void *)dirent + reclen;
buf->curr = dirent; buf->curr = dirent;
buf->count -= reclen; buf->count -= reclen;
return 0; return 0;
...@@ -422,7 +422,7 @@ static int sunos_filldirentry(void * __buf, const char * name, int namlen, ...@@ -422,7 +422,7 @@ static int sunos_filldirentry(void * __buf, const char * name, int namlen,
put_user(reclen, &dirent->d_reclen); put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen); copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen); put_user(0, dirent->d_name + namlen);
((char *) dirent) += reclen; dirent = (void *)dirent + reclen;
buf->curr = dirent; buf->curr = dirent;
buf->count -= reclen; buf->count -= reclen;
return 0; return 0;
......
...@@ -131,23 +131,23 @@ void die_if_kernel(char *str, struct pt_regs *regs) ...@@ -131,23 +131,23 @@ void die_if_kernel(char *str, struct pt_regs *regs)
do_exit(SIGSEGV); do_exit(SIGSEGV);
} }
void do_hw_interrupt(unsigned long type, unsigned long psr, unsigned long pc) void do_hw_interrupt(struct pt_regs *regs, unsigned long type)
{ {
siginfo_t info; siginfo_t info;
if(type < 0x80) { if(type < 0x80) {
/* Sun OS's puke from bad traps, Linux survives! */ /* Sun OS's puke from bad traps, Linux survives! */
printk("Unimplemented Sparc TRAP, type = %02lx\n", type); printk("Unimplemented Sparc TRAP, type = %02lx\n", type);
die_if_kernel("Whee... Hello Mr. Penguin", current->thread.kregs); die_if_kernel("Whee... Hello Mr. Penguin", regs);
} }
if(psr & PSR_PS) if(regs->psr & PSR_PS)
die_if_kernel("Kernel bad trap", current->thread.kregs); die_if_kernel("Kernel bad trap", regs);
info.si_signo = SIGILL; info.si_signo = SIGILL;
info.si_errno = 0; info.si_errno = 0;
info.si_code = ILL_ILLTRP; info.si_code = ILL_ILLTRP;
info.si_addr = (void *)pc; info.si_addr = (void *)regs->pc;
info.si_trapno = type - 0x80; info.si_trapno = type - 0x80;
force_sig_info(SIGILL, &info, current); force_sig_info(SIGILL, &info, current);
} }
......
...@@ -7,5 +7,7 @@ EXTRA_AFLAGS := -ansi -DST_DIV0=0x02 ...@@ -7,5 +7,7 @@ EXTRA_AFLAGS := -ansi -DST_DIV0=0x02
lib-y := mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \ lib-y := mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \
strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \ strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \
strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \ strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \
copy_user.o locks.o atomic.o atomic32.o bitops.o debuglocks.o \ copy_user.o locks.o atomic.o atomic32.o bitops.o \
lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o
lib-$(CONFIG_DEBUG_SPINLOCK) += debuglocks.o
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
#include <asm/psr.h> #include <asm/psr.h>
#include <asm/system.h> #include <asm/system.h>
/* To enable this code, just define SPIN_LOCK_DEBUG in asm/spinlock.h */ #ifdef CONFIG_SMP
#ifdef SPIN_LOCK_DEBUG
/* Some notes on how these debugging routines work. When a lock is acquired /* Some notes on how these debugging routines work. When a lock is acquired
* an extra debugging member lock->owner_pc is set to the caller of the lock * an extra debugging member lock->owner_pc is set to the caller of the lock
...@@ -200,4 +199,4 @@ void _do_write_unlock(rwlock_t *rw) ...@@ -200,4 +199,4 @@ void _do_write_unlock(rwlock_t *rw)
rw->lock = 0; rw->lock = 0;
} }
#endif /* SPIN_LOCK_DEBUG */ #endif /* SMP */
...@@ -327,6 +327,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) ...@@ -327,6 +327,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
#ifdef DEBUG_MATHEMU #ifdef DEBUG_MATHEMU
printk("unknown FPop1: %03lx\n",(insn>>5)&0x1ff); printk("unknown FPop1: %03lx\n",(insn>>5)&0x1ff);
#endif #endif
break;
} }
} else if ((insn & 0xc1f80000) == 0x81a80000) /* FPOP2 */ { } else if ((insn & 0xc1f80000) == 0x81a80000) /* FPOP2 */ {
switch ((insn >> 5) & 0x1ff) { switch ((insn >> 5) & 0x1ff) {
...@@ -340,6 +341,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) ...@@ -340,6 +341,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
#ifdef DEBUG_MATHEMU #ifdef DEBUG_MATHEMU
printk("unknown FPop2: %03lx\n",(insn>>5)&0x1ff); printk("unknown FPop2: %03lx\n",(insn>>5)&0x1ff);
#endif #endif
break;
} }
} }
......
...@@ -18,17 +18,6 @@ ...@@ -18,17 +18,6 @@
#define GET_PROCESSOR4D_ID(reg) \ #define GET_PROCESSOR4D_ID(reg) \
lda [%g0] ASI_M_VIKING_TMP1, %reg; lda [%g0] ASI_M_VIKING_TMP1, %reg;
/* Blackbox */
#define GET_PROCESSOR_ID(reg) \
sethi %hi(___b_smp_processor_id), %reg; \
sethi %hi(boot_cpu_id), %reg; \
ldub [%reg + %lo(boot_cpu_id)], %reg;
#define GET_PROCESSOR_MID(reg) \
rd %tbr, %reg; \
srl %reg, 12, %reg; \
and %reg, 3, %reg;
/* All trap entry points _must_ begin with this macro or else you /* All trap entry points _must_ begin with this macro or else you
* lose. It makes sure the kernel has a proper window so that * lose. It makes sure the kernel has a proper window so that
* c-code can be called. * c-code can be called.
......
...@@ -53,8 +53,8 @@ void smp_info(struct seq_file *); ...@@ -53,8 +53,8 @@ void smp_info(struct seq_file *);
BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)
BTFIXUPDEF_CALL(void, smp_message_pass, int, int, unsigned long, int) BTFIXUPDEF_CALL(void, smp_message_pass, int, int, unsigned long, int)
BTFIXUPDEF_CALL(int, __smp_processor_id, void) BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void)
BTFIXUPDEF_BLACKBOX(smp_processor_id) BTFIXUPDEF_BLACKBOX(hard_smp_processor_id)
BTFIXUPDEF_BLACKBOX(load_current) BTFIXUPDEF_BLACKBOX(load_current)
#define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5) #define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5)
...@@ -129,7 +129,7 @@ extern __inline__ int hard_smp_processor_id(void) ...@@ -129,7 +129,7 @@ extern __inline__ int hard_smp_processor_id(void)
"=&r" (cpuid)); "=&r" (cpuid));
See btfixup.h and btfixupprep.c to understand how a blackbox works. See btfixup.h and btfixupprep.c to understand how a blackbox works.
*/ */
__asm__ __volatile__("sethi %%hi(___b_smp_processor_id), %0\n\t" __asm__ __volatile__("sethi %%hi(___b_hard_smp_processor_id), %0\n\t"
"sethi %%hi(boot_cpu_id), %0\n\t" "sethi %%hi(boot_cpu_id), %0\n\t"
"ldub [%0 + %%lo(boot_cpu_id)], %0\n\t" : "ldub [%0 + %%lo(boot_cpu_id)], %0\n\t" :
"=&r" (cpuid)); "=&r" (cpuid));
...@@ -141,7 +141,7 @@ extern __inline__ int hard_smp_processor_id(void) ...@@ -141,7 +141,7 @@ extern __inline__ int hard_smp_processor_id(void)
int cpuid; int cpuid;
__asm__ __volatile__("mov %%o7, %%g1\n\t" __asm__ __volatile__("mov %%o7, %%g1\n\t"
"call ___f___smp_processor_id\n\t" "call ___f___hard_smp_processor_id\n\t"
" nop\n\t" " nop\n\t"
"mov %%g2, %0\n\t" : "=r"(cpuid) : : "g1", "g2"); "mov %%g2, %0\n\t" : "=r"(cpuid) : : "g1", "g2");
return cpuid; return cpuid;
......
...@@ -141,26 +141,14 @@ new_symbol(const char *name, struct module *module, unsigned int *crc) ...@@ -141,26 +141,14 @@ new_symbol(const char *name, struct module *module, unsigned int *crc)
symbolhash[hash] = new; symbolhash[hash] = new;
} }
#define DOTSYM_PFX "__dot_"
struct symbol * struct symbol *
find_symbol(const char *name) find_symbol(const char *name)
{ {
struct symbol *s; struct symbol *s;
char dotname[64 + sizeof(DOTSYM_PFX)];
/* .foo matches foo. PPC64 needs this. */ /* For our purposes, .foo matches foo. PPC64 needs this. */
if (name[0] == '.') { if (name[0] == '.')
name++; name++;
strcpy(dotname, DOTSYM_PFX);
strncat(dotname, name, sizeof(dotname) - sizeof(DOTSYM_PFX) - 1);
dotname[sizeof(dotname)-1] = 0;
/* Sparc32 wants .foo to match __dot_foo, try this first. */
for (s = symbolhash[tdb_hash(dotname) % SYMBOL_HASH_SIZE]; s; s=s->next) {
if (strcmp(s->name, dotname) == 0)
return s;
}
}
for (s = symbolhash[tdb_hash(name) % SYMBOL_HASH_SIZE]; s; s=s->next) { for (s = symbolhash[tdb_hash(name) % SYMBOL_HASH_SIZE]; s; s=s->next) {
if (strcmp(s->name, name) == 0) if (strcmp(s->name, name) == 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment