Commit 26a1293a authored by David Mosberger's avatar David Mosberger

ia64: Sync with 2.5.44.

parent 2de8e51f
...@@ -39,12 +39,13 @@ libs-y += arch/$(ARCH)/lib/ ...@@ -39,12 +39,13 @@ libs-y += arch/$(ARCH)/lib/
core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
core-$(CONFIG_IA32_SUPPORT) += arch/$(ARCH)/ia32/ core-$(CONFIG_IA32_SUPPORT) += arch/$(ARCH)/ia32/
core-$(CONFIG_IA64_DIG) += arch/$(ARCH)/dig/ core-$(CONFIG_IA64_DIG) += arch/$(ARCH)/dig/
core-$(CONFIG_IA64_GENERIC) += arch/$(ARCH)/hp/ arch/$(ARCH)/dig/ core-$(CONFIG_IA64_GENERIC) += arch/$(ARCH)/dig/ arch/$(ARCH)/hp/common/ arch/$(ARCH)/hp/zx1/ \
core-$(CONFIG_IA64_HP_SIM) += arch/$(ARCH)/hp/ arch/$(ARCH)/hp/sim/
core-$(CONFIG_IA64_HP_ZX1) += arch/$(ARCH)/hp/ arch/$(ARCH)/dig/ core-$(CONFIG_IA64_HP_ZX1) += arch/$(ARCH)/dig/
core-$(CONFIG_IA64_SGI_SN) += arch/$(ARCH)/sn/kernel arch/$(ARCH)/sn/io \ core-$(CONFIG_IA64_SGI_SN) += arch/$(ARCH)/sn/kernel arch/$(ARCH)/sn/io \
arch/$(ARCH)/sn/fakeprom arch/$(ARCH)/sn/fakeprom
drivers-$(CONFIG_PCI) += arch/$(ARCH)/pci/ drivers-$(CONFIG_PCI) += arch/$(ARCH)/pci/
drivers-$(CONFIG_IA64_HP_SIM) += arch/$(ARCH)/hp/sim/
drivers-$(CONFIG_IA64_HP_ZX1) += arch/$(ARCH)/hp/common/ arch/$(ARCH)/hp/zx1/ drivers-$(CONFIG_IA64_HP_ZX1) += arch/$(ARCH)/hp/common/ arch/$(ARCH)/hp/zx1/
ifdef CONFIG_IA64_SGI_SN ifdef CONFIG_IA64_SGI_SN
...@@ -52,24 +53,28 @@ ifdef CONFIG_IA64_SGI_SN ...@@ -52,24 +53,28 @@ ifdef CONFIG_IA64_SGI_SN
SUBDIRS += arch/$(ARCH)/sn/fakeprom SUBDIRS += arch/$(ARCH)/sn/fakeprom
endif endif
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot makeboot = $(call descend,arch/ia64/boot,$(1))
maketool = $(call descend,arch/ia64/tools,$(1))
.PHONY: compressed archclean archmrproper $(TOPDIR)/include/asm-ia64/offsets.h
all: compressed boot
boot: vmlinux
+@$(call makeboot,all)
compressed: vmlinux compressed: vmlinux
$(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux-tmp $(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux-tmp
gzip vmlinux-tmp gzip vmlinux-tmp
mv vmlinux-tmp.gz vmlinux.gz mv vmlinux-tmp.gz vmlinux.gz
rawboot:
@$(MAKEBOOT) rawboot
archclean: archclean:
@$(MAKEBOOT) clean $(MAKE) -rR -f scripts/Makefile.clean obj=arch/$(ARCH)/boot
archmrproper: archmrproper:
@$(MAKE) -C arch/$(ARCH)/tools mrproper
prepare: $(TOPDIR)/include/asm-ia64/offsets.h prepare: $(TOPDIR)/include/asm-ia64/offsets.h
$(TOPDIR)/include/asm-ia64/offsets.h: include/asm include/linux/version.h \ $(TOPDIR)/include/asm-ia64/offsets.h: include/asm include/linux/version.h \
include/config/MARKER include/config/MARKER
@$(MAKE) -C arch/$(ARCH)/tools $@ +@$(call maketool,$@)
...@@ -8,9 +8,11 @@ ...@@ -8,9 +8,11 @@
# Copyright (C) 1998 by David Mosberger-Tang <davidm@hpl.hp.com> # Copyright (C) 1998 by David Mosberger-Tang <davidm@hpl.hp.com>
# #
LINKFLAGS = -static -T bootloader.lds THIS = arch/$(ARCH)/boot
OBJECTS = bootloader.o LINKFLAGS = -static -T $(THIS)/bootloader.lds
OBJS = $(THIS)/bootloader.o
targets-$(CONFIG_IA64_HP_SIM) += bootloader targets-$(CONFIG_IA64_HP_SIM) += bootloader
targets-$(CONFIG_IA64_GENERIC) += bootloader targets-$(CONFIG_IA64_GENERIC) += bootloader
...@@ -19,8 +21,8 @@ CFLAGS := $(CFLAGS) $(CFLAGS_KERNEL) ...@@ -19,8 +21,8 @@ CFLAGS := $(CFLAGS) $(CFLAGS_KERNEL)
all: $(targets-y) all: $(targets-y)
bootloader: $(OBJECTS) bootloader: $(OBJS)
$(LD) $(LINKFLAGS) $(OBJECTS) $(TOPDIR)/lib/lib.a $(TOPDIR)/arch/$(ARCH)/lib/lib.a \ $(LD) $(LINKFLAGS) $(OBJS) $(TOPDIR)/lib/lib.a $(TOPDIR)/arch/$(ARCH)/lib/lib.a \
-o bootloader -o bootloader
clean: clean:
......
...@@ -61,9 +61,9 @@ CONFIG_IA32_SUPPORT=y ...@@ -61,9 +61,9 @@ CONFIG_IA32_SUPPORT=y
CONFIG_PERFMON=y CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y CONFIG_IA64_PALINFO=y
CONFIG_EFI_VARS=y CONFIG_EFI_VARS=y
CONFIG_NR_CPUS=16
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
CONFIG_NR_CPUS=64
# #
# ACPI Support # ACPI Support
...@@ -100,6 +100,12 @@ CONFIG_PCI_NAMES=y ...@@ -100,6 +100,12 @@ CONFIG_PCI_NAMES=y
# Plug and Play configuration # Plug and Play configuration
# #
# CONFIG_PNP is not set # CONFIG_PNP is not set
# CONFIG_PNP_NAMES is not set
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
# CONFIG_ISAPNP is not set # CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set # CONFIG_PNPBIOS is not set
...@@ -189,6 +195,8 @@ CONFIG_BLK_DEV_IDEPCI=y ...@@ -189,6 +195,8 @@ CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_BLK_DEV_GENERIC is not set # CONFIG_BLK_DEV_GENERIC is not set
CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_IDE_TCQ_DEFAULT is not set
# CONFIG_BLK_DEV_OFFBOARD is not set # CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set # CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_PCI_AUTO is not set # CONFIG_IDEDMA_PCI_AUTO is not set
...@@ -258,6 +266,7 @@ CONFIG_SCSI_LOGGING=y ...@@ -258,6 +266,7 @@ CONFIG_SCSI_LOGGING=y
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_7000FASST is not set # CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# 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_DPT_I2O is not set # CONFIG_SCSI_DPT_I2O is not set
...@@ -294,6 +303,7 @@ CONFIG_SCSI_QLOGIC_1280=y ...@@ -294,6 +303,7 @@ CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set # CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set # CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DEBUG is not set
# #
...@@ -370,6 +380,11 @@ CONFIG_NET_ETHERNET=y ...@@ -370,6 +380,11 @@ CONFIG_NET_ETHERNET=y
# CONFIG_LANCE is not set # CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set # CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set # CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y CONFIG_NET_PCI=y
...@@ -438,11 +453,6 @@ CONFIG_EEPRO100=y ...@@ -438,11 +453,6 @@ CONFIG_EEPRO100=y
# #
# CONFIG_WAN is not set # CONFIG_WAN is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# #
# Amateur Radio support # Amateur Radio support
# #
...@@ -574,6 +584,8 @@ CONFIG_I2C_ALGOBIT=y ...@@ -574,6 +584,8 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_PHILIPSPAR is not set # CONFIG_I2C_PHILIPSPAR is not set
# CONFIG_I2C_ELV is not set # CONFIG_I2C_ELV is not set
# CONFIG_I2C_VELLEMAN is not set # CONFIG_I2C_VELLEMAN is not set
# CONFIG_SCx200_I2C is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_ALGOPCF is not set # CONFIG_I2C_ALGOPCF is not set
CONFIG_I2C_CHARDEV=y CONFIG_I2C_CHARDEV=y
CONFIG_I2C_PROC=y CONFIG_I2C_PROC=y
...@@ -614,12 +626,12 @@ CONFIG_AGP_I460=y ...@@ -614,12 +626,12 @@ CONFIG_AGP_I460=y
CONFIG_AGP_HP_ZX1=y CONFIG_AGP_HP_ZX1=y
CONFIG_DRM=y CONFIG_DRM=y
CONFIG_DRM_TDFX=y CONFIG_DRM_TDFX=y
CONFIG_DRM_GAMMA=y
CONFIG_DRM_R128=y CONFIG_DRM_R128=y
CONFIG_DRM_RADEON=y CONFIG_DRM_RADEON=y
CONFIG_DRM_I810=y CONFIG_DRM_I810=y
CONFIG_DRM_I830=y CONFIG_DRM_I830=y
CONFIG_DRM_MGA=y CONFIG_DRM_MGA=y
# CONFIG_SCx200_GPIO is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
# #
...@@ -693,14 +705,17 @@ CONFIG_EXT2_FS=y ...@@ -693,14 +705,17 @@ CONFIG_EXT2_FS=y
# CONFIG_INTERMEZZO_FS is not set # CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V3=y CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
# CONFIG_ROOT_NFS is not set # CONFIG_ROOT_NFS is not set
CONFIG_NFSD=y CONFIG_NFSD=y
CONFIG_NFSD_V3=y CONFIG_NFSD_V3=y
CONFIG_NFSD_V4=y
# CONFIG_NFSD_TCP is not set # CONFIG_NFSD_TCP is not set
CONFIG_SUNRPC=y CONFIG_SUNRPC=y
CONFIG_LOCKD=y CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y CONFIG_EXPORTFS=y
# CONFIG_CIFS is not set
# CONFIG_SMB_FS is not set # CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set # CONFIG_NCPFS_PACKET_SIGNING is not set
...@@ -711,6 +726,7 @@ CONFIG_EXPORTFS=y ...@@ -711,6 +726,7 @@ CONFIG_EXPORTFS=y
# CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set # CONFIG_NCPFS_EXTRAS is not set
# CONFIG_AFS_FS is not set
# CONFIG_ZISOFS_FS is not set # CONFIG_ZISOFS_FS is not set
# #
...@@ -963,6 +979,7 @@ CONFIG_USB_HIDDEV=y ...@@ -963,6 +979,7 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_BRLVGER is not set # CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_SPEEDTOUCH is not set # CONFIG_USB_SPEEDTOUCH is not set
# CONFIG_USB_TEST is not set
# #
# Library routines # Library routines
...@@ -993,8 +1010,6 @@ CONFIG_IA64_EARLY_PRINTK_VGA=y ...@@ -993,8 +1010,6 @@ CONFIG_IA64_EARLY_PRINTK_VGA=y
# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set # CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set # CONFIG_IA64_DEBUG_IRQ is not set
# CONFIG_KDB is not set
# CONFIG_KDB_MODULES is not set
# #
# Security options # Security options
......
# arch/ia64/hp/Makefile
# Copyright (c) 2002 Matthew Wilcox for Hewlett Packard
obj-$(CONFIG_IA64_GENERIC) += sim/ zx1/ common/
obj-$(CONFIG_IA64_HP_SIM) += sim/
include $(TOPDIR)/Rules.make
...@@ -361,7 +361,9 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *)) ...@@ -361,7 +361,9 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
break; break;
case MODE_SENSE: case MODE_SENSE:
printk("MODE_SENSE\n"); /* sd.c uses this to determine whether disk does write-caching. */
memset(sc->request_buffer, 0, 128);
sc->result = GOOD;
break; break;
case START_STOP: case START_STOP:
...@@ -391,6 +393,4 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *)) ...@@ -391,6 +393,4 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
static Scsi_Host_Template driver_template = SIMSCSI; static Scsi_Host_Template driver_template = SIMSCSI;
#define __initcall(fn) late_initcall(fn)
#include "../drivers/scsi/scsi_module.c" #include "../drivers/scsi/scsi_module.c"
...@@ -752,8 +752,7 @@ static int get_async_struct(int line, struct async_struct **ret_info) ...@@ -752,8 +752,7 @@ static int get_async_struct(int line, struct async_struct **ret_info)
info->flags = sstate->flags; info->flags = sstate->flags;
info->xmit_fifo_size = sstate->xmit_fifo_size; info->xmit_fifo_size = sstate->xmit_fifo_size;
info->line = line; info->line = line;
info->tqueue.routine = do_softint; INIT_WORK(&info->work, do_softint, info);
info->tqueue.data = info;
info->state = sstate; info->state = sstate;
if (sstate->info) { if (sstate->info) {
kfree(info); kfree(info);
......
...@@ -456,13 +456,13 @@ ia32_rt_sigsuspend (sigset32_t *uset, unsigned int sigsetsize, struct sigscratch ...@@ -456,13 +456,13 @@ ia32_rt_sigsuspend (sigset32_t *uset, unsigned int sigsetsize, struct sigscratch
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
{ {
oldset = current->blocked; oldset = current->blocked;
current->blocked = set; current->blocked = set;
recalc_sigpending(); recalc_sigpending();
} }
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
/* /*
* The return below usually returns to the signal handler. We need to pre-set the * The return below usually returns to the signal handler. We need to pre-set the
...@@ -993,10 +993,10 @@ sys32_sigreturn (int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int ...@@ -993,10 +993,10 @@ sys32_sigreturn (int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int
goto badframe; goto badframe;
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
current->blocked = (sigset_t) set; current->blocked = (sigset_t) set;
recalc_sigpending(); recalc_sigpending();
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
if (restore_sigcontext_ia32(regs, &frame->sc, &eax)) if (restore_sigcontext_ia32(regs, &frame->sc, &eax))
goto badframe; goto badframe;
...@@ -1024,10 +1024,10 @@ sys32_rt_sigreturn (int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, ...@@ -1024,10 +1024,10 @@ sys32_rt_sigreturn (int arg0, int arg1, int arg2, int arg3, int arg4, int arg5,
goto badframe; goto badframe;
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
current->blocked = set; current->blocked = set;
recalc_sigpending(); recalc_sigpending();
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
if (restore_sigcontext_ia32(regs, &frame->uc.uc_mcontext, &eax)) if (restore_sigcontext_ia32(regs, &frame->uc.uc_mcontext, &eax))
goto badframe; goto badframe;
......
...@@ -68,13 +68,13 @@ ia64_rt_sigsuspend (sigset_t *uset, size_t sigsetsize, struct sigscratch *scr) ...@@ -68,13 +68,13 @@ ia64_rt_sigsuspend (sigset_t *uset, size_t sigsetsize, struct sigscratch *scr)
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
{ {
oldset = current->blocked; oldset = current->blocked;
current->blocked = set; current->blocked = set;
recalc_sigpending(); recalc_sigpending();
} }
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
/* /*
* The return below usually returns to the signal handler. We need to * The return below usually returns to the signal handler. We need to
...@@ -274,12 +274,12 @@ ia64_rt_sigreturn (struct sigscratch *scr) ...@@ -274,12 +274,12 @@ ia64_rt_sigreturn (struct sigscratch *scr)
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
{ {
current->blocked = set; current->blocked = set;
recalc_sigpending(); recalc_sigpending();
} }
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
if (restore_sigcontext(sc, scr)) if (restore_sigcontext(sc, scr))
goto give_sigsegv; goto give_sigsegv;
...@@ -468,13 +468,13 @@ handle_signal (unsigned long sig, struct k_sigaction *ka, siginfo_t *info, sigse ...@@ -468,13 +468,13 @@ handle_signal (unsigned long sig, struct k_sigaction *ka, siginfo_t *info, sigse
ka->sa.sa_handler = SIG_DFL; ka->sa.sa_handler = SIG_DFL;
if (!(ka->sa.sa_flags & SA_NODEFER)) { if (!(ka->sa.sa_flags & SA_NODEFER)) {
spin_lock_irq(&current->sigmask_lock); spin_lock_irq(&current->sig->siglock);
{ {
sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask); sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
sigaddset(&current->blocked, sig); sigaddset(&current->blocked, sig);
recalc_sigpending(); recalc_sigpending();
} }
spin_unlock_irq(&current->sigmask_lock); spin_unlock_irq(&current->sig->siglock);
} }
return 1; return 1;
} }
......
...@@ -35,6 +35,7 @@ unsigned long last_cli_ip; ...@@ -35,6 +35,7 @@ unsigned long last_cli_ip;
#endif #endif
#if 0
static void static void
do_profile (unsigned long ip) do_profile (unsigned long ip)
{ {
...@@ -58,6 +59,7 @@ do_profile (unsigned long ip) ...@@ -58,6 +59,7 @@ do_profile (unsigned long ip)
atomic_inc((atomic_t *) &prof_buffer[ip]); atomic_inc((atomic_t *) &prof_buffer[ip]);
} }
#endif
/* /*
* Return the number of micro-seconds that elapsed since the last update to jiffy. The * Return the number of micro-seconds that elapsed since the last update to jiffy. The
...@@ -166,8 +168,11 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -166,8 +168,11 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
* four so that we can use a prof_shift of 2 to get instruction-level * four so that we can use a prof_shift of 2 to get instruction-level
* instead of just bundle-level accuracy. * instead of just bundle-level accuracy.
*/ */
#if 0
XXX fix me!
if (!user_mode(regs)) if (!user_mode(regs))
do_profile(regs->cr_iip + 4*ia64_psr(regs)->ri); do_profile(regs->cr_iip + 4*ia64_psr(regs)->ri);
#endif
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
smp_do_timer(regs); smp_do_timer(regs);
......
...@@ -69,7 +69,6 @@ bust_spinlocks (int yes) ...@@ -69,7 +69,6 @@ bust_spinlocks (int yes)
{ {
int loglevel_save = console_loglevel; int loglevel_save = console_loglevel;
spin_lock_init(&timerlist_lock);
if (yes) { if (yes) {
oops_in_progress = 1; oops_in_progress = 1;
return; return;
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
# Makefile for ia64-specific library routines.. # Makefile for ia64-specific library routines..
# #
THIS = arch/$(ARCH)/lib
L_TARGET = lib.a L_TARGET = lib.a
export-objs := swiotlb.o export-objs := swiotlb.o
...@@ -32,26 +34,26 @@ AFLAGS___udivsi3.o = -DUNSIGNED ...@@ -32,26 +34,26 @@ AFLAGS___udivsi3.o = -DUNSIGNED
AFLAGS___modsi3.o = -DMODULO AFLAGS___modsi3.o = -DMODULO
AFLAGS___umodsi3.o = -DUNSIGNED -DMODULO AFLAGS___umodsi3.o = -DUNSIGNED -DMODULO
__divdi3.o: idiv64.S $(THIS)/__divdi3.o: $(THIS)/idiv64.S
$(cmd_as_o_S) $(cmd_as_o_S)
__udivdi3.o: idiv64.S $(THIS)/__udivdi3.o: $(THIS)/idiv64.S
$(cmd_as_o_S) $(cmd_as_o_S)
__moddi3.o: idiv64.S $(THIS)/__moddi3.o: $(THIS)/idiv64.S
$(cmd_as_o_S) $(cmd_as_o_S)
__umoddi3.o: idiv64.S $(THIS)/__umoddi3.o: $(THIS)/idiv64.S
$(cmd_as_o_S) $(cmd_as_o_S)
__divsi3.o: idiv32.S $(THIS)/__divsi3.o: $(THIS)/idiv32.S
$(cmd_as_o_S) $(cmd_as_o_S)
__udivsi3.o: idiv32.S $(THIS)/__udivsi3.o: $(THIS)/idiv32.S
$(cmd_as_o_S) $(cmd_as_o_S)
__modsi3.o: idiv32.S $(THIS)/__modsi3.o: $(THIS)/idiv32.S
$(cmd_as_o_S) $(cmd_as_o_S)
__umodsi3.o: idiv32.S $(THIS)/__umodsi3.o: $(THIS)/idiv32.S
$(cmd_as_o_S) $(cmd_as_o_S)
CFLAGS = -g -O2 -Wall $(CPPFLAGS) CFLAGS = -g -O2 -Wall $(CPPFLAGS)
THIS = arch/$(ARCH)/tools
TARGET = $(TOPDIR)/include/asm-ia64/offsets.h TARGET = $(TOPDIR)/include/asm-ia64/offsets.h
all: all:
...@@ -9,13 +10,14 @@ fastdep: ...@@ -9,13 +10,14 @@ fastdep:
mrproper: clean mrproper: clean
clean: clean:
rm -f print_offsets.s print_offsets offsets.h rm -f $(THIS)/print_offsets.s $(THIS)/print_offsets $(THIS)/offsets.h
$(TARGET): offsets.h $(TARGET): $(THIS)/offsets.h
@if ! cmp -s offsets.h ${TARGET}; then \ echo here we go
if ! cmp -s $(THIS)/offsets.h ${TARGET}; then \
echo -e "*** Updating ${TARGET}..."; \ echo -e "*** Updating ${TARGET}..."; \
cp offsets.h ${TARGET}; \ cp $(THIS)/offsets.h ${TARGET}; \
else \ else \
echo "*** ${TARGET} is up to date"; \ echo "*** ${TARGET} is up to date"; \
fi fi
...@@ -30,25 +32,24 @@ $(TARGET): offsets.h ...@@ -30,25 +32,24 @@ $(TARGET): offsets.h
ifeq ($(CROSS_COMPILE),) ifeq ($(CROSS_COMPILE),)
offsets.h: print_offsets $(THIS)/offsets.h: $(THIS)/print_offsets
./print_offsets > offsets.h $(THIS)/print_offsets > $(THIS)/offsets.h
comma := , comma := ,
print_offsets: print_offsets.c FORCE $(THIS)/print_offsets: $(THIS)/print_offsets.c FORCE
$(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) \ $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) \
print_offsets.c -o $@ $(THIS)/print_offsets.c -o $@
FORCE: FORCE:
else else
offsets.h: print_offsets.s $(THIS)/offsets.h: $(THIS)/print_offsets.s
$(AWK) -f print_offsets.awk $^ > $@ $(AWK) -f $(THIS)/print_offsets.awk $^ > $@
print_offsets.s: print_offsets.c $(THIS)/print_offsets.s: $(THIS)/print_offsets.c
$(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -S \ $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -S $^ -o $@
print_offsets.c -o $@
endif endif
......
...@@ -12,11 +12,11 @@ SECTIONS ...@@ -12,11 +12,11 @@ SECTIONS
{ {
/* Sections to be discarded */ /* Sections to be discarded */
/DISCARD/ : { /DISCARD/ : {
*(.text.exit) *(.exit.text)
*(.data.exit) *(.exit.data)
*(.exitcall.exit) *(.exitcall.exit)
*(.IA_64.unwind.text.exit) *(.IA_64.unwind.exit.text)
*(.IA_64.unwind_info.text.exit) *(.IA_64.unwind_info.exit.text)
} }
v = PAGE_OFFSET; /* this symbol is here to make debugging easier... */ v = PAGE_OFFSET; /* this symbol is here to make debugging easier... */
...@@ -65,6 +65,13 @@ SECTIONS ...@@ -65,6 +65,13 @@ SECTIONS
{ *(__ksymtab) } { *(__ksymtab) }
__stop___ksymtab = .; __stop___ksymtab = .;
__kallsyms : AT(ADDR(__kallsyms) - PAGE_OFFSET)
{
__start___kallsyms = .; /* All kernel symbols */
*(__kallsyms)
__stop___kallsyms = .;
}
/* Unwind info & table: */ /* Unwind info & table: */
. = ALIGN(8); . = ALIGN(8);
.IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - PAGE_OFFSET) .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - PAGE_OFFSET)
...@@ -85,15 +92,15 @@ SECTIONS ...@@ -85,15 +92,15 @@ SECTIONS
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_begin = .; __init_begin = .;
.text.init : AT(ADDR(.text.init) - PAGE_OFFSET) .init.text : AT(ADDR(.init.text) - PAGE_OFFSET)
{ *(.text.init) } { *(.init.text) }
.data.init : AT(ADDR(.data.init) - PAGE_OFFSET) .init.data : AT(ADDR(.init.data) - PAGE_OFFSET)
{ *(.data.init) } { *(.init.data) }
. = ALIGN(16); . = ALIGN(16);
__setup_start = .; __setup_start = .;
.setup.init : AT(ADDR(.setup.init) - PAGE_OFFSET) .init.setup : AT(ADDR(.init.setup) - PAGE_OFFSET)
{ *(.setup.init) } { *(.init.setup) }
__setup_end = .; __setup_end = .;
__initcall_start = .; __initcall_start = .;
.initcall.init : AT(ADDR(.initcall.init) - PAGE_OFFSET) .initcall.init : AT(ADDR(.initcall.init) - PAGE_OFFSET)
...@@ -160,14 +167,6 @@ SECTIONS ...@@ -160,14 +167,6 @@ SECTIONS
.bss : AT(ADDR(.bss) - PAGE_OFFSET) .bss : AT(ADDR(.bss) - PAGE_OFFSET)
{ *(.bss) *(COMMON) } { *(.bss) *(COMMON) }
/* XXX Must this come last to avoid shifting other symbols? --davidm */
__kallsyms : AT(ADDR(__kallsyms) - PAGE_OFFSET)
{
__start___kallsyms = .; /* All kernel symbols */
*(__kallsyms)
__stop___kallsyms = .;
}
_end = .; _end = .;
/* Stabs debugging sections. */ /* Stabs debugging sections. */
......
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