summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/sparc/defconfig303
-rw-r--r--arch/sparc/kernel/entry.S27
-rw-r--r--arch/sparc/kernel/head.S3
-rw-r--r--arch/sparc/kernel/init_task.c6
-rw-r--r--arch/sparc/kernel/module.c18
-rw-r--r--arch/sparc/kernel/signal.c4
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c105
-rw-r--r--arch/sparc/kernel/sys_sunos.c4
-rw-r--r--arch/sparc/kernel/traps.c10
-rw-r--r--arch/sparc/lib/Makefile4
-rw-r--r--arch/sparc/lib/debuglocks.c5
-rw-r--r--arch/sparc/math-emu/math.c2
-rw-r--r--arch/sparc64/kernel/sparc64_ksyms.c3
-rw-r--r--drivers/block/carmel.c3
-rw-r--r--drivers/fc4/soc.h10
-rw-r--r--fs/intermezzo/file.c6
-rw-r--r--fs/intermezzo/fileset.c10
-rw-r--r--fs/intermezzo/journal.c4
-rw-r--r--fs/intermezzo/kml_reint.c10
-rw-r--r--fs/intermezzo/psdev.c8
-rw-r--r--fs/intermezzo/upcall.c9
-rw-r--r--include/asm-sparc/asmmacro.h11
-rw-r--r--include/asm-sparc/smp.h8
-rw-r--r--scripts/modpost.c16
24 files changed, 356 insertions, 233 deletions
diff --git a/arch/sparc/defconfig b/arch/sparc/defconfig
index 8b43157340e1..3a4ddbd07cef 100644
--- a/arch/sparc/defconfig
+++ b/arch/sparc/defconfig
@@ -10,6 +10,9 @@ CONFIG_GENERIC_ISA_DMA=y
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_STANDALONE=y
+CONFIG_BROKEN_ON_SMP=y
#
# General setup
@@ -19,6 +22,16 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
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
@@ -50,9 +63,8 @@ CONFIG_PCI=y
# CONFIG_PCI_LEGACY_PROC is not set
# CONFIG_PCI_NAMES is not set
CONFIG_SUN_OPENPROMFS=m
-CONFIG_KCORE_ELF=y
-CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=m
CONFIG_SUNOS_EMUL=y
@@ -62,6 +74,11 @@ CONFIG_SUNOS_EMUL=y
# CONFIG_PARPORT is not set
#
+# Generic Driver Options
+#
+# CONFIG_DEBUG_DRIVER is not set
+
+#
# Graphics support
#
# CONFIG_FB is not set
@@ -69,7 +86,6 @@ CONFIG_SUNOS_EMUL=y
#
# Console display driver support
#
-# CONFIG_VGA_CONSOLE is not set
# CONFIG_MDA_CONSOLE is not set
# CONFIG_PROM_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
@@ -89,7 +105,9 @@ CONFIG_DUMMY_CONSOLE=y
#
CONFIG_SERIAL_SUNCORE=y
CONFIG_SERIAL_SUNZILOG=y
+CONFIG_SERIAL_SUNZILOG_CONSOLE=y
CONFIG_SERIAL_SUNSU=y
+CONFIG_SERIAL_SUNSU_CONSOLE=y
# CONFIG_SERIAL_SUNSAB is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
@@ -111,13 +129,14 @@ CONFIG_RTC=m
# Block devices
#
# 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_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
@@ -130,12 +149,13 @@ CONFIG_BLK_DEV_INITRD=y
#
# ISDN subsystem
#
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
#
-# SCSI support
+# SCSI device support
#
CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
@@ -156,6 +176,12 @@ CONFIG_SCSI_REPORT_LUNS=y
# 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
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
@@ -164,10 +190,9 @@ CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
-# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
@@ -175,21 +200,22 @@ CONFIG_SCSI_REPORT_LUNS=y
# 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_IPS is not set
# CONFIG_SCSI_INIA100 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_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
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_DC390T is not set
-# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
CONFIG_SCSI_SUNESP=y
@@ -200,6 +226,11 @@ CONFIG_SCSI_SUNESP=y
# CONFIG_FC4 is not set
#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
# Networking support
#
CONFIG_NET=y
@@ -210,8 +241,6 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK_DEV=y
-# CONFIG_NETFILTER is not set
-# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_NET_KEY=m
CONFIG_INET=y
@@ -224,26 +253,36 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
-CONFIG_XFRM_USER=m
+CONFIG_INET_IPCOMP=y
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)
#
-CONFIG_IPV6_SCTP__=y
CONFIG_IP_SCTP=m
-# CONFIG_SCTP_ADLER32 is not set
# CONFIG_SCTP_DBG_MSG is not set
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_VLAN_8021Q is not set
-# CONFIG_LLC is not set
-# CONFIG_DECNET is not set
-# CONFIG_BRIDGE is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
@@ -261,22 +300,79 @@ CONFIG_SCTP_DBG_OBJCNT=y
# Network testing
#
CONFIG_NET_PKTGEN=m
+CONFIG_NETDEVICES=y
#
-# Network device support
+# ARCnet devices
#
-CONFIG_NETDEVICES=y
+# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-CONFIG_SUNLANCE=m
-CONFIG_HAPPYMEAL=y
-# CONFIG_SUNBMAC is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_SUNLANCE=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNBMAC=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_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
@@ -284,6 +380,18 @@ CONFIG_VORTEX=m
# 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
#
CONFIG_UNIX98_PTYS=y
@@ -297,7 +405,7 @@ CONFIG_INPUT=y
#
# Userland interfaces
#
-CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
@@ -315,6 +423,7 @@ CONFIG_SERIO=m
# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
#
# Input Device Drivers
@@ -322,11 +431,13 @@ CONFIG_SERIO_SERPORT=m
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=m
CONFIG_KEYBOARD_SUNKBD=m
+# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_SERIAL=m
+# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
@@ -334,68 +445,93 @@ CONFIG_MOUSE_SERIAL=m
#
# 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_QUOTACTL=y
CONFIG_AUTOFS_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_AFFS_FS is not set
# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG 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_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_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=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_SYSV_FS is not set
-# CONFIG_UDF_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
#
-# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 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_SUNRPC=y
+CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
# 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_CIFS=m
# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
CONFIG_AFS_FS=m
CONFIG_RXRPC=m
-CONFIG_FS_MBCACHE=y
-CONFIG_FS_POSIX_ACL=y
#
# Partition Types
@@ -403,11 +539,11 @@ CONFIG_FS_POSIX_ACL=y
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_SUN_PARTITION=y
-CONFIG_NLS=y
#
# Native Language Support
#
+CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
@@ -448,7 +584,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_UTF8 is not set
#
-# Sound card support
+# Sound
#
# CONFIG_SOUND is not set
@@ -456,26 +592,28 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# USB support
#
# 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
#
-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_DEBUG_SPINLOCK=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
#
# Security options
@@ -492,13 +630,22 @@ CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=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
#
# Library routines
#
CONFIG_CRC32=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S
index 4763e795cd15..7078869af840 100644
--- a/arch/sparc/kernel/entry.S
+++ b/arch/sparc/kernel/entry.S
@@ -288,10 +288,9 @@ bad_trap_handler:
wr %l0, PSR_ET, %psr
WRITE_PAUSE
- mov %l7, %o0 ! trap number
- mov %l0, %o1 ! psr
+ add %sp, STACKFRAME_SZ, %o0 ! pt_regs
call do_hw_interrupt
- mov %l1, %o2 ! pc
+ mov %l7, %o1 ! trap number
RESTORE_ALL
@@ -350,21 +349,15 @@ smp4m_ticker:
* for cross calls. That has a separate entry point below.
*/
maybe_smp4m_msg:
- GET_PROCESSOR_MID(o3)
+ GET_PROCESSOR4M_ID(o3)
set sun4m_interrupts, %l5
ld [%l5], %o5
- sethi %hi(0x60000000), %o4
+ sethi %hi(0x40000000), %o2
sll %o3, 12, %o3
ld [%o5 + %o3], %o1
- andcc %o1, %o4, %g0
+ andcc %o1, %o2, %g0
be,a smp4m_ticker
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]
WRITE_PAUSE
ld [%o5], %g0
@@ -374,15 +367,9 @@ maybe_smp4m_msg:
WRITE_PAUSE
wr %l4, PSR_ET, %psr
WRITE_PAUSE
- srl %o2, (16+14), %o2
- tst %o2
- bne 2f
- nop
call smp_reschedule_irq
- add %o7, 8, %o7
-2:
- call smp_stop_cpu_irq
nop
+
RESTORE_ALL
.align 4
@@ -390,7 +377,7 @@ maybe_smp4m_msg:
linux_trap_ipi15_sun4m:
SAVE_ALL
sethi %hi(0x80000000), %o2
- GET_PROCESSOR_MID(o0)
+ GET_PROCESSOR4M_ID(o0)
set sun4m_interrupts, %l5
ld [%l5], %o5
sll %o0, 12, %o0
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S
index 0e669d0bfbe1..42d3de59d19b 100644
--- a/arch/sparc/kernel/head.S
+++ b/arch/sparc/kernel/head.S
@@ -746,9 +746,6 @@ go_to_highmem:
jmpl %g1, %g0
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
* short jumps, as branching to .text.init section from .text is usually
* impossible */
diff --git a/arch/sparc/kernel/init_task.c b/arch/sparc/kernel/init_task.c
index 8b451b235665..0b29e5fa130f 100644
--- a/arch/sparc/kernel/init_task.c
+++ b/arch/sparc/kernel/init_task.c
@@ -21,5 +21,7 @@ EXPORT_SYMBOL(init_task);
* If this is not aligned on a 8k boundry, then you should change code
* in etrap.S which assumes it.
*/
-__asm__(".section \".text\",#alloc\n");
-union thread_union init_thread_union = { INIT_THREAD_INFO(init_task) };
+union thread_union init_thread_union
+ __attribute__((section (".text")))
+ __attribute__((aligned (THREAD_SIZE)))
+ = { INIT_THREAD_INFO(init_task) };
diff --git a/arch/sparc/kernel/module.c b/arch/sparc/kernel/module.c
index 1bde20c52683..7931d6f92819 100644
--- a/arch/sparc/kernel/module.c
+++ b/arch/sparc/kernel/module.c
@@ -36,7 +36,9 @@ void module_free(struct module *mod, void *module_region)
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,
Elf_Shdr *sechdrs,
char *secstrings,
@@ -44,7 +46,7 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
{
unsigned int symidx;
Elf32_Sym *sym;
- const char *strtab;
+ char *strtab;
int i;
for (symidx = 0; sechdrs[symidx].sh_type != SHT_SYMTAB; symidx++) {
@@ -57,9 +59,15 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
strtab = (char *)sechdrs[sechdrs[symidx].sh_link].sh_addr;
for (i = 1; i < sechdrs[symidx].sh_size / sizeof(Elf_Sym); i++) {
- if (sym[i].st_shndx == SHN_UNDEF &&
- ELF32_ST_TYPE(sym[i].st_info) == STT_REGISTER)
- sym[i].st_shndx = SHN_ABS;
+ if (sym[i].st_shndx == SHN_UNDEF) {
+ if (ELF32_ST_TYPE(sym[i].st_info) == STT_REGISTER)
+ 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;
}
diff --git a/arch/sparc/kernel/signal.c b/arch/sparc/kernel/signal.c
index a4ff14653c5a..4bc6d4bc4a2b 100644
--- a/arch/sparc/kernel/signal.c
+++ b/arch/sparc/kernel/signal.c
@@ -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. */
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;
/* If the current stack was set with sigaltstack, don't
swap stacks while we are on it. */
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index 39c2aaa70e88..601c97a31dd0 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -92,31 +92,21 @@ extern void ___set_bit(void);
extern void ___clear_bit(void);
extern void ___change_bit(void);
-/* One thing to note is that the way the symbols of the mul/div
- * support routines are named is a mess, they all start with
- * a '.' which makes it a bitch to export, here is the trick:
+/* Alias functions whose names begin with "." and export the aliases.
+ * The module references will be fixed up by module_frob_arch_sections.
*/
+#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
- * change in an incompatible way, you must modify this.
- */
-#define DOT_PROTO(sym) extern int __dot_##sym(int, int)
-
-#ifdef __GENKSYMS__
-#define EXPORT_SYMBOL_DOT(sym) \
- DOT_PROTO(sym); \
- 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
+DOT_ALIAS2(int, div, int, int)
+DOT_ALIAS2(int, mul, int, int)
+DOT_ALIAS2(int, rem, int, int)
+DOT_ALIAS2(unsigned, udiv, unsigned, unsigned)
+DOT_ALIAS2(unsigned, umul, unsigned, unsigned)
+DOT_ALIAS2(unsigned, urem, unsigned, unsigned)
+
+#undef DOT_ALIAS2
/* used by various drivers */
EXPORT_SYMBOL(sparc_cpu_model);
@@ -180,21 +170,20 @@ EXPORT_SYMBOL(io_remap_page_range);
/* EXPORT_SYMBOL(iounit_map_dma_init); */
/* EXPORT_SYMBOL(iounit_map_dma_page); */
-/* Btfixup stuff cannot have versions, it would be complicated too much */
#ifndef CONFIG_SMP
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(___xchg32));
+EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32));
#else
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(__smp_processor_id));
+EXPORT_SYMBOL(BTFIXUP_CALL(__hard_smp_processor_id));
#endif
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(enable_irq));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(disable_irq));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(__irq_itoa));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_unlockarea));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_lockarea));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_get_scsi_sgl));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_get_scsi_one));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_release_scsi_sgl));
-EXPORT_SYMBOL_NOVERS(BTFIXUP_CALL(mmu_release_scsi_one));
+EXPORT_SYMBOL(BTFIXUP_CALL(enable_irq));
+EXPORT_SYMBOL(BTFIXUP_CALL(disable_irq));
+EXPORT_SYMBOL(BTFIXUP_CALL(__irq_itoa));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_unlockarea));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_lockarea));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl));
+EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one));
#ifdef CONFIG_SBUS
EXPORT_SYMBOL(sbus_root);
@@ -271,15 +260,15 @@ EXPORT_SYMBOL(__prom_getsibling);
/* sparc library symbols */
EXPORT_SYMBOL(bcopy);
EXPORT_SYMBOL(memchr);
-EXPORT_SYMBOL_NOVERS(memscan);
-EXPORT_SYMBOL_NOVERS(strlen);
+EXPORT_SYMBOL(memscan);
+EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strnlen);
EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strncat);
EXPORT_SYMBOL(strcmp);
-EXPORT_SYMBOL_NOVERS(strncmp);
+EXPORT_SYMBOL(strncmp);
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(strpbrk);
@@ -309,28 +298,24 @@ EXPORT_SYMBOL(csum_partial);
/* Cache flushing. */
EXPORT_SYMBOL(sparc_flush_page_to_ram);
-/* No version information on this, heavily used in inline asm,
- * and will always be 'void __ret_efault(void)'.
- */
-EXPORT_SYMBOL_NOVERS(__ret_efault);
-
-/* No version information on these, as gcc produces such symbols. */
-EXPORT_SYMBOL_NOVERS(memcmp);
-EXPORT_SYMBOL_NOVERS(memcpy);
-EXPORT_SYMBOL_NOVERS(memset);
-EXPORT_SYMBOL_NOVERS(memmove);
-EXPORT_SYMBOL_NOVERS(__ashrdi3);
-EXPORT_SYMBOL_NOVERS(__ashldi3);
-EXPORT_SYMBOL_NOVERS(__lshrdi3);
-EXPORT_SYMBOL_NOVERS(__muldi3);
-EXPORT_SYMBOL_NOVERS(__divdi3);
-
-EXPORT_SYMBOL_DOT(rem);
-EXPORT_SYMBOL_DOT(urem);
-EXPORT_SYMBOL_DOT(mul);
-EXPORT_SYMBOL_DOT(umul);
-EXPORT_SYMBOL_DOT(div);
-EXPORT_SYMBOL_DOT(udiv);
+EXPORT_SYMBOL(__ret_efault);
+
+EXPORT_SYMBOL(memcmp);
+EXPORT_SYMBOL(memcpy);
+EXPORT_SYMBOL(memset);
+EXPORT_SYMBOL(memmove);
+EXPORT_SYMBOL(__ashrdi3);
+EXPORT_SYMBOL(__ashldi3);
+EXPORT_SYMBOL(__lshrdi3);
+EXPORT_SYMBOL(__muldi3);
+EXPORT_SYMBOL(__divdi3);
+
+EXPORT_SYMBOL(rem);
+EXPORT_SYMBOL(urem);
+EXPORT_SYMBOL(mul);
+EXPORT_SYMBOL(umul);
+EXPORT_SYMBOL(div);
+EXPORT_SYMBOL(udiv);
#ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL(do_BUG);
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c
index 001f15d9b7a6..4b0dfff5822f 100644
--- a/arch/sparc/kernel/sys_sunos.c
+++ b/arch/sparc/kernel/sys_sunos.c
@@ -343,7 +343,7 @@ static int sunos_filldir(void * __buf, const char * name, int namlen,
put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen);
- ((char *) dirent) += reclen;
+ dirent = (void *)dirent + reclen;
buf->curr = dirent;
buf->count -= reclen;
return 0;
@@ -422,7 +422,7 @@ static int sunos_filldirentry(void * __buf, const char * name, int namlen,
put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen);
- ((char *) dirent) += reclen;
+ dirent = (void *)dirent + reclen;
buf->curr = dirent;
buf->count -= reclen;
return 0;
diff --git a/arch/sparc/kernel/traps.c b/arch/sparc/kernel/traps.c
index 6a31aa439c6b..136a00c7be00 100644
--- a/arch/sparc/kernel/traps.c
+++ b/arch/sparc/kernel/traps.c
@@ -131,23 +131,23 @@ void die_if_kernel(char *str, struct pt_regs *regs)
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;
if(type < 0x80) {
/* Sun OS's puke from bad traps, Linux survives! */
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)
- die_if_kernel("Kernel bad trap", current->thread.kregs);
+ if(regs->psr & PSR_PS)
+ die_if_kernel("Kernel bad trap", regs);
info.si_signo = SIGILL;
info.si_errno = 0;
info.si_code = ILL_ILLTRP;
- info.si_addr = (void *)pc;
+ info.si_addr = (void *)regs->pc;
info.si_trapno = type - 0x80;
force_sig_info(SIGILL, &info, current);
}
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index fe28088b8926..2296ff9dc47a 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -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 \
strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.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
+
+lib-$(CONFIG_DEBUG_SPINLOCK) += debuglocks.o
diff --git a/arch/sparc/lib/debuglocks.c b/arch/sparc/lib/debuglocks.c
index ac699a32c956..fb182352782c 100644
--- a/arch/sparc/lib/debuglocks.c
+++ b/arch/sparc/lib/debuglocks.c
@@ -12,8 +12,7 @@
#include <asm/psr.h>
#include <asm/system.h>
-/* To enable this code, just define SPIN_LOCK_DEBUG in asm/spinlock.h */
-#ifdef SPIN_LOCK_DEBUG
+#ifdef CONFIG_SMP
/* 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
@@ -200,4 +199,4 @@ void _do_write_unlock(rwlock_t *rw)
rw->lock = 0;
}
-#endif /* SPIN_LOCK_DEBUG */
+#endif /* SMP */
diff --git a/arch/sparc/math-emu/math.c b/arch/sparc/math-emu/math.c
index cd15e4f41ef2..deaacb893396 100644
--- a/arch/sparc/math-emu/math.c
+++ b/arch/sparc/math-emu/math.c
@@ -327,6 +327,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
#ifdef DEBUG_MATHEMU
printk("unknown FPop1: %03lx\n",(insn>>5)&0x1ff);
#endif
+ break;
}
} else if ((insn & 0xc1f80000) == 0x81a80000) /* FPOP2 */ {
switch ((insn >> 5) & 0x1ff) {
@@ -340,6 +341,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
#ifdef DEBUG_MATHEMU
printk("unknown FPop2: %03lx\n",(insn>>5)&0x1ff);
#endif
+ break;
}
}
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c
index 79459a13c877..6501896d9472 100644
--- a/arch/sparc64/kernel/sparc64_ksyms.c
+++ b/arch/sparc64/kernel/sparc64_ksyms.c
@@ -91,6 +91,7 @@ extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *);
extern long sparc32_open(const char * filename, int flags, int mode);
extern int io_remap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned long offset, unsigned long size, pgprot_t prot, int space);
+extern void (*prom_palette)(int);
extern int __ashrdi3(int, int);
@@ -388,3 +389,5 @@ EXPORT_SYMBOL(xor_vis_2);
EXPORT_SYMBOL(xor_vis_3);
EXPORT_SYMBOL(xor_vis_4);
EXPORT_SYMBOL(xor_vis_5);
+
+EXPORT_SYMBOL(prom_palette);
diff --git a/drivers/block/carmel.c b/drivers/block/carmel.c
index 6eae858c1b9d..81819216df9f 100644
--- a/drivers/block/carmel.c
+++ b/drivers/block/carmel.c
@@ -994,7 +994,8 @@ static void carm_handle_array_info(struct carm_host *host,
}
printk(KERN_INFO DRV_NAME "(%s): port %u device %Lu sectors\n",
- pci_name(host->pdev), port->port_no, port->capacity);
+ pci_name(host->pdev), port->port_no,
+ (unsigned long long) port->capacity);
printk(KERN_INFO DRV_NAME "(%s): port %u device \"%s\"\n",
pci_name(host->pdev), port->port_no, port->name);
diff --git a/drivers/fc4/soc.h b/drivers/fc4/soc.h
index c9c6d1d9d959..7015eb7ba795 100644
--- a/drivers/fc4/soc.h
+++ b/drivers/fc4/soc.h
@@ -114,18 +114,22 @@ static inline u8 xram_get_8 (xram_p x)
static inline void xram_copy_from (void *p, xram_p x, int len)
{
for (len >>= 2; len > 0; len--, x += sizeof(u32)) {
- u32 val;
+ u32 val, *p32 = p;
val = ((sbus_readw(x + 0x00UL) << 16) |
(sbus_readw(x + 0x02UL)));
- *((u32 *)p)++ = val;
+ *p32++ = val;
+ p = p32;
}
}
static inline void xram_copy_to (xram_p x, void *p, int len)
{
for (len >>= 2; len > 0; len--, x += sizeof(u32)) {
- u32 tmp = *((u32 *)p)++;
+ u32 tmp, *p32 = p;
+
+ tmp = *p32++;
+ p = p32;
sbus_writew(tmp >> 16, x + 0x00UL);
sbus_writew(tmp, x + 0x02UL);
}
diff --git a/fs/intermezzo/file.c b/fs/intermezzo/file.c
index 909672a7d431..f6256427b50b 100644
--- a/fs/intermezzo/file.c
+++ b/fs/intermezzo/file.c
@@ -82,7 +82,7 @@ static int presto_open_upcall(int minor, struct dentry *de)
info.remote_generation = dd->remote_generation;
} else
CERROR("get_fileid failed %d, ino: %Lx, fetching by name\n", rc,
- dd->remote_ino);
+ (unsigned long long) dd->remote_ino);
rc = izo_upc_open(minor, pathlen, path, fset->fset_name, &info);
PRESTO_FREE(buffer, PAGE_SIZE);
@@ -380,7 +380,7 @@ static ssize_t presto_file_write(struct file *file, const char *buf,
<< file->f_dentry->d_inode->i_sb->s_blocksize_bits);
error = presto_reserve_space(fset->fset_cache, res_size);
- CDEBUG(D_INODE, "Reserved %Ld for %d\n", res_size, size);
+ CDEBUG(D_INODE, "Reserved %Ld for %Zd\n", res_size, size);
if ( error ) {
EXIT;
return -ENOSPC;
@@ -440,7 +440,7 @@ static ssize_t presto_file_write(struct file *file, const char *buf,
fops = filter_c2cffops(cache->cache_filter);
res = fops->write(file, buf, size, off);
if ( res != size ) {
- CDEBUG(D_FILE, "file write returns short write: size %d, res %d\n", size, res);
+ CDEBUG(D_FILE, "file write returns short write: size %Zd, res %Zd\n", size, res);
}
if ( (res > 0) && fdata )
diff --git a/fs/intermezzo/fileset.c b/fs/intermezzo/fileset.c
index 823c2a4c4d2a..9db8cab514eb 100644
--- a/fs/intermezzo/fileset.c
+++ b/fs/intermezzo/fileset.c
@@ -647,8 +647,9 @@ int izo_set_fileid(struct file *dir, struct izo_ioctl_data *data)
CDEBUG(D_FILE,"de:%p dd:%p\n", dentry, dd);
if (dd->remote_ino != 0) {
- CERROR("remote_ino already set? %Lx:%Lx\n", dd->remote_ino,
- dd->remote_generation);
+ CERROR("remote_ino already set? %Lx:%Lx\n",
+ (unsigned long long) dd->remote_ino,
+ (unsigned long long) dd->remote_generation);
rc = 0;
EXIT;
goto out_close;
@@ -656,8 +657,9 @@ int izo_set_fileid(struct file *dir, struct izo_ioctl_data *data)
CDEBUG(D_FILE,"setting %p %p, %s to %Lx:%Lx\n", dentry, dd,
- buf, data->ioc_ino,
- data->ioc_generation);
+ buf,
+ (unsigned long long) data->ioc_ino,
+ (unsigned long long) data->ioc_generation);
dd->remote_ino = data->ioc_ino;
dd->remote_generation = data->ioc_generation;
diff --git a/fs/intermezzo/journal.c b/fs/intermezzo/journal.c
index 5e9ff741fe90..2beda3863789 100644
--- a/fs/intermezzo/journal.c
+++ b/fs/intermezzo/journal.c
@@ -1470,7 +1470,7 @@ int presto_clear_lml_close(struct presto_file_set *fset, loff_t lml_offset)
return 0;
}
- CDEBUG(D_JOURNAL, "reading prefix: off %ld, size %d\n",
+ CDEBUG(D_JOURNAL, "reading prefix: off %ld, size %Zd\n",
(long)lml_offset, sizeof(record));
rc = presto_fread(fset->fset_lml.fd_file, (char *)&record,
sizeof(record), &offset);
@@ -1621,7 +1621,7 @@ int presto_get_fileid(int minor, struct presto_file_set *fset,
/* journal_log_suffix expects journal_log to set this */
suffix->recno = 0;
- CDEBUG(D_FILE, "actual kml size: %d\n", logrecord - record);
+ CDEBUG(D_FILE, "actual kml size: %Zd\n", logrecord - record);
CDEBUG(D_FILE, "get fileid: uid %d, gid %d, path: %s\n", uid, gid,path);
error = izo_upc_get_fileid(minor, size, record,
diff --git a/fs/intermezzo/kml_reint.c b/fs/intermezzo/kml_reint.c
index 1ac598457b88..e447b766ed54 100644
--- a/fs/intermezzo/kml_reint.c
+++ b/fs/intermezzo/kml_reint.c
@@ -162,7 +162,8 @@ static int reint_close(struct kml_rec *rec, struct file *file,
*/
if (error == ENOENT) {
CDEBUG(D_KML, "manually updating remote offset uuid %s"
- "recno %d offset %Lu\n", info.uuid, info.recno, info.kml_offset);
+ "recno %d offset %Lu\n", info.uuid, info.recno,
+ (unsigned long long) info.kml_offset);
error = izo_rcvd_upd_remote(fset, info.uuid, info.recno, info.kml_offset);
if(error)
CERROR("izo_rcvd_upd_remote error %d\n", error);
@@ -528,7 +529,7 @@ int kml_reint_rec(struct file *dir, struct izo_ioctl_data *data)
if (rec.suffix->recno != lr_rec.lr_remote_recno + 1) {
CERROR("KML record number %Lu expected, not %d\n",
- lr_rec.lr_remote_recno + 1,
+ (unsigned long long) (lr_rec.lr_remote_recno + 1),
rec.suffix->recno);
#if 0
@@ -631,8 +632,9 @@ int izo_get_fileid(struct file *dir, struct izo_ioctl_data *data)
data->ioc_generation = file->f_dentry->d_inode->i_generation;
filp_close(file, 0);
- CDEBUG(D_FILE, "%s ino %Lx, gen %Lx\n", rec.path,
- data->ioc_ino, data->ioc_generation);
+ CDEBUG(D_FILE, "%s ino %Lx, gen %Lx\n", rec.path,
+ (unsigned long long) data->ioc_ino,
+ (unsigned long long) data->ioc_generation);
out:
if (buf)
diff --git a/fs/intermezzo/psdev.c b/fs/intermezzo/psdev.c
index ec650c324e19..40a85cc7e837 100644
--- a/fs/intermezzo/psdev.c
+++ b/fs/intermezzo/psdev.c
@@ -227,7 +227,7 @@ static ssize_t presto_psdev_write(struct file *file, const char *buf,
/* move data into response buffer. */
if (req->rq_bufsize < count) {
- CERROR("psdev_write: too much cnt: %d, cnt: %d, "
+ CERROR("psdev_write: too much cnt: %d, cnt: %Zd, "
"opc: %d, uniq: %d.\n",
req->rq_bufsize, count, hdr.opcode, hdr.unique);
count = req->rq_bufsize; /* don't have more space! */
@@ -281,7 +281,7 @@ static ssize_t presto_psdev_read(struct file * file, char * buf,
}
if (count < req->rq_bufsize) {
- CERROR ("psdev_read: buffer too small, read %d of %d bytes\n",
+ CERROR ("psdev_read: buffer too small, read %Zd of %d bytes\n",
count, req->rq_bufsize);
}
@@ -592,8 +592,8 @@ int izo_upc_upcall(int minor, int *size, struct izo_upcall_hdr *buffer,
req->rq_opcode, jiffies - req->rq_posttime,
req->rq_unique, req->rq_rep_size);
CDEBUG(D_UPCALL,
- "..process %d woken up by Lento for req at 0x%x, data at %x\n",
- current->pid, (int)req, (int)req->rq_data);
+ "..process %d woken up by Lento for req at 0x%p, data at %p\n",
+ current->pid, req, req->rq_data);
if (channel->uc_pid) { /* i.e. Lento is still alive */
/* Op went through, interrupt or not we go on */
diff --git a/fs/intermezzo/upcall.c b/fs/intermezzo/upcall.c
index e8b6730a3ed7..8019157dd443 100644
--- a/fs/intermezzo/upcall.c
+++ b/fs/intermezzo/upcall.c
@@ -142,7 +142,10 @@ int izo_upc_kml(int minor, __u64 offset, __u32 first_recno, __u64 length, __u32
CDEBUG(D_UPCALL, "KML: fileset %s, offset %Lu, length %Lu, "
"first %u, last %d; minor %d\n",
- fsetname, hdr->u_offset, hdr->u_length, hdr->u_first_recno,
+ fsetname,
+ (unsigned long long) hdr->u_offset,
+ (unsigned long long) hdr->u_length,
+ hdr->u_first_recno,
hdr->u_last_recno, minor);
error = izo_upc_upcall(minor, &size, hdr, ASYNCHRONOUS);
@@ -174,7 +177,9 @@ int izo_upc_kml_truncate(int minor, __u64 length, __u32 last_recno, char *fsetna
CDEBUG(D_UPCALL, "KML TRUNCATE: fileset %s, length %Lu, "
"last recno %d, minor %d\n",
- fsetname, hdr->u_length, hdr->u_last_recno, minor);
+ fsetname,
+ (unsigned long long) hdr->u_length,
+ hdr->u_last_recno, minor);
error = izo_upc_upcall(minor, &size, hdr, ASYNCHRONOUS);
diff --git a/include/asm-sparc/asmmacro.h b/include/asm-sparc/asmmacro.h
index c2970f3e43e9..0d4b65bd252b 100644
--- a/include/asm-sparc/asmmacro.h
+++ b/include/asm-sparc/asmmacro.h
@@ -18,17 +18,6 @@
#define GET_PROCESSOR4D_ID(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
* lose. It makes sure the kernel has a proper window so that
* c-code can be called.
diff --git a/include/asm-sparc/smp.h b/include/asm-sparc/smp.h
index f6b713683832..f986c0d0922a 100644
--- a/include/asm-sparc/smp.h
+++ b/include/asm-sparc/smp.h
@@ -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_message_pass, int, int, unsigned long, int)
-BTFIXUPDEF_CALL(int, __smp_processor_id, void)
-BTFIXUPDEF_BLACKBOX(smp_processor_id)
+BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void)
+BTFIXUPDEF_BLACKBOX(hard_smp_processor_id)
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)
@@ -129,7 +129,7 @@ extern __inline__ int hard_smp_processor_id(void)
"=&r" (cpuid));
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"
"ldub [%0 + %%lo(boot_cpu_id)], %0\n\t" :
"=&r" (cpuid));
@@ -141,7 +141,7 @@ extern __inline__ int hard_smp_processor_id(void)
int cpuid;
__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"
"mov %%g2, %0\n\t" : "=r"(cpuid) : : "g1", "g2");
return cpuid;
diff --git a/scripts/modpost.c b/scripts/modpost.c
index 6f5848592669..a0976fcb9982 100644
--- a/scripts/modpost.c
+++ b/scripts/modpost.c
@@ -141,26 +141,14 @@ new_symbol(const char *name, struct module *module, unsigned int *crc)
symbolhash[hash] = new;
}
-#define DOTSYM_PFX "__dot_"
-
struct symbol *
find_symbol(const char *name)
{
struct symbol *s;
- char dotname[64 + sizeof(DOTSYM_PFX)];
- /* .foo matches foo. PPC64 needs this. */
- if (name[0] == '.') {
+ /* For our purposes, .foo matches foo. PPC64 needs this. */
+ if (name[0] == '.')
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) {
if (strcmp(s->name, name) == 0)