Commit 0b5403cf authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://are.twiddle.net/axp-2.6

into ppc970.osdl.org:/home/torvalds/v2.5/linux
parents a3c454e1 bb60cd07
...@@ -205,3 +205,15 @@ decompress_kernel(void *output_start, ...@@ -205,3 +205,15 @@ decompress_kernel(void *output_start,
/* puts(" done, booting the kernel.\n"); */ /* puts(" done, booting the kernel.\n"); */
return output_ptr; return output_ptr;
} }
/* dummy-up printk */
asmlinkage int printk(const char *fmt, ...)
{
va_list args;
long ret;
va_start(args, fmt);
ret = srm_printk(fmt, args);
va_end(args);
return ret;
}
...@@ -131,7 +131,7 @@ osf_filldir(void *__buf, const char *name, int namlen, loff_t offset, ...@@ -131,7 +131,7 @@ osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
if (copy_to_user(dirent->d_name, name, namlen) || if (copy_to_user(dirent->d_name, name, namlen) ||
put_user(0, dirent->d_name + namlen)) put_user(0, dirent->d_name + namlen))
return -EFAULT; return -EFAULT;
((char *) dirent) += reclen; dirent = (void *)dirent + reclen;
buf->dirent = dirent; buf->dirent = dirent;
buf->count -= reclen; buf->count -= reclen;
return 0; return 0;
......
...@@ -500,7 +500,7 @@ sg_classify(struct scatterlist *sg, struct scatterlist *end, int virt_ok) ...@@ -500,7 +500,7 @@ sg_classify(struct scatterlist *sg, struct scatterlist *end, int virt_ok)
/* Given a scatterlist leader, choose an allocation method and fill /* Given a scatterlist leader, choose an allocation method and fill
in the blanks. */ in the blanks. */
static inline int static int
sg_fill(struct scatterlist *leader, struct scatterlist *end, sg_fill(struct scatterlist *leader, struct scatterlist *end,
struct scatterlist *out, struct pci_iommu_arena *arena, struct scatterlist *out, struct pci_iommu_arena *arena,
dma_addr_t max_dma, int dac_allowed) dma_addr_t max_dma, int dac_allowed)
......
...@@ -203,9 +203,9 @@ extern struct mcheck_info ...@@ -203,9 +203,9 @@ extern struct mcheck_info
unsigned char extra; unsigned char extra;
} __mcheck_info; } __mcheck_info;
#define mcheck_expected(cpu) ((void)(cpu), __mcheck_info.expected) #define mcheck_expected(cpu) (*((void)(cpu), &__mcheck_info.expected))
#define mcheck_taken(cpu) ((void)(cpu), __mcheck_info.taken) #define mcheck_taken(cpu) (*((void)(cpu), &__mcheck_info.taken))
#define mcheck_extra(cpu) ((void)(cpu), __mcheck_info.extra) #define mcheck_extra(cpu) (*((void)(cpu), &__mcheck_info.extra))
#endif #endif
extern void process_mcheck_info(unsigned long vector, unsigned long la_ptr, extern void process_mcheck_info(unsigned long vector, unsigned long la_ptr,
......
...@@ -444,6 +444,9 @@ sys_call_table: ...@@ -444,6 +444,9 @@ sys_call_table:
.quad sys_clock_nanosleep .quad sys_clock_nanosleep
.quad sys_semtimedop .quad sys_semtimedop
.quad sys_tgkill .quad sys_tgkill
.quad sys_stat64 /* 425 */
.quad sys_lstat64
.quad sys_fstat64
.size sys_call_table, . - sys_call_table .size sys_call_table, . - sys_call_table
.type sys_call_table, @object .type sys_call_table, @object
......
...@@ -143,7 +143,7 @@ void insb (unsigned long port, void *dst, unsigned long count) ...@@ -143,7 +143,7 @@ void insb (unsigned long port, void *dst, unsigned long count)
return; return;
count--; count--;
*(unsigned char *) dst = inb(port); *(unsigned char *) dst = inb(port);
((unsigned char *) dst)++; dst += 1;
} }
while (count >= 4) { while (count >= 4) {
...@@ -154,13 +154,13 @@ void insb (unsigned long port, void *dst, unsigned long count) ...@@ -154,13 +154,13 @@ void insb (unsigned long port, void *dst, unsigned long count)
w |= inb(port) << 16; w |= inb(port) << 16;
w |= inb(port) << 24; w |= inb(port) << 24;
*(unsigned int *) dst = w; *(unsigned int *) dst = w;
((unsigned int *) dst)++; dst += 4;
} }
while (count) { while (count) {
--count; --count;
*(unsigned char *) dst = inb(port); *(unsigned char *) dst = inb(port);
((unsigned char *) dst)++; dst += 1;
} }
} }
...@@ -181,8 +181,8 @@ void insw (unsigned long port, void *dst, unsigned long count) ...@@ -181,8 +181,8 @@ void insw (unsigned long port, void *dst, unsigned long count)
if (!count) if (!count)
return; return;
count--; count--;
*(unsigned short* ) dst = inw(port); *(unsigned short *) dst = inw(port);
((unsigned short *) dst)++; dst += 2;
} }
while (count >= 2) { while (count >= 2) {
...@@ -191,7 +191,7 @@ void insw (unsigned long port, void *dst, unsigned long count) ...@@ -191,7 +191,7 @@ void insw (unsigned long port, void *dst, unsigned long count)
w = inw(port); w = inw(port);
w |= inw(port) << 16; w |= inw(port) << 16;
*(unsigned int *) dst = w; *(unsigned int *) dst = w;
((unsigned int *) dst)++; dst += 4;
} }
if (count) { if (count) {
...@@ -209,70 +209,72 @@ void insw (unsigned long port, void *dst, unsigned long count) ...@@ -209,70 +209,72 @@ void insw (unsigned long port, void *dst, unsigned long count)
void insl (unsigned long port, void *dst, unsigned long count) void insl (unsigned long port, void *dst, unsigned long count)
{ {
unsigned int l = 0, l2; unsigned int l = 0, l2;
if (!count) if (!count)
return; return;
switch (((unsigned long) dst) & 0x3) switch (((unsigned long) dst) & 0x3)
{ {
case 0x00: /* Buffer 32-bit aligned */ case 0x00: /* Buffer 32-bit aligned */
while (count--) while (count--)
{ {
*(unsigned int *) dst = inl(port); *(unsigned int *) dst = inl(port);
((unsigned int *) dst)++; dst += 4;
} }
break; break;
/* Assuming little endian Alphas in cases 0x01 -- 0x03 ... */ /* Assuming little endian Alphas in cases 0x01 -- 0x03 ... */
case 0x02: /* Buffer 16-bit aligned */ case 0x02: /* Buffer 16-bit aligned */
--count; --count;
l = inl(port); l = inl(port);
*(unsigned short *) dst = l; *(unsigned short *) dst = l;
((unsigned short *) dst)++; dst += 2;
while (count--) while (count--)
{ {
l2 = inl(port); l2 = inl(port);
*(unsigned int *) dst = l >> 16 | l2 << 16; *(unsigned int *) dst = l >> 16 | l2 << 16;
((unsigned int *) dst)++; dst += 4;
l = l2; l = l2;
} }
*(unsigned short *) dst = l >> 16; *(unsigned short *) dst = l >> 16;
break; break;
case 0x01: /* Buffer 8-bit aligned */ case 0x01: /* Buffer 8-bit aligned */
--count; --count;
l = inl(port); l = inl(port);
*(unsigned char *) dst = l; *(unsigned char *) dst = l;
((unsigned char *) dst)++; dst += 1;
*(unsigned short *) dst = l >> 8; *(unsigned short *) dst = l >> 8;
((unsigned short *) dst)++; dst += 2;
while (count--) while (count--)
{ {
l2 = inl(port); l2 = inl(port);
*(unsigned int *) dst = l >> 24 | l2 << 8; *(unsigned int *) dst = l >> 24 | l2 << 8;
((unsigned int *) dst)++; dst += 4;
l = l2; l = l2;
} }
*(unsigned char *) dst = l >> 24; *(unsigned char *) dst = l >> 24;
break; break;
case 0x03: /* Buffer 8-bit aligned */ case 0x03: /* Buffer 8-bit aligned */
--count; --count;
l = inl(port); l = inl(port);
*(unsigned char *) dst = l; *(unsigned char *) dst = l;
((unsigned char *) dst)++; dst += 1;
while (count--) while (count--)
{ {
l2 = inl(port); l2 = inl(port);
*(unsigned int *) dst = l << 24 | l2 >> 8; *(unsigned int *) dst = l << 24 | l2 >> 8;
((unsigned int *) dst)++; dst += 4;
l = l2; l = l2;
} }
*(unsigned short *) dst = l >> 8; *(unsigned short *) dst = l >> 8;
((unsigned short *) dst)++; dst += 2;
*(unsigned char *) dst = l >> 24; *(unsigned char *) dst = l >> 24;
break; break;
} }
...@@ -290,7 +292,7 @@ void outsb(unsigned long port, const void * src, unsigned long count) ...@@ -290,7 +292,7 @@ void outsb(unsigned long port, const void * src, unsigned long count)
while (count) { while (count) {
count--; count--;
outb(*(char *)src, port); outb(*(char *)src, port);
((char *) src)++; src += 1;
} }
} }
...@@ -307,7 +309,7 @@ void outsw (unsigned long port, const void *src, unsigned long count) ...@@ -307,7 +309,7 @@ void outsw (unsigned long port, const void *src, unsigned long count)
panic("outsw: memory not short aligned"); panic("outsw: memory not short aligned");
} }
outw(*(unsigned short*)src, port); outw(*(unsigned short*)src, port);
((unsigned short *) src)++; src += 2;
--count; --count;
} }
...@@ -315,7 +317,7 @@ void outsw (unsigned long port, const void *src, unsigned long count) ...@@ -315,7 +317,7 @@ void outsw (unsigned long port, const void *src, unsigned long count)
unsigned int w; unsigned int w;
count -= 2; count -= 2;
w = *(unsigned int *) src; w = *(unsigned int *) src;
((unsigned int *) src)++; src += 4;
outw(w >> 0, port); outw(w >> 0, port);
outw(w >> 16, port); outw(w >> 16, port);
} }
...@@ -335,69 +337,69 @@ void outsw (unsigned long port, const void *src, unsigned long count) ...@@ -335,69 +337,69 @@ void outsw (unsigned long port, const void *src, unsigned long count)
void outsl (unsigned long port, const void *src, unsigned long count) void outsl (unsigned long port, const void *src, unsigned long count)
{ {
unsigned int l = 0, l2; unsigned int l = 0, l2;
if (!count) if (!count)
return; return;
switch (((unsigned long) src) & 0x3) switch (((unsigned long) src) & 0x3)
{ {
case 0x00: /* Buffer 32-bit aligned */ case 0x00: /* Buffer 32-bit aligned */
while (count--) while (count--)
{ {
outl(*(unsigned int *) src, port); outl(*(unsigned int *) src, port);
((unsigned int *) src)++; src += 4;
} }
break; break;
/* Assuming little endian Alphas in cases 0x01 -- 0x03 ... */
case 0x02: /* Buffer 16-bit aligned */ case 0x02: /* Buffer 16-bit aligned */
--count; --count;
l = *(unsigned short *) src << 16; l = *(unsigned short *) src << 16;
((unsigned short *) src)++; src += 2;
while (count--) while (count--)
{ {
l2 = *(unsigned int *) src; l2 = *(unsigned int *) src;
((unsigned int *) src)++; src += 4;
outl (l >> 16 | l2 << 16, port); outl (l >> 16 | l2 << 16, port);
l = l2; l = l2;
} }
l2 = *(unsigned short *) src; l2 = *(unsigned short *) src;
outl (l >> 16 | l2 << 16, port); outl (l >> 16 | l2 << 16, port);
break; break;
case 0x01: /* Buffer 8-bit aligned */ case 0x01: /* Buffer 8-bit aligned */
--count; --count;
l = *(unsigned char *) src << 8; l = *(unsigned char *) src << 8;
((unsigned char *) src)++; src += 1;
l |= *(unsigned short *) src << 16; l |= *(unsigned short *) src << 16;
((unsigned short *) src)++; src += 2;
while (count--) while (count--)
{ {
l2 = *(unsigned int *) src; l2 = *(unsigned int *) src;
((unsigned int *) src)++; src += 4;
outl (l >> 8 | l2 << 24, port); outl (l >> 8 | l2 << 24, port);
l = l2; l = l2;
} }
l2 = *(unsigned char *) src; l2 = *(unsigned char *) src;
outl (l >> 8 | l2 << 24, port); outl (l >> 8 | l2 << 24, port);
break; break;
case 0x03: /* Buffer 8-bit aligned */ case 0x03: /* Buffer 8-bit aligned */
--count; --count;
l = *(unsigned char *) src << 24; l = *(unsigned char *) src << 24;
((unsigned char *) src)++; src += 1;
while (count--) while (count--)
{ {
l2 = *(unsigned int *) src; l2 = *(unsigned int *) src;
((unsigned int *) src)++; src += 4;
outl (l >> 24 | l2 << 8, port); outl (l >> 24 | l2 << 8, port);
l = l2; l = l2;
} }
l2 = *(unsigned short *) src; l2 = *(unsigned short *) src;
((unsigned short *) src)++; src += 2;
l2 |= *(unsigned char *) src << 16; l2 |= *(unsigned char *) src << 16;
outl (l >> 24 | l2 << 8, port); outl (l >> 24 | l2 << 8, port);
break; break;
...@@ -435,7 +437,7 @@ void _memcpy_fromio(void * to, unsigned long from, long count) ...@@ -435,7 +437,7 @@ void _memcpy_fromio(void * to, unsigned long from, long count)
} while (count >= 0); } while (count >= 0);
count += 4; count += 4;
} }
if (count >= 2 && ((unsigned long)to & 1) == (from & 1)) { if (count >= 2 && ((unsigned long)to & 1) == (from & 1)) {
count -= 2; count -= 2;
do { do {
...@@ -486,7 +488,7 @@ void _memcpy_toio(unsigned long to, const void * from, long count) ...@@ -486,7 +488,7 @@ void _memcpy_toio(unsigned long to, const void * from, long count)
} while (count >= 0); } while (count >= 0);
count += 4; count += 4;
} }
if (count >= 2 && (to & 1) == ((unsigned long)from & 1)) { if (count >= 2 && (to & 1) == ((unsigned long)from & 1)) {
count -= 2; count -= 2;
do { do {
......
...@@ -283,7 +283,7 @@ asmlinkage long sys_readlink(const char __user * path, char __user * buf, int bu ...@@ -283,7 +283,7 @@ asmlinkage long sys_readlink(const char __user * path, char __user * buf, int bu
/* ---------- LFS-64 ----------- */ /* ---------- LFS-64 ----------- */
#if !defined(__alpha__) && !defined(__ia64__) && !defined(__mips64) && !defined(__x86_64__) && !defined(CONFIG_ARCH_S390X) #if !defined(__ia64__) && !defined(__mips64) && !defined(__x86_64__) && !defined(CONFIG_ARCH_S390X)
static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf) static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf)
{ {
......
#ifndef _ALPHA_STAT_H #ifndef _ALPHA_STAT_H
#define _ALPHA_STAT_H #define _ALPHA_STAT_H
struct __old_kernel_stat { struct stat {
unsigned int st_dev; unsigned int st_dev;
unsigned int st_ino; unsigned int st_ino;
unsigned int st_mode; unsigned int st_mode;
...@@ -14,27 +14,35 @@ struct __old_kernel_stat { ...@@ -14,27 +14,35 @@ struct __old_kernel_stat {
unsigned long st_mtime; unsigned long st_mtime;
unsigned long st_ctime; unsigned long st_ctime;
unsigned int st_blksize; unsigned int st_blksize;
int st_blocks; unsigned int st_blocks;
unsigned int st_flags; unsigned int st_flags;
unsigned int st_gen; unsigned int st_gen;
}; };
struct stat { /* The stat64 structure increases the size of dev_t, blkcnt_t, adds
unsigned int st_dev; nanosecond resolution times, and padding for expansion. */
unsigned int st_ino;
struct stat64 {
unsigned long st_dev;
unsigned long st_ino;
unsigned long st_rdev;
long st_size;
unsigned long st_blocks;
unsigned int st_mode; unsigned int st_mode;
unsigned int st_nlink;
unsigned int st_uid; unsigned int st_uid;
unsigned int st_gid; unsigned int st_gid;
unsigned int st_rdev; unsigned int st_blksize;
long st_size; unsigned int st_nlink;
unsigned int __pad0;
unsigned long st_atime; unsigned long st_atime;
unsigned long st_atime_nsec;
unsigned long st_mtime; unsigned long st_mtime;
unsigned long st_mtime_nsec;
unsigned long st_ctime; unsigned long st_ctime;
unsigned int st_blksize; unsigned long st_ctime_nsec;
int st_blocks; long __unused[3];
unsigned int st_flags;
unsigned int st_gen;
}; };
#endif #endif
...@@ -360,7 +360,10 @@ ...@@ -360,7 +360,10 @@
#define __NR_clock_nanosleep 422 #define __NR_clock_nanosleep 422
#define __NR_semtimedop 423 #define __NR_semtimedop 423
#define __NR_tgkill 424 #define __NR_tgkill 424
#define NR_SYSCALLS 425 #define __NR_stat64 425
#define __NR_lstat64 426
#define __NR_fstat64 427
#define NR_SYSCALLS 428
#if defined(__GNUC__) #if defined(__GNUC__)
...@@ -573,9 +576,9 @@ static inline off_t lseek(int fd, off_t off, int whence) ...@@ -573,9 +576,9 @@ static inline off_t lseek(int fd, off_t off, int whence)
return sys_lseek(fd, off, whence); return sys_lseek(fd, off, whence);
} }
static inline long _exit(int value) static inline void _exit(int value)
{ {
return sys_exit(value); sys_exit(value);
} }
#define exit(x) _exit(x) #define exit(x) _exit(x)
......
...@@ -16,7 +16,7 @@ static void __init error(char *x) ...@@ -16,7 +16,7 @@ static void __init error(char *x)
message = x; message = x;
} }
static void __init *malloc(int size) static void __init *malloc(size_t size)
{ {
return kmalloc(size, GFP_KERNEL); return kmalloc(size, GFP_KERNEL);
} }
......
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