ESXi-5.5-U2

This commit is contained in:
unknown 2015-10-23 18:30:56 -04:00
parent 89a4bb14d0
commit d6b9b2ac58
17 changed files with 661 additions and 683 deletions

View file

@ -1,6 +1,6 @@
#define BUILD_NUMBER "build-1623387" #define BUILD_NUMBER "build-00000"
#define BUILD_NUMBER_NUMERIC 1623387 #define BUILD_NUMBER_NUMERIC 00000
#define BUILD_NUMBER_NUMERIC_STRING "1623387" #define BUILD_NUMBER_NUMERIC_STRING "00000"
#define PRODUCT_BUILD_NUMBER "product-build-4950" #define PRODUCT_BUILD_NUMBER "product-build-00000"
#define PRODUCT_BUILD_NUMBER_NUMERIC 4950 #define PRODUCT_BUILD_NUMBER_NUMERIC 00000
#define PRODUCT_BUILD_NUMBER_NUMERIC_STRING "4950" #define PRODUCT_BUILD_NUMBER_NUMERIC_STRING "00000"

File diff suppressed because one or more lines are too long

View file

@ -1,26 +0,0 @@
<verify>
<virtual-infrastructure>
<address>10.111.110.45</address>
<username>root</username>
<password>password</password>
<vm type="build">
<id>centos-5.3-x64</id>
<realname>Rush-CentOS-5.3-x64</realname>
<os>linux</os>
<username>root</username>
<password>welcome</password>
</vm>
</virtual-infrastructure>
<virtual-infrastructure>
<address>10.111.110.98</address>
<username>root</username>
<password>welcome</password>
<vm type="install">
<id>BDE-Management-Server</id>
<realname>management-server</realname>
<os>linux</os>
<username>root</username>
<password>vmware</password>
</vm>
</virtual-infrastructure>
</verify>

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<disclosure>
<name>vmkdrivers</name>
<version>gpl</version>
<category>VMWsource</category>
<build>
<target>centos-5.3-x64</target>
<files>
<file>vmkdrivers-gpl.tgz</file>
<file>collect-drivers.sh</file>
<file>update-drivers.sh</file>
</files>
<process>
<execute>tar xzf vmkdrivers-gpl.tgz</execute>
<execute>sh ./build-vmkdrivers.sh</execute>
<execute>mv collect-drivers.sh BLD/build/collect-drivers.sh</execute>
<execute>cd BLD/build</execute>
<execute>./collect-drivers.sh</execute>
</process>
<deliveries>
<delivery dir="BLD/build">drivers</delivery>
<delivery>update-drivers.sh</delivery>
</deliveries>
<output>centos-5.3-x64</output>
</build>
</disclosure>

View file

@ -54,7 +54,7 @@
#endif #endif
#define DRV_NAME "ahci" #define DRV_NAME "ahci"
#define DRV_VERSION "3.0-18vmw" #define DRV_VERSION "3.0-20vmw"
#if defined(__VMKLNX__) #if defined(__VMKLNX__)
static int ahci_skip_host_reset = 0; static int ahci_skip_host_reset = 0;
@ -618,6 +618,12 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, 0x2326), board_ahci }, /* Cave Creek AHCI */ { PCI_VDEVICE(INTEL, 0x2326), board_ahci }, /* Cave Creek AHCI */
{ PCI_VDEVICE(INTEL, 0x8c02), board_ahci }, /* Lynx Point AHCI */ { PCI_VDEVICE(INTEL, 0x8c02), board_ahci }, /* Lynx Point AHCI */
{ PCI_VDEVICE(INTEL, 0x8c03), board_ahci }, /* Lynx Point AHCI */ { PCI_VDEVICE(INTEL, 0x8c03), board_ahci }, /* Lynx Point AHCI */
{ PCI_VDEVICE(INTEL, 0x8c04), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x8c05), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x8c06), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point RAID */
{ PCI_VDEVICE(INTEL, 0x1f22), board_ahci }, /* Avoton AHCI */ { PCI_VDEVICE(INTEL, 0x1f22), board_ahci }, /* Avoton AHCI */
{ PCI_VDEVICE(INTEL, 0x1f23), board_ahci }, /* Avoton AHCI */ { PCI_VDEVICE(INTEL, 0x1f23), board_ahci }, /* Avoton AHCI */
{ PCI_VDEVICE(INTEL, 0x1f24), board_ahci }, /* Avoton RAID */ { PCI_VDEVICE(INTEL, 0x1f24), board_ahci }, /* Avoton RAID */
@ -645,6 +651,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, 0x8d64), board_ahci }, /* Wellsburg RAID */ { PCI_VDEVICE(INTEL, 0x8d64), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x8d66), board_ahci }, /* Wellsburg RAID */ { PCI_VDEVICE(INTEL, 0x8d66), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x8d6e), board_ahci }, /* Wellsburg RAID */ { PCI_VDEVICE(INTEL, 0x8d6e), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x23a3), board_ahci }, /* Coleto Creek AHCI */
#endif /* defined(__VMKLNX__) */ #endif /* defined(__VMKLNX__) */
/* JMicron 360/1/3/5/6, match class to avoid IDE function */ /* JMicron 360/1/3/5/6, match class to avoid IDE function */

View file

@ -102,7 +102,7 @@
#endif /* defined(__VMKLNX__) */ #endif /* defined(__VMKLNX__) */
#define DRV_NAME "ata_piix" #define DRV_NAME "ata_piix"
#define DRV_VERSION "2.12-8vmw" #define DRV_VERSION "2.12-10vmw"
enum { enum {
PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ PIIX_IOCFG = 0x54, /* IDE I/O configuration register */
@ -344,6 +344,10 @@ static const struct pci_device_id piix_pci_tbl[] = {
{ 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, { 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
/* SATA Controller IDE (Wellsburg) */ /* SATA Controller IDE (Wellsburg) */
{ 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, { 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
/* SATA Controller IDE (Coleto Creek) */
{ 0x8086, 0x23a1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
/* SATA Controller IDE (Coleto Creek) */
{ 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
#endif /* defined(__VMKLNX__) */ #endif /* defined(__VMKLNX__) */
{ } /* terminate list */ { } /* terminate list */

View file

@ -25,7 +25,7 @@
/* /*
* Source file for NIC routines to access the Phantom hardware * Source file for NIC routines to access the Phantom hardware
* *
* $Id: //depot/vmkdrivers/vsphere55u1/src_9/drivers/net/nx_nic/unm_nic_hw.c#1 $ * $Id: //depot/vmkdrivers/vsphere55u2/src_9/drivers/net/nx_nic/unm_nic_hw.c#1 $
* *
*/ */
#include <linux/delay.h> #include <linux/delay.h>

View file

@ -461,6 +461,7 @@ static const struct {
{ "nic_tx_threshold_hit" }, { "nic_tx_threshold_hit" },
{ "mbuf_lwm_thresh_hit" }, { "mbuf_lwm_thresh_hit" },
{ "dma_4g_cross" },
}; };
#define TG3_NUM_STATS ARRAY_SIZE(ethtool_stats_keys) #define TG3_NUM_STATS ARRAY_SIZE(ethtool_stats_keys)
@ -7347,7 +7348,7 @@ static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
{ {
u32 base = (u32) mapping & 0xffffffff; u32 base = (u32) mapping & 0xffffffff;
return (base > 0xffffdcc0) && (base + len + 8 < base); return (base + len + 8 < base);
} }
/* Test for DMA addresses > 40-bit */ /* Test for DMA addresses > 40-bit */
@ -7384,8 +7385,10 @@ static bool tg3_tx_frag_set(struct tg3_napi *tnapi, u32 *entry, u32 *budget,
if (tg3_flag(tp, SHORT_DMA_BUG) && len <= 8) if (tg3_flag(tp, SHORT_DMA_BUG) && len <= 8)
hwbug = true; hwbug = true;
if (tg3_4g_overflow_test(map, len)) if (tg3_4g_overflow_test(map, len)) {
tp->dma_4g_cross++;
hwbug = true; hwbug = true;
}
if (tg3_40bit_overflow_test(tp, map, len)) if (tg3_40bit_overflow_test(tp, map, len))
hwbug = true; hwbug = true;
@ -11500,6 +11503,7 @@ static void tg3_get_estats(struct tg3 *tp, struct tg3_ethtool_stats *estats)
ESTAT_ADD(nic_tx_threshold_hit); ESTAT_ADD(nic_tx_threshold_hit);
ESTAT_ADD(mbuf_lwm_thresh_hit); ESTAT_ADD(mbuf_lwm_thresh_hit);
estats->dma_4g_cross = tp->dma_4g_cross;
} }
static void tg3_get_nstats(struct tg3 *tp, struct rtnl_link_stats64 *stats) static void tg3_get_nstats(struct tg3 *tp, struct rtnl_link_stats64 *stats)
@ -17703,17 +17707,13 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
features |= NETIF_F_TSO_ECN; features |= NETIF_F_TSO_ECN;
} }
#if defined(__VMKLNX__) && defined(TG3_INBOX)
/*
* Disable TSO to avoid the data corruption issue happened when
* a 9KB+ buffer straddling a 4GB boundary. Please refer to
* PR 1148150.
*/
features &= ~(NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN);
tg3_flag_clear(tp, TSO_CAPABLE);
tg3_flag_clear(tp, TSO_BUG);
#endif
#if defined(__VMKLNX__) #if defined(__VMKLNX__)
if (disable_tso) {
features &= ~(NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN);
tg3_flag_clear(tp, TSO_CAPABLE);
tg3_flag_clear(tp, TSO_BUG);
}
/* VMWare does not have skb_gso_segment() to workaround TSO_BUG */ /* VMWare does not have skb_gso_segment() to workaround TSO_BUG */
if (tg3_flag(tp, TSO_BUG)) if (tg3_flag(tp, TSO_BUG))
features &= ~(NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN); features &= ~(NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN);

View file

@ -2917,6 +2917,7 @@ struct tg3_ethtool_stats {
u64 nic_tx_threshold_hit; u64 nic_tx_threshold_hit;
u64 mbuf_lwm_thresh_hit; u64 mbuf_lwm_thresh_hit;
u64 dma_4g_cross;
}; };
#if defined(__VMKLNX__) #if defined(__VMKLNX__)
@ -3404,6 +3405,7 @@ struct tg3 {
#if (defined(__VMKLNX__) && VMWARE_ESX_DDK_VERSION >= 55000) #if (defined(__VMKLNX__) && VMWARE_ESX_DDK_VERSION >= 55000)
int nic_idx; int nic_idx;
#endif #endif
unsigned long dma_4g_cross;
bool link_up; bool link_up;
}; };

View file

@ -13,6 +13,12 @@ struct tg3;
#define wmb() asm volatile("sfence" ::: "memory") #define wmb() asm volatile("sfence" ::: "memory")
#endif #endif
static int disable_tso = 0;
module_param(disable_tso, int, 0);
MODULE_PARM_DESC(disable_tso, "Setting the variable to 1 to disable HW TSO "
"functionality on the driver level. Value of "
"0 will enable HW TSO which is the default.");
static int psod_on_tx_timeout = 0; static int psod_on_tx_timeout = 0;
module_param(psod_on_tx_timeout, int, 0); module_param(psod_on_tx_timeout, int, 0);

View file

@ -3083,12 +3083,6 @@ megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
spin_unlock_irqrestore(instance->host->host_lock, flags); spin_unlock_irqrestore(instance->host->host_lock, flags);
break; break;
} }
if (cmd->frame->dcmd.opcode == MR_DCMD_CTRL_EVENT_GET_INFO ||
cmd->frame->dcmd.opcode == MR_DCMD_CTRL_EVENT_GET) {
spin_lock_irqsave(&poll_aen_lock, flags);
megasas_poll_wait_aen = 0;
spin_unlock_irqrestore(&poll_aen_lock, flags);
}
/* /*
* See if got an event notification * See if got an event notification
*/ */
@ -5757,10 +5751,13 @@ static unsigned int megasas_mgmt_poll(struct file *file, poll_table *wait)
poll_wait(file, &megasas_poll_wait, wait); poll_wait(file, &megasas_poll_wait, wait);
spin_lock_irqsave(&poll_aen_lock, flags); spin_lock_irqsave(&poll_aen_lock, flags);
if (megasas_poll_wait_aen) if (megasas_poll_wait_aen) {
mask = (POLLIN | POLLRDNORM); mask = (POLLIN | POLLRDNORM);
else }
else {
mask = 0; mask = 0;
}
megasas_poll_wait_aen = 0;
spin_unlock_irqrestore(&poll_aen_lock, flags); spin_unlock_irqrestore(&poll_aen_lock, flags);
return mask; return mask;

View file

@ -2216,9 +2216,18 @@ out:
} }
/* Fusion OCR work queue */ /* Fusion OCR work queue */
#if defined(__VMKLNX__)
void megasas_fusion_ocr_wq(struct work_struct *work)
#else
void megasas_fusion_ocr_wq(void *arg) void megasas_fusion_ocr_wq(void *arg)
#endif
{ {
struct megasas_instance *instance = arg; #if defined(__VMKLNX__)
struct megasas_instance *instance =
container_of(work, struct megasas_instance, work_init);
#else
struct megasas_instance *instance = arg;
#endif
megasas_reset_fusion(instance->host); megasas_reset_fusion(instance->host);
} }

View file

@ -6103,15 +6103,6 @@ void ata_qc_complete(struct ata_queued_cmd *qc)
ata_verify_xfer(qc); ata_verify_xfer(qc);
__ata_qc_complete(qc); __ata_qc_complete(qc);
#if defined(__VMKLNX__)
/* Fixing PR 1173296 */
if (unlikely((ehi->dev_action[dev->devno] & ATA_EH_REVALIDATE) &&
(ap->pflags & ATA_PFLAG_EH_PENDING))) {
ata_port_printk(ap, KERN_INFO,
"ata_qc_complete, dev needs revalidation, calling EH\n");
wake_up_process(ap->scsi_host->ehandler);
}
#endif /* defined(__VMKLNX__) */
} else { } else {
if (qc->flags & ATA_QCFLAG_EH_SCHEDULED) if (qc->flags & ATA_QCFLAG_EH_SCHEDULED)
return; return;

View file

@ -2310,6 +2310,11 @@ unsigned int ata_scsiop_inq_00(struct ata_scsi_args *args, u8 *rbuf,
}; };
rbuf[3] = sizeof(pages); /* number of supported VPD pages */ rbuf[3] = sizeof(pages); /* number of supported VPD pages */
if (buflen < 4 + sizeof(pages)) {
args->cmd->resid = buflen; /* no data transferred */
return 0;
}
if (buflen > 6) if (buflen > 6)
memcpy(rbuf + 4, pages, sizeof(pages)); memcpy(rbuf + 4, pages, sizeof(pages));

View file

@ -18,8 +18,8 @@
#endif #endif
#include "pci-quirks.h" #include "pci-quirks.h"
#if defined(__VMKLNX__) #if defined(__VMKLNX__)
//#include "../host/xhci/xhci-ext-caps.h" #include "../host/xhci/xhci-ext-caps.h"
//#else #else
#include "xhci-ext-caps.h" #include "xhci-ext-caps.h"
#endif #endif

View file

@ -8563,15 +8563,12 @@ GetNICPanicInfo(vmk_AddrCookie cookie, vmk_UplinkPanicInfo *intInfo)
* Pseudo NIC does not support remote * Pseudo NIC does not support remote
* debugging. * debugging.
*/ */
intInfo->intrCookie = VMK_INVALID_INTRCOOKIE;
intInfo->clientData.ptr = NULL; intInfo->clientData.ptr = NULL;
if (dev->pdev_pseudo) { if (dev->pdev_pseudo) {
pci_dev = (struct pci_dev *)dev->pdev_pseudo; pci_dev = (struct pci_dev *)dev->pdev_pseudo;
intInfo->intrCookie = pci_dev->irq;
intInfo->clientData.ptr = dev; intInfo->clientData.ptr = dev;
} }
} else { } else {
intInfo->intrCookie = LinuxIRQ_VectorToCookie(dev->pdev->irq);
intInfo->clientData.ptr = dev; intInfo->clientData.ptr = dev;
} }

View file

@ -829,7 +829,13 @@ SCSILinuxProcessCompletions(scsiLinuxTLS_t *tls, // IN
--scmd->device->host->host_busy; --scmd->device->host->host_busy;
--scmd->device->device_busy; --scmd->device->device_busy;
spin_unlock_irqrestore(scmd->device->host->host_lock, flags); spin_unlock_irqrestore(scmd->device->host->host_lock, flags);
/* wake up host error handler if necessary */
if (unlikely(scmd->device->host->host_eh_scheduled
&& !scmd->device->host->host_busy)) {
wake_up_process(scmd->device->host->ehandler);
}
/* /*
* Put back the scsi command before calling scsi upper layer * Put back the scsi command before calling scsi upper layer
* Otherwise, if a destroy path is issued by upper layer and * Otherwise, if a destroy path is issued by upper layer and