mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 01:24:12 +08:00
qlcnic: fix endianess for lro
ipaddress in ifa->ifa_address field are in big endian format. Also device requires ip address in big endian only. Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com> Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c265eb6ecb
commit
b501595cbb
@ -898,6 +898,11 @@ struct qlcnic_mac_req {
|
||||
u8 mac_addr[6];
|
||||
};
|
||||
|
||||
struct qlcnic_ipaddr {
|
||||
__be32 ipv4;
|
||||
__be32 ipv6[4];
|
||||
};
|
||||
|
||||
#define QLCNIC_MSI_ENABLED 0x02
|
||||
#define QLCNIC_MSIX_ENABLED 0x04
|
||||
#define QLCNIC_LRO_ENABLED 0x08
|
||||
@ -1286,7 +1291,7 @@ void qlcnic_free_mac_list(struct qlcnic_adapter *adapter);
|
||||
int qlcnic_nic_set_promisc(struct qlcnic_adapter *adapter, u32);
|
||||
int qlcnic_config_intr_coalesce(struct qlcnic_adapter *adapter);
|
||||
int qlcnic_config_rss(struct qlcnic_adapter *adapter, int enable);
|
||||
int qlcnic_config_ipaddr(struct qlcnic_adapter *adapter, u32 ip, int cmd);
|
||||
int qlcnic_config_ipaddr(struct qlcnic_adapter *adapter, __be32 ip, int cmd);
|
||||
int qlcnic_linkevent_request(struct qlcnic_adapter *adapter, int enable);
|
||||
void qlcnic_advert_link_change(struct qlcnic_adapter *adapter, int linkup);
|
||||
|
||||
|
@ -676,9 +676,10 @@ int qlcnic_config_rss(struct qlcnic_adapter *adapter, int enable)
|
||||
return rv;
|
||||
}
|
||||
|
||||
int qlcnic_config_ipaddr(struct qlcnic_adapter *adapter, u32 ip, int cmd)
|
||||
int qlcnic_config_ipaddr(struct qlcnic_adapter *adapter, __be32 ip, int cmd)
|
||||
{
|
||||
struct qlcnic_nic_req req;
|
||||
struct qlcnic_ipaddr *ipa;
|
||||
u64 word;
|
||||
int rv;
|
||||
|
||||
@ -689,7 +690,8 @@ int qlcnic_config_ipaddr(struct qlcnic_adapter *adapter, u32 ip, int cmd)
|
||||
req.req_hdr = cpu_to_le64(word);
|
||||
|
||||
req.words[0] = cpu_to_le64(cmd);
|
||||
req.words[1] = cpu_to_le64(ip);
|
||||
ipa = (struct qlcnic_ipaddr *)&req.words[1];
|
||||
ipa->ipv4 = ip;
|
||||
|
||||
rv = qlcnic_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);
|
||||
if (rv != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user