WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[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