Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 4949
b: refs/heads/master
c: 65cc337
h: refs/heads/master
i:
  4947: 8fd8201
v: v3
  • Loading branch information
Ben Dooks authored and Russell King committed Jul 18, 2005
1 parent 462b58d commit e775a52
Show file tree
Hide file tree
Showing 80 changed files with 812 additions and 871 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c94c0d201f1c1a62184f4f220c1615347aafbee7
refs/heads/master: 65cc3370ef3fb56b9b423f282a8204f8cce66e32
42 changes: 9 additions & 33 deletions trunk/arch/arm/boot/compressed/head-shark.S
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ __beginning: mov r4, r0 @ save the entry to the firmware

mov pc, r2

__copy_target: .long 0x08507FFC
__copy_end: .long 0x08607FFC
__copy_target: .long 0x08508000
__copy_end: .long 0x08608000
.word _start
.word __bss_start
Expand All @@ -73,10 +73,9 @@ __copy_end: .long 0x08607FFC
__temp_stack: .space 128

__mmu_off:
adr r0, __ofw_data @ read the 1. entry of the memory map
adr r0, __ofw_data
ldr r0, [r0, #4]
orr r0, r0, #0x00600000
sub r0, r0, #4
ldr r1, __copy_end
ldr r3, __copy_target
Expand All @@ -90,43 +89,20 @@ __mmu_off:
* from 0x08500000 to 0x08508000 if we have only 8MB
*/

/* As we get more 2.6-kernels it gets more and more
* uncomfortable to be bound to kernel images of 1MB only.
* So we add a loop here, to be able to copy some more.
* Alexander Schulz 2005-07-17
*/

mov r4, #3 @ How many megabytes to copy


__MoveCode: sub r4, r4, #1
__Copy: ldr r2, [r0], #-4
str r2, [r1], #-4
teq r1, r3
bne __Copy

/* The firmware maps us in blocks of 1 MB, the next block is
_below_ the last one. So our decrementing source pointer
ist right here, but the destination pointer must be increased
by 2 MB */
add r1, r1, #0x00200000
add r3, r3, #0x00100000

teq r4, #0
bne __MoveCode


/* and jump to it */
adr r2, __go_on @ where we want to jump
adr r0, __ofw_data @ read the 1. entry of the memory map
adr r2, __go_on
adr r0, __ofw_data
ldr r0, [r0, #4]
sub r2, r2, r0 @ we are mapped add 0e50 now, sub that (-0e00)
sub r2, r2, #0x00500000 @ -0050
ldr r0, __copy_target @ and add 0850 8000 instead
add r0, r0, #4
sub r2, r2, r0
sub r2, r2, #0x00500000
ldr r0, __copy_target
add r2, r2, r0
mov pc, r2 @ and jump there
mov pc, r2

__go_on:
adr sp, __temp_stack
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/arm/configs/bast_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,6 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
#
CONFIG_SERIAL_S3C2410=y
CONFIG_SERIAL_S3C2410_CONSOLE=y
CONFIG_SERIAL_BAST_SIO=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/arm/configs/s3c2410_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -570,7 +570,6 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
#
CONFIG_SERIAL_S3C2410=y
CONFIG_SERIAL_S3C2410_CONSOLE=y
CONFIG_SERIAL_BAST_SIO=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/arm/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ struct smp_call_struct {
static struct smp_call_struct * volatile smp_call_function_data;
static DEFINE_SPINLOCK(smp_call_function_lock);

int __cpuinit __cpu_up(unsigned int cpu)
int __init __cpu_up(unsigned int cpu)
{
struct task_struct *idle;
pgd_t *pgd;
Expand Down Expand Up @@ -159,7 +159,7 @@ int __cpuinit __cpu_up(unsigned int cpu)
* This is the secondary CPU boot entry. We're using this CPUs
* idle thread stack, but a set of temporary page tables.
*/
asmlinkage void __cpuinit secondary_start_kernel(void)
asmlinkage void __init secondary_start_kernel(void)
{
struct mm_struct *mm = &init_mm;
unsigned int cpu = smp_processor_id();
Expand Down Expand Up @@ -209,7 +209,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
* Called by both boot and secondaries to move global data into
* per-processor storage.
*/
void __cpuinit smp_store_cpu_info(unsigned int cpuid)
void __init smp_store_cpu_info(unsigned int cpuid)
{
struct cpuinfo_arm *cpu_info = &per_cpu(cpu_data, cpuid);

Expand Down
8 changes: 4 additions & 4 deletions trunk/arch/arm/mach-integrator/platsmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ extern void integrator_secondary_startup(void);
* control for which core is the next to come out of the secondary
* boot "holding pen"
*/
volatile int __cpuinitdata pen_release = -1;
unsigned long __cpuinitdata phys_pen_release = 0;
volatile int __initdata pen_release = -1;
unsigned long __initdata phys_pen_release = 0;

static DEFINE_SPINLOCK(boot_lock);

void __cpuinit platform_secondary_init(unsigned int cpu)
void __init platform_secondary_init(unsigned int cpu)
{
/*
* the primary core may have used a "cross call" soft interrupt
Expand Down Expand Up @@ -61,7 +61,7 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
spin_unlock(&boot_lock);
}

int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
int __init boot_secondary(unsigned int cpu, struct task_struct *idle)
{
unsigned long timeout;

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-s3c2410/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,

buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC);
if (buf == NULL) {
pr_debug("%s: out of memory (%ld alloc)\n",
pr_debug("%s: out of memory (%d alloc)\n",
__FUNCTION__, sizeof(*buf));
return -ENOMEM;
}
Expand Down
37 changes: 37 additions & 0 deletions trunk/arch/arm/mach-s3c2410/mach-bast.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
* 14-Mar-2006 BJD Updated for __iomem changes
* 22-Jun-2006 BJD Added DM9000 platform information
* 28-Jun-2006 BJD Moved pm functionality out to common code
* 17-Jul-2006 BJD Changed to platform device for SuperIO 16550s
*/

#include <linux/kernel.h>
Expand Down Expand Up @@ -64,6 +65,8 @@
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>

#include <linux/serial_8250.h>

#include "clock.h"
#include "devs.h"
#include "cpu.h"
Expand Down Expand Up @@ -351,6 +354,39 @@ static struct platform_device bast_device_dm9k = {
}
};

/* serial devices */

#define SERIAL_BASE (S3C2410_CS2 + BAST_PA_SUPERIO)
#define SERIAL_FLAGS (UPF_BOOT_AUTOCONF | UPF_IOREMAP | UPF_SHARE_IRQ)
#define SERIAL_CLK (1843200)

static struct plat_serial8250_port bast_sio_data[] = {
[0] = {
.mapbase = SERIAL_BASE + 0x2f8,
.irq = IRQ_PCSERIAL1,
.flags = SERIAL_FLAGS,
.iotype = UPIO_MEM,
.regshift = 0,
.uartclk = SERIAL_CLK,
},
[1] = {
.mapbase = SERIAL_BASE + 0x3f8,
.irq = IRQ_PCSERIAL2,
.flags = SERIAL_FLAGS,
.iotype = UPIO_MEM,
.regshift = 0,
.uartclk = SERIAL_CLK,
},
{ }
};

static struct platform_device bast_sio = {
.name = "serial8250",
.id = 0,
.dev = {
.platform_data = &bast_sio_data,
},
};

/* Standard BAST devices */

Expand All @@ -364,6 +400,7 @@ static struct platform_device *bast_devices[] __initdata = {
&s3c_device_nand,
&bast_device_nor,
&bast_device_dm9k,
&bast_sio,
};

static struct clk *bast_clocks[] = {
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/arm/nwfpe/fpa11.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
* stack+task struct. Use the same method as 'current' uses to
* reach them.
*/
#define GET_USERREG() ((struct pt_regs *)(THREAD_START_SP + (unsigned long)current_thread_info()) - 1)
register unsigned long *user_registers asm("sl");

#define GET_USERREG() (user_registers)

#include <linux/config.h>
#include <linux/thread_info.h>
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/nwfpe/fpmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void float_raise(signed char flags)
printk(KERN_DEBUG
"NWFPE: %s[%d] takes exception %08x at %p from %08lx\n",
current->comm, current->pid, flags,
__builtin_return_address(0), GET_USERREG()->ARM_pc);
__builtin_return_address(0), GET_USERREG()[15]);
#endif

/* Keep SoftFloat exception flags up to date. */
Expand Down
14 changes: 7 additions & 7 deletions trunk/arch/arm/nwfpe/fpmodule.inl
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ static inline unsigned long readRegister(const unsigned int nReg)
for this in this routine. LDF/STF instructions with Rn = PC
depend on the PC being correct, as they use PC+8 in their
address calculations. */
struct pt_regs *regs = GET_USERREG();
unsigned int val = regs->uregs[nReg];
unsigned long *userRegisters = GET_USERREG();
unsigned int val = userRegisters[nReg];
if (REG_PC == nReg)
val -= 4;
return val;
Expand All @@ -38,8 +38,8 @@ static inline unsigned long readRegister(const unsigned int nReg)
static inline void
writeRegister(const unsigned int nReg, const unsigned long val)
{
struct pt_regs *regs = GET_USERREG();
regs->uregs[nReg] = val;
unsigned long *userRegisters = GET_USERREG();
userRegisters[nReg] = val;
}

static inline unsigned long readCPSR(void)
Expand All @@ -63,12 +63,12 @@ static inline unsigned long readConditionCodes(void)

static inline void writeConditionCodes(const unsigned long val)
{
struct pt_regs *regs = GET_USERREG();
unsigned long *userRegisters = GET_USERREG();
unsigned long rval;
/*
* Operate directly on userRegisters since
* the CPSR may be the PC register itself.
*/
rval = regs->ARM_cpsr & ~CC_MASK;
regs->ARM_cpsr = rval | (val & CC_MASK);
rval = userRegisters[REG_CPSR] & ~CC_MASK;
userRegisters[REG_CPSR] = rval | (val & CC_MASK);
}
11 changes: 11 additions & 0 deletions trunk/arch/i386/kernel/i387.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,17 @@ void kernel_fpu_begin(void)
}
EXPORT_SYMBOL_GPL(kernel_fpu_begin);

void restore_fpu( struct task_struct *tsk )
{
if ( cpu_has_fxsr ) {
asm volatile( "fxrstor %0"
: : "m" (tsk->thread.i387.fxsave) );
} else {
asm volatile( "frstor %0"
: : "m" (tsk->thread.i387.fsave) );
}
}

/*
* FPU tag word conversions.
*/
Expand Down
20 changes: 8 additions & 12 deletions trunk/arch/i386/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,27 +700,23 @@ struct task_struct fastcall * __switch_to(struct task_struct *prev_p, struct tas

/*
* Restore %fs and %gs if needed.
*
* Glibc normally makes %fs be zero, and %gs is one of
* the TLS segments.
*/
if (unlikely(prev->fs | next->fs))
if (unlikely(prev->fs | prev->gs | next->fs | next->gs)) {
loadsegment(fs, next->fs);

if (prev->gs | next->gs)
loadsegment(gs, next->gs);
}

/*
* Now maybe reload the debug registers
*/
if (unlikely(next->debugreg[7])) {
set_debugreg(next->debugreg[0], 0);
set_debugreg(next->debugreg[1], 1);
set_debugreg(next->debugreg[2], 2);
set_debugreg(next->debugreg[3], 3);
set_debugreg(current->thread.debugreg[0], 0);
set_debugreg(current->thread.debugreg[1], 1);
set_debugreg(current->thread.debugreg[2], 2);
set_debugreg(current->thread.debugreg[3], 3);
/* no 4 and 5 */
set_debugreg(next->debugreg[6], 6);
set_debugreg(next->debugreg[7], 7);
set_debugreg(current->thread.debugreg[6], 6);
set_debugreg(current->thread.debugreg[7], 7);
}

if (unlikely(prev->io_bitmap_ptr || next->io_bitmap_ptr))
Expand Down
14 changes: 13 additions & 1 deletion trunk/arch/i386/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -1414,7 +1414,7 @@ static struct nop {
This runs before SMP is initialized to avoid SMP problems with
self modifying code. This implies that assymetric systems where
APs have less capabilities than the boot processor are not handled.
Tough. Make sure you disable such features by hand. */
In this case boot with "noreplacement". */
void apply_alternatives(void *start, void *end)
{
struct alt_instr *a;
Expand Down Expand Up @@ -1442,12 +1442,24 @@ void apply_alternatives(void *start, void *end)
}
}

static int no_replacement __initdata = 0;

void __init alternative_instructions(void)
{
extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
if (no_replacement)
return;
apply_alternatives(__alt_instructions, __alt_instructions_end);
}

static int __init noreplacement_setup(char *s)
{
no_replacement = 1;
return 0;
}

__setup("noreplacement", noreplacement_setup);

static char * __init machine_specific_memory_setup(void);

#ifdef CONFIG_MCA
Expand Down
6 changes: 3 additions & 3 deletions trunk/crypto/cipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ static unsigned int crypt_slow(const struct cipher_desc *desc,
struct scatter_walk *in,
struct scatter_walk *out, unsigned int bsize)
{
unsigned long alignmask = crypto_tfm_alg_alignmask(desc->tfm);
unsigned int alignmask = crypto_tfm_alg_alignmask(desc->tfm);
u8 buffer[bsize * 2 + alignmask];
u8 *src = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
u8 *dst = src + bsize;
Expand Down Expand Up @@ -160,7 +160,7 @@ static int crypt_iv_unaligned(struct cipher_desc *desc,
unsigned int nbytes)
{
struct crypto_tfm *tfm = desc->tfm;
unsigned long alignmask = crypto_tfm_alg_alignmask(tfm);
unsigned int alignmask = crypto_tfm_alg_alignmask(tfm);
u8 *iv = desc->info;

if (unlikely(((unsigned long)iv & alignmask))) {
Expand Down Expand Up @@ -424,7 +424,7 @@ int crypto_init_cipher_ops(struct crypto_tfm *tfm)
}

if (ops->cit_mode == CRYPTO_TFM_MODE_CBC) {
unsigned long align;
unsigned int align;
unsigned long addr;

switch (crypto_tfm_alg_blocksize(tfm)) {
Expand Down
Loading

0 comments on commit e775a52

Please sign in to comment.