--- 4.22.00.00/source/mptlan.c.DIST 2009-11-12 05:17:05.000000000 -0500 +++ 4.22.00.00/source/mptlan.c 2010-07-12 12:17:28.891247785 -0400 @@ -56,6 +56,7 @@ #include #include #include +#include #define my_VERSION MPT_LINUX_VERSION_COMMON #define MYNAM "mptlan" @@ -1419,6 +1420,19 @@ } #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)) +static const struct net_device_ops mpt_netdev_ops = { + .ndo_open = mpt_lan_open, + .ndo_stop = mpt_lan_close, + .ndo_get_stats = mpt_lan_get_stats, + .ndo_set_multicast_list = NULL, + .ndo_change_mtu = mpt_lan_change_mtu, + .ndo_start_xmit = mpt_lan_sdu_send, + .ndo_tx_timeout = mpt_lan_tx_timeout, +}; +#endif + + /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ static struct net_device * mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum) @@ -1492,15 +1506,17 @@ priv->tx_max_out = (tx_max_out_p <= MPT_TX_MAX_OUT_LIM) ? tx_max_out_p : MPT_TX_MAX_OUT_LIM; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)) + dev->netdev_ops = &mpt_netdev_ops; +#else dev->open = mpt_lan_open; dev->stop = mpt_lan_close; dev->get_stats = mpt_lan_get_stats; dev->set_multicast_list = NULL; dev->change_mtu = mpt_lan_change_mtu; dev->hard_start_xmit = mpt_lan_sdu_send; - -/* Not in 2.3.42. Need 2.3.45+ */ dev->tx_timeout = mpt_lan_tx_timeout; +#endif dev->watchdog_timeo = MPT_LAN_TX_TIMEOUT; dlprintk((KERN_INFO MYNAM ": Finished registering dev " --- 4.22.00.00/source/mptsas.c.DIST 2009-11-12 05:17:05.000000000 -0500 +++ 4.22.00.00/source/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) --- 4.22.00.00/source/csmi/csmisas.c.DIST 2009-11-12 05:17:05.000000000 -0500 +++ 4.22.00.00/source/csmi/csmisas.c 2010-07-12 11:35:26.307195321 -0400 @@ -51,6 +51,8 @@ #include #endif +#include + static int csmisas_do_raid(MPT_ADAPTER *ioc, u8 action, u8 PhysDiskNum, u8 VolumeBus, u8 VolumeId, pMpiRaidActionReply_t reply); static u8 map_sas_status_to_csmi(u8 mpi_sas_status);