diff options
Diffstat (limited to 'xen/drivers')
-rw-r--r-- | xen/drivers/block/xen_block.c | 20 | ||||
-rw-r--r-- | xen/drivers/block/xen_segment.c | 12 | ||||
-rw-r--r-- | xen/drivers/char/xen_kbd.c | 3 | ||||
-rw-r--r-- | xen/drivers/char/xen_serial.c | 2 | ||||
-rw-r--r-- | xen/drivers/ide/ide-xeno.c | 7 | ||||
-rw-r--r-- | xen/drivers/net/tg3.c | 6 | ||||
-rw-r--r-- | xen/drivers/scsi/scsi.c | 1 | ||||
-rw-r--r-- | xen/drivers/scsi/sd.c | 10 |
8 files changed, 28 insertions, 33 deletions
diff --git a/xen/drivers/block/xen_block.c b/xen/drivers/block/xen_block.c index bf9cfd7431..a49817d46f 100644 --- a/xen/drivers/block/xen_block.c +++ b/xen/drivers/block/xen_block.c @@ -17,10 +17,8 @@ #include <xeno/keyhandler.h> #include <xeno/interrupt.h> #include <xeno/segment.h> -#include <asm/domain_page.h> /* TEST_READ_VALIDITY */ -#if 1 -#define TEST_READ_VALIDITY +#if 0 #define DPRINTK(_f, _a...) printk( _f , ## _a ) #else #define DPRINTK(_f, _a...) ((void)0) @@ -206,16 +204,6 @@ static void end_block_io_op(struct buffer_head *bh, int uptodate) DPRINTK("Buffer not up-to-date at end of operation\n"); pending_req->status = 1; } -#ifdef TEST_READ_VALIDITY - else if ( pending_req->operation == READ ) - { - unsigned long *buff = map_domain_mem(virt_to_phys(bh->b_data)); - if ( (buff[ 0] == 0xdeadbeef) && - (buff[127] == 0xdeadbeef) ) - printk("An unmodified buffer at sector %ld\n", bh->b_rsector); - unmap_domain_mem(buff); - } -#endif unlock_buffer(pending_req->domain, virt_to_phys(bh->b_data), @@ -616,12 +604,6 @@ static void dispatch_rw_block_io(struct task_struct *p, int index) } else { -#ifdef TEST_READ_VALIDITY - unsigned long *buff = map_domain_mem(phys_seg[i].buffer); - buff[ 0] = 0xdeadbeef; - buff[127] = 0xdeadbeef; - unmap_domain_mem(buff); -#endif bh->b_state = (1 << BH_Mapped) | (1 << BH_Read); } diff --git a/xen/drivers/block/xen_segment.c b/xen/drivers/block/xen_segment.c index 4a09f511a6..dbfe699030 100644 --- a/xen/drivers/block/xen_segment.c +++ b/xen/drivers/block/xen_segment.c @@ -101,6 +101,7 @@ void xen_segment_probe(struct task_struct *p, xen_disk_info_t *raw_xdi) { int loop, i; xen_disk_info_t *xdi = map_domain_mem(virt_to_phys(raw_xdi)); + unsigned long capacity = 0, device; for ( loop = 0; loop < XEN_MAX_SEGMENTS; loop++ ) { @@ -108,13 +109,12 @@ void xen_segment_probe(struct task_struct *p, xen_disk_info_t *raw_xdi) (xsegments[loop].domain != p->domain) ) continue; - xdi->disks[xdi->count].device = - MK_VIRTUAL_XENDEV(xsegments[loop].segment_number); + device = MK_VIRTUAL_XENDEV(xsegments[loop].segment_number); for ( i = 0; i < xsegments[loop].num_extents; i++ ) - { - xdi->disks[xdi->count].capacity += - xsegments[loop].extents[i].size; - } + capacity += xsegments[loop].extents[i].size; + + xdi->disks[xdi->count].device = device; + xdi->disks[xdi->count].capacity = capacity; xdi->count++; } diff --git a/xen/drivers/char/xen_kbd.c b/xen/drivers/char/xen_kbd.c index dc9379a06c..b103f2fb4e 100644 --- a/xen/drivers/char/xen_kbd.c +++ b/xen/drivers/char/xen_kbd.c @@ -1,4 +1,5 @@ #include <asm-i386/io.h> +#include <asm-i386/irq.h> #include <xeno/sched.h> /* this has request_irq() proto for some reason */ #include <xeno/keyhandler.h> @@ -183,7 +184,7 @@ static void keyboard_interrupt(int irq, void *dev_id, struct pt_regs *regs) void initialize_keyboard() { - if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, 0, "keyboard", NULL)) + if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, SA_NOPROFILE, "keyboard", NULL)) printk("initialize_keyboard: failed to alloc IRQ %d\n", KEYBOARD_IRQ); return; diff --git a/xen/drivers/char/xen_serial.c b/xen/drivers/char/xen_serial.c index 4fba991997..95107e587d 100644 --- a/xen/drivers/char/xen_serial.c +++ b/xen/drivers/char/xen_serial.c @@ -85,6 +85,6 @@ void initialize_serial() outb(NS16550_MCR_OUT2, SERIAL_BASE + NS16550_MCR); /* Modem control */ outb(NS16550_IER_ERDAI, SERIAL_BASE + NS16550_IER ); /* Setup interrupts */ - if((rc = request_irq(4, serial_rx_int, 0, "serial", 0))) + if((rc = request_irq(4, serial_rx_int, SA_NOPROFILE, "serial", 0))) printk("initialize_serial: failed to get IRQ4, rc=%d\n", rc); } diff --git a/xen/drivers/ide/ide-xeno.c b/xen/drivers/ide/ide-xeno.c index 49ecde74e4..351e2cbcf5 100644 --- a/xen/drivers/ide/ide-xeno.c +++ b/xen/drivers/ide/ide-xeno.c @@ -12,7 +12,7 @@ void ide_probe_devices(xen_disk_info_t* xdi) int loop; unsigned int unit; xen_disk_info_t *xen_xdi = map_domain_mem(virt_to_phys(xdi)); - unsigned long capacity; + unsigned long capacity, device; ide_drive_t *drive; for ( loop = 0; loop < MAX_HWIFS; loop++ ) @@ -25,9 +25,10 @@ void ide_probe_devices(xen_disk_info_t* xdi) drive = &hwif->drives[unit]; if ( !drive->present ) continue; + device = MK_IDE_XENDEV((loop * MAX_DRIVES) + unit); capacity = current_capacity(drive); - xen_xdi->disks[xen_xdi->count].device = - MK_IDE_XENDEV((loop * MAX_DRIVES) + unit); + + xen_xdi->disks[xen_xdi->count].device = device; xen_xdi->disks[xen_xdi->count].capacity = capacity; xen_xdi->count++; diff --git a/xen/drivers/net/tg3.c b/xen/drivers/net/tg3.c index 41f680904b..3e50ba408b 100644 --- a/xen/drivers/net/tg3.c +++ b/xen/drivers/net/tg3.c @@ -2099,6 +2099,12 @@ static void tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs) { int budget = 1000; tg3_poll( dev, &budget ); + + tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, + 0x00000000); + tr32(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW); + + } #endif diff --git a/xen/drivers/scsi/scsi.c b/xen/drivers/scsi/scsi.c index 3217be195d..82e8ce78ee 100644 --- a/xen/drivers/scsi/scsi.c +++ b/xen/drivers/scsi/scsi.c @@ -855,6 +855,7 @@ void scsi_wait_req (Scsi_Request * SRpnt, const void *cmnd , *(int *)(SRpnt->sr_request.waiting) = 0; } } +printk("*"); #endif diff --git a/xen/drivers/scsi/sd.c b/xen/drivers/scsi/sd.c index a2a245fddc..88e7ce814a 100644 --- a/xen/drivers/scsi/sd.c +++ b/xen/drivers/scsi/sd.c @@ -1320,17 +1320,21 @@ void scsi_probe_devices(xen_disk_info_t *xdi) Scsi_Disk *sd; int i; xen_disk_info_t *xen_xdi = map_domain_mem(virt_to_phys(xdi)); + unsigned long capacity, device; for ( sd = rscsi_disks, i = 0; i < sd_template.dev_max; i++, sd++ ) { if ( sd->device == NULL ) continue; - xen_xdi->disks[xen_xdi->count].device = MK_SCSI_XENDEV(i); - xen_xdi->disks[xen_xdi->count].capacity = sd->capacity; + device = MK_SCSI_XENDEV(i); + capacity = sd->capacity; + + xen_xdi->disks[xen_xdi->count].device = device; + xen_xdi->disks[xen_xdi->count].capacity = capacity; xen_xdi->count++; printk("Disk %d: SCSI-XENO capacity %dkB (%dMB)\n", - xen_xdi->count, sd->capacity>>1, sd->capacity>>11); + xen_xdi->count, capacity>>1, capacity>>11); } unmap_domain_mem(xen_xdi); |