[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: Re: 3ware 9650 and Xen 3.1



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.