mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
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>
This commit is contained in:
parent
73f98eab9b
commit
413708bbaf
@ -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;
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user