Xen kernel oops loading 3w-9xxx driver

Bug #209893 reported by Mike Vincent
8
Affects Status Importance Assigned to Milestone
xen-3.2 (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

I had been trying to bring up a new ubuntu server to use as a xen server using gutsy. Attempting to boot the xen kernel (after installing ubuntu-xen-server) I was unable to get past initramfs because the 3w-9xxx module would throw an error while loading.
Thinking that perhaps it was something that was fixed in the newer kernel I upgraded to hardy but received the same error...

The error is exactly the same as reported in this posting http://lists.xensource.com/archives/html/xen-devel/2007-09/msg00210.html
Follow through on the thread I patched drivers/scsi/3w-9xxx.c and recompiled and it seems to have fixed it for me.
The patch is very brief:

--- linux-2.6.24.2/drivers/scsi/3w-9xxx.c 2008-02-10 23:51:11.000000000 -0600
+++ linux-2.6.24.fixed/drivers/scsi/3w-9xxx.c 2008-03-31 14:46:46.000000000 -0500
@@ -2011,14 +2011,25 @@

  pci_set_master(pdev);

- 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;
- }
+/* Re-instated following chunk of code to replace the commented out block below it.. */
+
+ 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;
+ }
+/* Commented out as per suggestion in thread on xen devel list
+ * http://lists.xensource.com/archives/html/xen-devel/2007-09/msg00210.html
+ *
+ * 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) {

Revision history for this message
Mike Vincent (mike-vincent) wrote :

More info.

I ended up rebuilding the machine, this time using the amd64 netboot image (boot.img.gz) from http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-amd64/current/images/netboot/

Unfortunately there's no ubuntu-xen-server meta package for 64, yet. :(

I installed linux-image-xen, xen-hypervisor, xen-utils-3.1 and all the things that get pulled in with, then rebooted and the xen kernel didn't have any issues with the 3w-9xxx driver.

So I presume the issues I had before were specific to using the xen kernel on a 32bit system.

Revision history for this message
con (conloos) wrote :

i installed hardy too, and have the the same problem with the 3w_9xxx driver on 2.6.24-16-xen

con

Revision history for this message
Caspar Clemens Mierau (leitmedium) wrote :

Thank you for reporting this? Is this still an issue with an up to date Hardy installation?

Changed in xen-3.2:
status: New → Incomplete
Revision history for this message
felix (felix-nensa) wrote :

Hello Caspar,

I can confirm that is is still an issue with an up to date Hardy installation. Just installed a fresh Hary and pulled "linux-image-2.6.24-19-xen" (well in fact took "linux-xen") from the repositories. When rebooting into xen now I run into the 3ware related error described here: http://lists.xensource.com/archives/html/xen-devel/2007-09/msg00210.html

felix

Revision history for this message
Dimitrios Symeonidis (azimout) wrote :

switching back to new, the requested info has been supplied

Changed in xen-3.2 (Ubuntu):
status: Incomplete → New
Revision history for this message
Thomas Hotz (thotz-deactivatedaccount) wrote :

Setting to confirmed, see comment #4.

Changed in xen-3.2 (Ubuntu):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.