aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'xen/drivers')
-rw-r--r--xen/drivers/block/xen_block.c20
-rw-r--r--xen/drivers/block/xen_segment.c12
-rw-r--r--xen/drivers/char/xen_kbd.c3
-rw-r--r--xen/drivers/char/xen_serial.c2
-rw-r--r--xen/drivers/ide/ide-xeno.c7
-rw-r--r--xen/drivers/net/tg3.c6
-rw-r--r--xen/drivers/scsi/scsi.c1
-rw-r--r--xen/drivers/scsi/sd.c10
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);