[Devel] Re: [PATCH 1/1] scsi : megaraid_{mm, mbox}: a fix on 64-bit DMA capability check
Vasily Averin
vvs at sw.ru
Tue Jun 20 06:53:03 PDT 2006
Hello Seokmann,
I would like to tell you that your patch is wrong, at least for
MegaRAID SATA 150-4 RAID Controller
06:02.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID (rev 01)
Subsystem: LSI Logic / Symbios Logic MegaRAID SATA 150-4 RAID Controller
00: 00 10 60 19 16 03 b0 04 01 00 04 01 08 20 00 00
10: 08 00 20 df 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 10 23 45
30: 00 00 00 00 80 00 00 00 00 00 00 00 0a 01 00 00
40: 00 00 ff ff 00 00 00 d0 08 00 00 fc 00 00 00 fc
50: 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 88 1f 00 00 00 00 00 f8 00 00 00 00
70: 00 00 00 00 00 00 ff ff 00 00 f4 fe 00 00 00 00
80: 01 00 02 00 00 00 00 00 06 01 38 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 06 01 00 20 9c 00 00 00
a0: cc cc 00 00 99 02 00 00 00 06 00 80 00 00 00 00
b0: 00 00 00 6e 00 00 00 00 00 00 00 00 fd 01 00 00
c0: fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
As far as I see the 64-bit magic is set, pci(0xA4) == 0x0299 and driver tries to
enable 64-bit DMA. However the controller is not supported 64-bit DMA, and I
still have the same error messages.
Could you please check this issue and update your patch properly.
Thank you,
Vasily Averin
SWsoft Virtuozzo/OpenVZ Linux kernel team
Ju, Seokmann wrote:
> Hi,
>
> This patch contains a fix for 64-bit DMA capability check in
> megaraid_{mm,mbox} driver. With patch, the driver access PCI
> configuration space with dedicated offset to read a signature. If the
> signature read, it means that the controller has capability to handle
> 64-bit DMA. Before this patch, the driver blindly claimed the capability
> without checking with controller.
> The issue has been reported by Vasily Averin [vvs at sw.ru]. Thank you
> Vasily for the reporting.
> +#define HBA_SIGNATURE_64BIT 0x0299
> +#define PCI_CONF_AMISIG64 0xa4
...
> - if (pci_set_dma_mask(adapter->pdev, DMA_64BIT_MASK) != 0) {
> + pci_read_config_dword(adapter->pdev, PCI_CONF_AMISIG64,
> &magic64);
>
> - con_log(CL_ANN, (KERN_WARNING
> - "megaraid: could not set DMA mask for
> 64-bit.\n"));
> + if ((magic64 == HBA_SIGNATURE_64BIT) ||
> + (adapter->pdev->vendor == PCI_VENDOR_ID_DELL &&
> + adapter->pdev->device ==
> PCI_DEVICE_ID_PERC4_DI_EVERGLADES) ||
> + (adapter->pdev->vendor == PCI_VENDOR_ID_LSI_LOGIC &&
> + adapter->pdev->device == PCI_DEVICE_ID_VERDE) ||
> + (adapter->pdev->vendor == PCI_VENDOR_ID_LSI_LOGIC &&
> + adapter->pdev->device == PCI_DEVICE_ID_DOBSON) ||
> + (adapter->pdev->vendor == PCI_VENDOR_ID_DELL &&
> + adapter->pdev->device == PCI_DEVICE_ID_PERC4E_DI_KOBUK)
> ||
> + (adapter->pdev->vendor == PCI_VENDOR_ID_LSI_LOGIC &&
> + adapter->pdev->device == PCI_DEVICE_ID_LINDSAY)) {
> + if (pci_set_dma_mask(adapter->pdev, DMA_64BIT_MASK) !=
> 0) {
More information about the Devel
mailing list