diff options
| -rw-r--r-- | arch/sparc/defconfig | 303 | ||||
| -rw-r--r-- | arch/sparc/kernel/entry.S | 27 | ||||
| -rw-r--r-- | arch/sparc/kernel/head.S | 3 | ||||
| -rw-r--r-- | arch/sparc/kernel/init_task.c | 6 | ||||
| -rw-r--r-- | arch/sparc/kernel/module.c | 18 | ||||
| -rw-r--r-- | arch/sparc/kernel/signal.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/sparc_ksyms.c | 105 | ||||
| -rw-r--r-- | arch/sparc/kernel/sys_sunos.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/traps.c | 10 | ||||
| -rw-r--r-- | arch/sparc/lib/Makefile | 4 | ||||
| -rw-r--r-- | arch/sparc/lib/debuglocks.c | 5 | ||||
| -rw-r--r-- | arch/sparc/math-emu/math.c | 2 | ||||
| -rw-r--r-- | arch/sparc64/kernel/sparc64_ksyms.c | 3 | ||||
| -rw-r--r-- | drivers/block/carmel.c | 3 | ||||
| -rw-r--r-- | drivers/fc4/soc.h | 10 | ||||
| -rw-r--r-- | fs/intermezzo/file.c | 6 | ||||
| -rw-r--r-- | fs/intermezzo/fileset.c | 10 | ||||
| -rw-r--r-- | fs/intermezzo/journal.c | 4 | ||||
| -rw-r--r-- | fs/intermezzo/kml_reint.c | 10 | ||||
| -rw-r--r-- | fs/intermezzo/psdev.c | 8 | ||||
| -rw-r--r-- | fs/intermezzo/upcall.c | 9 | ||||
| -rw-r--r-- | include/asm-sparc/asmmacro.h | 11 | ||||
| -rw-r--r-- | include/asm-sparc/smp.h | 8 | ||||
| -rw-r--r-- | scripts/modpost.c | 16 |
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) |
