For Omsa 6.0.1 is need mptlinux version more than 3.04 present in kernel I have download 4.22 from lsi site and try build update driver with dkms, i have already do same on 2.6.26 past without problem but with 2.6.32 give this compilation error: /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c: In function ‘mptsas_smp_handler’: /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2757: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2758: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2775: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2805: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2808: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2821: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2823: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2854: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2855: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2864: error: ‘struct request’ has no member named ‘data_len’ /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2867: error: ‘struct request’ has no member named ‘data_len’ make[3]: *** [/var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.o] Error 1 make[2]: *** [_module_/var/lib/dkms/mptlinux/4.22.00.00/build] Error 2 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2 Is possible update mptlinux on new kernel version please?
you could fix it by change the data_len to _data_len. pls refer to the "struct request" in the 2.6.32 kernel header.
Reply-To: James.Bottomley@suse.de On Thu, 2010-05-20 at 07:24 +0000, bugzilla-daemon@bugzilla.kernel.org wrote: > For Omsa 6.0.1 is need mptlinux version more than 3.04 present in kernel > I have download 4.22 from lsi site and try build update driver with dkms, i > have already do same on 2.6.26 past without problem but with 2.6.32 give this > compilation error: > > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c: In function > ‘mptsas_smp_handler’: > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2757: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2758: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2775: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2805: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2808: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2821: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2823: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2854: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2855: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2864: error: ‘struct > request’ > has no member named ‘data_len’ > /var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.c:2867: error: ‘struct > request’ > has no member named ‘data_len’ > make[3]: *** [/var/lib/dkms/mptlinux/4.22.00.00/build/mptsas.o] Error 1 > make[2]: *** [_module_/var/lib/dkms/mptlinux/4.22.00.00/build] Error 2 > make[1]: *** [sub-make] Error 2 > make: *** [all] Error 2 > > Is possible update mptlinux on new kernel version please? bugzilla.kernel.org is for actual bugs within the linux kernel, not for problems with out of tree drivers. The issue you're trying to report needs to be fixed by LSI. While it's not impossible they would notice this request on the scsi mailing list, you're much more likely to get their attention by requesting support directly from them. James
@dujun - Thanks It's actually a double underscore: __data_len diff against 4.22.00.00-2 --- mptsas.c.DIST 2009-11-12 05:17:05.000000000 -0500 +++ mptsas.c 2010-07-12 11:14:41.480493720 -0400 @@ -2754,8 +2754,8 @@ /* do we need to support multiple segments? */ if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) { printk(MYIOC_s_ERR_FMT "%s: multiple segments req %u %u, rsp %u %u\n", - ioc->name, __func__, req->bio->bi_vcnt, req->data_len, - rsp->bio->bi_vcnt, rsp->data_len); + ioc->name, __func__, req->bio->bi_vcnt, req->__data_len, + rsp->bio->bi_vcnt, rsp->__data_len); return -EINVAL; } @@ -2772,7 +2772,7 @@ smpreq = (SmpPassthroughRequest_t *)mf; memset(smpreq, 0, sizeof(*smpreq)); - smpreq->RequestDataLength = cpu_to_le16(req->data_len - 4); + smpreq->RequestDataLength = cpu_to_le16(req->__data_len - 4); smpreq->Function = MPI_FUNCTION_SMP_PASSTHROUGH; if (rphy) @@ -2802,10 +2802,10 @@ flagsLength = flagsLength << MPI_SGE_FLAGS_SHIFT; - flagsLength |= (req->data_len - 4); + flagsLength |= (req->__data_len - 4); dma_addr_out = pci_map_single(ioc->pcidev, bio_data(req->bio), - req->data_len, PCI_DMA_BIDIRECTIONAL); + req->__data_len, PCI_DMA_BIDIRECTIONAL); if (!dma_addr_out) goto put_mf; ioc->add_sge(psge, flagsLength, dma_addr_out); @@ -2818,9 +2818,9 @@ MPI_SGE_FLAGS_END_OF_BUFFER; flagsLength = flagsLength << MPI_SGE_FLAGS_SHIFT; - flagsLength |= rsp->data_len + 4; + flagsLength |= rsp->__data_len + 4; dma_addr_in = pci_map_single(ioc->pcidev, bio_data(rsp->bio), - rsp->data_len, PCI_DMA_BIDIRECTIONAL); + rsp->__data_len, PCI_DMA_BIDIRECTIONAL); if (!dma_addr_in) goto out_unmap; @@ -2851,8 +2851,8 @@ smprep = (SmpPassthroughReply_t *)ioc->sas_mgmt.reply; memcpy(req->sense, smprep, sizeof(*smprep)); req->sense_len = sizeof(*smprep); - req->data_len = 0; - rsp->data_len -= smprep->ResponseDataLength; + req->__data_len = 0; + rsp->__data_len -= smprep->ResponseDataLength; } else { printk(MYIOC_s_ERR_FMT "%s: smp passthru reply failed to be returned\n", @@ -2861,10 +2861,10 @@ } out_unmap: if (dma_addr_out) - pci_unmap_single(ioc->pcidev, dma_addr_out, req->data_len, + pci_unmap_single(ioc->pcidev, dma_addr_out, req->__data_len, PCI_DMA_BIDIRECTIONAL); if (dma_addr_in) - pci_unmap_single(ioc->pcidev, dma_addr_in, rsp->data_len, + pci_unmap_single(ioc->pcidev, dma_addr_in, rsp->__data_len, PCI_DMA_BIDIRECTIONAL); put_mf: if (mf)