ok, i finally got it to boot, i had to do some digging and used the previous
3ware driver version and it works, not here's the diff of the two... doesnt
look like too much was changed so i figured i would paste it and see if you
had a idea about if the problem was with 3wares driver or somthing in the
xen kernel patch...
[root@devhost1 3w-drivers]# diff -dNuar 9.4.0.1 9.4.1.2
diff -dNuar 9.4.0.1/3w-9xxx.c 9.4.1.2/3w-9xxx.c
--- 9.4.0.1/3w-9xxx.c 2006-10-20 13:22:02.000000000 -0700
+++ 9.4.1.2/3w-9xxx.c 2007-01-23 16:57:56.000000000 -0800
@@ -4,7 +4,7 @@
Written By: Adam Radford <linuxraid@xxxxxxxx>
Modifications By: Tom Couch <linuxraid@xxxxxxxx>
- Copyright (C) 2004-2006 Applied Micro Circuits Corporation.
+ Copyright (C) 2004-2007 Applied Micro Circuits Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -66,9 +66,10 @@
2.26.02.006 - Fix 9550SX pchip reset timeout.
Add big endian support.
2.26.02.007 - Disable local interrupts during kmap/unmap_atomic().
- 2.26.02.008 - Free irq handler in __twa_shutdown().
+ 2.26.06.001 - Free irq handler in __twa_shutdown().
Serialize reset code.
Add support for 9650SE controllers.
+ 2.26.06.002 - Fix dma mask setting to fallback to 32-bit if 64-bit
fails.
*/
#include <linux/module.h>
@@ -92,7 +93,7 @@
#include "3w-9xxx.h"
/* Globals */
-#define TW_DRIVER_VERSION "2.26.02.008"
+#define TW_DRIVER_VERSION "2.26.06.002-2.6.19"
static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT];
static unsigned int twa_device_extension_count;
static int twa_major = -1;
@@ -1196,7 +1197,6 @@
u32 status_reg_value;
TW_Response_Queue response_que;
TW_Command_Full *full_command_packet;
- TW_Command *command_packet;
TW_Device_Extension *tw_dev = (TW_Device_Extension *)dev_instance;
int handled = 0;
@@ -1274,7 +1274,6 @@
request_id = TW_RESID_OUT(response_que.response_id);
full_command_packet =
tw_dev->command_packet_virt[request_id];
error = 0;
- command_packet =
&full_command_packet->command.oldcommand;
/* Check for command packet errors */
if (full_command_packet->command.newcommand.status
!= 0) {
if (tw_dev->srb[request_id] != 0) {
@@ -2063,11 +2062,14 @@
pci_set_master(pdev);
- retval = pci_set_dma_mask(pdev, sizeof(dma_addr_t) > 4 ?
DMA_64BIT_MASK : DMA_32BIT_MASK);
- if (retval) {
- TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
- goto out_disable_device;
- }
+ if (pci_set_dma_mask(pdev, DMA_64BIT_MASK)
+ || pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK))
+ if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)
+ || pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) {
+ TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma
mask");
+ retval = -ENODEV;
+ goto out_disable_device;
+ }
host = scsi_host_alloc(&driver_template,
sizeof(TW_Device_Extension));
if (!host) {
@@ -2147,7 +2149,7 @@
TW_PARAM_PORTCOUNT,
TW_PARAM_PORTCOUNT_LENGTH)));
/* Now setup the interrupt handler */
- retval = request_irq(pdev->irq, twa_interrupt, SA_SHIRQ, "3w-9xxx",
tw_dev);
+ retval = request_irq(pdev->irq, twa_interrupt, IRQF_SHARED,
"3w-9xxx", tw_dev);
if (retval) {
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x30, "Error requesting
IRQ");
goto out_remove_host;
@@ -2240,7 +2242,7 @@
{
printk(KERN_WARNING "3ware 9000 Storage Controller device driver for
Linux v%s.\n", TW_DRIVER_VERSION);
- return pci_register_driver(&twa_driver);
+ return pci_module_init(&twa_driver);
} /* End twa_init() */
/* This function is called on driver exit */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|