Commit 8b8e1de6 authored by Russell King's avatar Russell King

Miscellaneous build corrections/warning fixes.

parent 9f1a2068
......@@ -84,7 +84,7 @@ extern void __do_softirq(void);
__MODULE_STRING(sym); \
const struct module_symbol __ksymtab_##sym \
__attribute__((section("__ksymtab"))) = \
{ (unsigned long)&##orig, __kstrtab_##sym };
{ (unsigned long)&orig, __kstrtab_##sym };
/*
* floating point math emulator support.
......
......@@ -348,7 +348,7 @@ pbus_assign_bus_resources(struct pci_bus *bus, struct pci_sys_data *root)
if (dev) {
for (i = 0; i < 3; i++) {
if(root->resource[i]) {
if (root->resource[i]) {
bus->resource[i] = &dev->resource[PCI_BRIDGE_RESOURCES+i];
bus->resource[i]->end = root->resource[i]->end;
bus->resource[i]->name = bus->name;
......@@ -357,13 +357,8 @@ pbus_assign_bus_resources(struct pci_bus *bus, struct pci_sys_data *root)
bus->resource[0]->flags |= pci_bridge_check_io(dev);
bus->resource[1]->flags |= IORESOURCE_MEM;
if (root->resource[2])
if (bus->resource[2] && root->resource[2])
bus->resource[2]->flags = root->resource[2]->flags;
else {
/* no prefetchable memory region - disable it */
bus->resource[2]->start = 1024*1024;
bus->resource[2]->end = bus->resource[2]->start - 1;
}
} else {
/*
* Assign root bus resources.
......@@ -552,12 +547,12 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
panic("PCI: unable to scan bus!");
busnr = sys->bus->subordinate + 1;
} else if (ret < 0)
} else {
kfree(sys);
if (ret < 0)
break;
}
kfree(sys);
}
}
extern struct hw_pci ebsa285_pci;
......
......@@ -248,24 +248,16 @@ static void ecard_init_pgtables(struct mm_struct *mm)
* FIXME: we don't follow this 100% yet.
*/
pgd_t *src_pgd, *dst_pgd;
unsigned int dst_addr = IO_START;
src_pgd = pgd_offset(mm, IO_BASE);
dst_pgd = pgd_offset(mm, dst_addr);
dst_pgd = pgd_offset(mm, IO_START);
while (dst_addr < IO_START + IO_SIZE) {
*dst_pgd++ = *src_pgd++;
dst_addr += PGDIR_SIZE;
}
memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (IO_SIZE / PGDIR_SIZE));
dst_addr = EASI_START;
src_pgd = pgd_offset(mm, EASI_BASE);
dst_pgd = pgd_offset(mm, dst_addr);
dst_pgd = pgd_offset(mm, EASI_START);
while (dst_addr < EASI_START + EASI_SIZE) {
*dst_pgd++ = *src_pgd++;
dst_addr += PGDIR_SIZE;
}
memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (EASI_SIZE / PGDIR_SIZE));
vma.vm_mm = mm;
......
......@@ -325,9 +325,8 @@ do_level_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
!check_irq_lock(desc, irq, regs)))
desc->chip->unmask(irq);
}
}
irq_exit(cpu, irq);
}
}
/*
......
......@@ -589,8 +589,8 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
info.si_signo = signr;
info.si_errno = 0;
info.si_code = SI_USER;
info.si_pid = current->p_pptr->pid;
info.si_uid = current->p_pptr->uid;
info.si_pid = current->parent->pid;
info.si_uid = current->parent->uid;
}
/* If the (new) signal is now blocked, requeue it. */
......@@ -626,13 +626,18 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
continue;
/* FALLTHRU */
case SIGSTOP:
current->state = TASK_STOPPED;
case SIGSTOP: {
struct signal_struct *sig;
current->exit_code = signr;
if (!(current->p_pptr->sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP))
sig = current->parent->sig;
preempt_disable();
current->state = TASK_STOPPED;
if (sig && !(sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP))
notify_parent(current, SIGCHLD);
schedule();
preempt_enable();
continue;
}
case SIGQUIT: case SIGILL: case SIGTRAP:
case SIGABRT: case SIGFPE: case SIGSEGV:
......
......@@ -132,7 +132,7 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
} else if (verify_stack(fp)) {
printk("invalid frame pointer 0x%08x", fp);
ok = 0;
} else if (fp < 4096+(unsigned long)tsk)
} else if (fp < 4096+(unsigned long)tsk->thread_info)
printk("frame pointer underflow");
printk("\n");
......
......@@ -6,6 +6,12 @@
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* 16th March 2001 - John Ripley <jripley@sonicblue.com>
* Fixed so that "size" is an exclusive not an inclusive quantity.
* All users of these functions expect exclusive sizes, and may
* also call with zero size.
* Reworked by rmk.
*/
#include <linux/linkage.h>
#include <asm/assembler.h>
......@@ -13,58 +19,64 @@
/*
* Purpose : Find a 'zero' bit
* Prototype: int find_first_zero_bit(void *addr, int maxbit);
* Prototype: int find_first_zero_bit(void *addr, unsigned int maxbit);
*/
ENTRY(_find_first_zero_bit_le)
teq r1, #0
beq 3f
mov r2, #0
1: ldrb r3, [r0, r2, lsr #3]
eors r3, r3, #0xff @ invert bits
bne .found @ any now set - found zero bit
add r2, r2, #8 @ next bit pointer
cmp r2, r1 @ any more?
bcc 1b
add r0, r1, #1 @ no free bits
2: cmp r2, r1 @ any more?
blo 1b
3: mov r0, r1 @ no free bits
RETINSTR(mov,pc,lr)
/*
* Purpose : Find next 'zero' bit
* Prototype: int find_next_zero_bit(void *addr, int maxbit, int offset)
* Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
*/
ENTRY(_find_next_zero_bit_le)
teq r1, #0
beq 2b
ands ip, r2, #7
beq 1b @ If new byte, goto old routine
ldrb r3, [r0, r2, lsr#3]
ldrb r3, [r0, r2, lsr #3]
eor r3, r3, #0xff @ now looking for a 1 bit
movs r3, r3, lsr ip @ shift off unused bits
bne .found
orr r2, r2, #7 @ if zero, then no bits here
add r2, r2, #1 @ align bit pointer
b 1b @ loop for next bit
b 2b @ loop for next bit
#ifdef __ARMEB__
ENTRY(_find_first_zero_bit_be)
teq r1, #0
beq 3f
mov r2, #0
1: eor r3, r2, #0x18 @ big endian byte ordering
ldrb r3, [r0, r3, lsr #3]
eors r3, r3, #0xff @ invert bits
bne .found @ any now set - found zero bit
add r2, r2, #8 @ next bit pointer
cmp r2, r1 @ any more?
bcc 1b
add r0, r1, #1 @ no free bits
2: cmp r2, r1 @ any more?
blo 1b
3: mov r0, r1 @ no free bits
RETINSTR(mov,pc,lr)
ENTRY(_find_next_zero_bit_be)
ands ip, r2, #7
beq 1b @ If new byte, goto old routine
eor r3, r2, #0x18 @ big endian byte ordering
ldrb r3, [r0, r3, lsr#3]
ldrb r3, [r0, r3, lsr #3]
eor r3, r3, #0xff @ now looking for a 1 bit
movs r3, r3, lsr ip @ shift off unused bits
orreq r2, r2, #7 @ if zero, then no bits here
addeq r2, r2, #1 @ align bit pointer
beq 1b @ loop for next bit
beq 2b @ loop for next bit
#endif
......
......@@ -100,7 +100,7 @@ static int arc_floppy_cmdend_get_dma_residue(dmach_t channel, dma_t *dma)
/* 10/1/1999 DAG - Presume whether there is an outstanding command? */
extern unsigned int fdc1772_fdc_int_done;
* Explicit! If the int done is 0 then 1 int to go */
/* Explicit! If the int done is 0 then 1 int to go */
return (fdc1772_fdc_int_done==0)?1:0;
}
......
......@@ -548,7 +548,7 @@ static inline void free_area(unsigned long addr, unsigned long end, char *s)
}
if (size && s)
printk("Freeing %s memory: %dK\n", s, size);
printk(KERN_INFO "Freeing %s memory: %dK\n", s, size);
}
/*
......
......@@ -81,10 +81,11 @@ ENTRY(v3_flush_kern_tlb_page)
.section ".text.init", #alloc, #execinstr
.type v3_tlb_fns, #object
ENTRY(v3_tlb_fns)
.long v3_flush_kern_tlb_all
.long v3_flush_user_tlb_mm
.long v3_flush_user_tlb_range
.long v3_flush_user_tlb_page
.long v3_flush_kern_tlb_page
.size v3_tlb_fns, . - v3_tlb_fns
......@@ -100,9 +100,11 @@ ENTRY(v4_flush_kern_tlb_page)
.section ".text.init", #alloc, #execinstr
.type v4_tlb_fns, #object
ENTRY(v4_tlb_fns)
.long v4_flush_kern_tlb_all
.long v4_flush_user_tlb_mm
.long v4_flush_user_tlb_range
.long v4_flush_user_tlb_page
.long v4_flush_kern_tlb_page
.size v4_tlb_fns, . - v4_tlb_fns
......@@ -146,17 +146,20 @@ ENTRY(v4wbi_flush_kern_tlb_page)
.section ".text.init", #alloc, #execinstr
.type v4wb_tlb_fns, #object
ENTRY(v4wb_tlb_fns)
.long v4wb_flush_kern_tlb_all
.long v4wb_flush_user_tlb_mm
.long v4wb_flush_user_tlb_range
.long v4wb_flush_user_tlb_page
.long v4wb_flush_kern_tlb_page
.size v4wb_tlb_fns, . - v4wb_tlb_fns
.type v4wbi_tlb_fns, #object
ENTRY(v4wbi_tlb_fns)
.long v4wbi_flush_kern_tlb_all
.long v4wbi_flush_user_tlb_mm
.long v4wbi_flush_user_tlb_range
.long v4wbi_flush_user_tlb_page
.long v4wbi_flush_kern_tlb_page
.size v4wbi_tlb_fns, . - v4wbi_tlb_fns
......@@ -6,7 +6,7 @@
# To add an entry into this database, please see Documentation/arm/README,
# or contact rmk@arm.linux.org.uk
#
# Last update: Fri Mar 8 20:08:02 2002
# Last update: Sat Mar 16 10:55:44 2002
#
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
#
......@@ -176,3 +176,5 @@ iam SA1100_IAM IAM 164
tt530 SA1100_TT530 TT530 165
sam2400 ARCH_SAM2400 SAM2400 166
jornada56x ARCH_JORNADA56X JORNADA56X 167
active SA1100_ACTIVE ACTIVE 168
iq80321 ARCH_IQ80321 IQ80321 169
......@@ -151,14 +151,14 @@ eesoxscsi_terminator_ctl(struct Scsi_Host *host, int on_off)
EESOXScsi_Info *info = (EESOXScsi_Info *)host->hostdata;
unsigned long flags;
save_flags_cli(flags);
spin_lock_irqsave(host->host_lock, flags);
if (on_off)
info->control.control |= EESOX_TERM_ENABLE;
else
info->control.control &= ~EESOX_TERM_ENABLE;
restore_flags(flags);
outb(info->control.control, info->control.io_port);
spin_unlock_irqrestore(host->host_lock, flags);
}
/* Prototype: void eesoxscsi_intr(irq, *dev_id, *regs)
......
......@@ -4,6 +4,7 @@
#define PROT_READ 0x1 /* page can be read */
#define PROT_WRITE 0x2 /* page can be written */
#define PROT_EXEC 0x4 /* page can be executed */
#define PROT_SEM 0x8 /* page may be used for atomic ops */
#define PROT_NONE 0x0 /* page can not be accessed */
#define MAP_SHARED 0x01 /* Share changes */
......
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