diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2012-02-29 21:19:54 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-03-01 17:23:42 -0500 | 
| commit | 413708bbaf5c85c4c8a264145f7d6c3afcd97f99 (patch) | |
| tree | 92542d8a2e280456024e0f04d5b7eb905f74ede7 | |
| parent | 73f98eab9b9e0bab492ca06add5657d9e702ddb1 (diff) | |
enic: fix an endian bug in enic_probe()
"num_vfs" is a u32 but we only use the high 16 bits and the low 16bits
are left as zero.  That isn't a problem for little endian systems but it
will break on big endian ones.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/ethernet/cisco/enic/enic.h | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/cisco/enic/enic_main.c | 2 | 
2 files changed, 2 insertions, 2 deletions
| diff --git a/drivers/net/ethernet/cisco/enic/enic.h b/drivers/net/ethernet/cisco/enic/enic.h index ee93a2087fe6..c52295cd05ef 100644 --- a/drivers/net/ethernet/cisco/enic/enic.h +++ b/drivers/net/ethernet/cisco/enic/enic.h @@ -94,7 +94,7 @@ struct enic {  	u32 rx_coalesce_usecs;  	u32 tx_coalesce_usecs;  #ifdef CONFIG_PCI_IOV -	u32 num_vfs; +	u16 num_vfs;  #endif  	struct enic_port_profile *pp; diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index ab3f67f980d8..0e4edd3b6bee 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -2370,7 +2370,7 @@ static int __devinit enic_probe(struct pci_dev *pdev,  	pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_SRIOV);  	if (pos) {  		pci_read_config_word(pdev, pos + PCI_SRIOV_TOTAL_VF, -			(u16 *)&enic->num_vfs); +			&enic->num_vfs);  		if (enic->num_vfs) {  			err = pci_enable_sriov(pdev, enic->num_vfs);  			if (err) { | 
