CVSROOT: /home/cvs
Module name: malta
Changes by: beth@ftp.linux-mips.org 05/08/19 14:47:36
Modified files:
linux/arch/mips/kernel: Tag: MaltaRef_2_6 kspd.c rtlx.c vpe.c
linux/include/asm-mips: Tag: MaltaRef_2_6 elf.h
Log message:
* arch/mips/kernel/kspd.c: Read args as well as the syscall info.
* arch/mips/kernel/rtlx.c: Provide further debug info when
the shared structure cannot be found.
* arch/mips/kernel/vpe.c: Ignore the .reginfo section when loading
a linked image.
* include/asm-mips/elf.h: Define .reginfo section type.
diff -urN malta/linux/arch/mips/kernel/kspd.c
malta/linux/arch/mips/kernel/kspd.c
--- malta/linux/arch/mips/kernel/Attic/kspd.c 2005/08/16 09:49:13
1.1.1000.3
+++ malta/linux/arch/mips/kernel/Attic/kspd.c 2005/08/19 13:47:36
1.1.1000.4
@@ -197,9 +197,11 @@
size = sc.size;
- if (!rtlx_read(RTLX_CHANNEL_SYSIO, &generic, size, 0)) {
- printk(KERN_ERR "Expected request but nothing to read\n");
- return;
+ if (size) {
+ if (!rtlx_read(RTLX_CHANNEL_SYSIO, &generic, size, 0)) {
+ printk(KERN_ERR "Expected request but nothing to
read\n");
+ return;
+ }
}
/* run the syscall at the priviledge of the user who loaded the
diff -urN malta/linux/arch/mips/kernel/rtlx.c
malta/linux/arch/mips/kernel/rtlx.c
--- malta/linux/arch/mips/kernel/rtlx.c 2005/08/16 09:49:13 1.1.1000.4
+++ malta/linux/arch/mips/kernel/rtlx.c 2005/08/19 13:47:36 1.1.1000.5
@@ -111,7 +111,8 @@
static int rtlx_init(struct rtlx_info *rtlxi)
{
if (rtlxi->id != RTLX_ID) {
- printk(KERN_ERR "no valid RTLX id at 0x%p\n", rtlxi);
+ printk(KERN_ERR "no valid RTLX id at 0x%p found 0x%x should be
0x%x\n",
+ rtlxi, rtlxi->id, RTLX_ID);
return -ENOEXEC;
}
diff -urN malta/linux/arch/mips/kernel/vpe.c malta/linux/arch/mips/kernel/vpe.c
--- malta/linux/arch/mips/kernel/vpe.c 2005/08/11 13:27:51 1.1.1000.3
+++ malta/linux/arch/mips/kernel/vpe.c 2005/08/19 13:47:36 1.1.1000.4
@@ -974,15 +974,21 @@
}
} else {
for (i = 0; i < hdr->e_shnum; i++) {
-
- if (!(sechdrs[i].sh_flags & SHF_ALLOC) ||
sechdrs[i].sh_type == PT_MIPS_REGINFO)
+ if (!(sechdrs[i].sh_flags & SHF_ALLOC) ||
+ (sechdrs[i].sh_type == SHT_MIPS_REGINFO)) {
+ printk( KERN_DEBUG " ignoring section, "
+ "name %s type %x address 0x%x \n",
+ secstrings + sechdrs[i].sh_name,
+ sechdrs[i].sh_type, sechdrs[i].sh_addr);
continue;
+ }
if (sechdrs[i].sh_addr < (unsigned int)v->load_addr) {
printk( KERN_WARNING "vpe_elfload: fully linked
image has invalid "
- "section, name %s address 0x%x, before
load "
+ "section, name %s type %x address 0x%x,
before load "
"address of 0x%x\n", secstrings +
sechdrs[i].sh_name,
- sechdrs[i].sh_addr, (unsigned
int)v->load_addr);
+ sechdrs[i].sh_type, sechdrs[i].sh_addr,
+ (unsigned int)v->load_addr);
return -ENOEXEC;
}
diff -urN malta/linux/include/asm-mips/elf.h malta/linux/include/asm-mips/elf.h
--- malta/linux/include/asm-mips/elf.h 2005/06/21 13:36:23 1.21.1000.2
+++ malta/linux/include/asm-mips/elf.h 2005/08/19 13:47:36 1.21.1000.3
@@ -114,6 +114,8 @@
#define SHT_MIPS_GPTAB 0x70000003
#define SHT_MIPS_UCODE 0x70000004
+#define SHT_MIPS_REGINFO 0x70000006
+
#define SHF_MIPS_GPREL 0x10000000
#ifndef ELF_ARCH
|