ia64/xen-unstable
changeset 6565:f41f8d753b7a
merge?
author | cl349@firebug.cl.cam.ac.uk |
---|---|
date | Wed Aug 31 09:32:52 2005 +0000 (2005-08-31) |
parents | 7115d6c6c792 7032428bc820 |
children | 6d4c0bfc3c1c |
files | linux-2.6-xen-sparse/arch/xen/i386/kernel/acpi/boot.c tools/console/daemon/io.c tools/libxc/xc_load_aout9.c |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/acpi/boot.c Wed Aug 31 08:43:31 2005 +0000 1.2 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/acpi/boot.c Wed Aug 31 09:32:52 2005 +0000 1.3 @@ -469,6 +469,18 @@ unsigned int acpi_register_gsi(u32 gsi, 1.4 unsigned int irq; 1.5 unsigned int plat_gsi = gsi; 1.6 1.7 +#ifdef CONFIG_PCI 1.8 + /* 1.9 + * Make sure all (legacy) PCI IRQs are set as level-triggered. 1.10 + */ 1.11 + if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) { 1.12 + extern void eisa_set_level_irq(unsigned int irq); 1.13 + 1.14 + if (edge_level == ACPI_LEVEL_SENSITIVE) 1.15 + eisa_set_level_irq(gsi); 1.16 + } 1.17 +#endif 1.18 + 1.19 #ifdef CONFIG_X86_IO_APIC 1.20 if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) { 1.21 plat_gsi = mp_register_gsi(gsi, edge_level, active_high_low);
3.1 --- a/tools/libxc/xc_load_aout9.c Wed Aug 31 08:43:31 2005 +0000 3.2 +++ b/tools/libxc/xc_load_aout9.c Wed Aug 31 09:32:52 2005 +0000 3.3 @@ -15,6 +15,8 @@ 3.4 3.5 #define round_pgup(_p) (((_p)+(PAGE_SIZE-1))&PAGE_MASK) 3.6 #define round_pgdown(_p) ((_p)&PAGE_MASK) 3.7 +#define KZERO 0x80000000 3.8 +#define KOFFSET(_p) ((_p)&~KZERO) 3.9 3.10 static int parseaout9image(char *, unsigned long, struct domain_setup_info *); 3.11 static int loadaout9image(char *, unsigned long, int, u32, unsigned long *, struct domain_setup_info *); 3.12 @@ -63,7 +65,7 @@ parseaout9image( 3.13 txtsz = round_pgup(ehdr.text); 3.14 end = start + txtsz + ehdr.data + ehdr.bss; 3.15 3.16 - dsi->v_start = start; 3.17 + dsi->v_start = KZERO; 3.18 dsi->v_kernstart = start; 3.19 dsi->v_kernend = end; 3.20 dsi->v_kernentry = ehdr.entry; 3.21 @@ -83,19 +85,19 @@ loadaout9image( 3.22 struct domain_setup_info *dsi) 3.23 { 3.24 struct Exec ehdr; 3.25 - unsigned long txtsz; 3.26 + unsigned long start, txtsz; 3.27 3.28 if (!get_header(image, image_size, &ehdr)) { 3.29 ERROR("Kernel image does not have a a.out9 header."); 3.30 return -EINVAL; 3.31 } 3.32 3.33 + start = round_pgdown(ehdr.entry); 3.34 txtsz = round_pgup(ehdr.text); 3.35 copyout(xch, dom, parray, 3.36 - 0, image, sizeof ehdr + ehdr.text); 3.37 + start, image, sizeof ehdr + ehdr.text); 3.38 copyout(xch, dom, parray, 3.39 - txtsz, image + sizeof ehdr + ehdr.text, ehdr.data); 3.40 - /* XXX zeroing of BSS needed? */ 3.41 + start+txtsz, image + sizeof ehdr + ehdr.text, ehdr.data); 3.42 3.43 /* XXX load symbols */ 3.44 3.45 @@ -110,13 +112,14 @@ static void 3.46 copyout( 3.47 int xch, u32 dom, 3.48 unsigned long *parray, 3.49 - unsigned long off, 3.50 + unsigned long addr, 3.51 void *buf, 3.52 int sz) 3.53 { 3.54 - unsigned long pgoff, chunksz; 3.55 + unsigned long pgoff, chunksz, off; 3.56 void *pg; 3.57 3.58 + off = KOFFSET(addr); 3.59 while (sz > 0) { 3.60 pgoff = off & (PAGE_SIZE-1); 3.61 chunksz = sz;