IB/usnic: Fix smatch endianness error
Error reported at http://marc.info/?l=linux-rdma&m=138995755801039&w=2 Fix short to int cast for big endian systems. Signed-off-by: Upinder Malhi <umalhi@cisco.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Родитель
38dbfb59d1
Коммит
f809309a25
|
@ -629,6 +629,7 @@ static int qp_grp_id_from_flow(struct usnic_ib_qp_grp_flow *qp_flow,
|
|||
{
|
||||
enum usnic_transport_type trans_type = qp_flow->trans_type;
|
||||
int err;
|
||||
uint16_t port_num = 0;
|
||||
|
||||
switch (trans_type) {
|
||||
case USNIC_TRANSPORT_ROCE_CUSTOM:
|
||||
|
@ -637,9 +638,15 @@ static int qp_grp_id_from_flow(struct usnic_ib_qp_grp_flow *qp_flow,
|
|||
case USNIC_TRANSPORT_IPV4_UDP:
|
||||
err = usnic_transport_sock_get_addr(qp_flow->udp.sock,
|
||||
NULL, NULL,
|
||||
(uint16_t *) id);
|
||||
&port_num);
|
||||
if (err)
|
||||
return err;
|
||||
/*
|
||||
* Copy port_num to stack first and then to *id,
|
||||
* so that the short to int cast works for little
|
||||
* and big endian systems.
|
||||
*/
|
||||
*id = port_num;
|
||||
break;
|
||||
default:
|
||||
usnic_err("Unsupported transport %u\n", trans_type);
|
||||
|
|
Загрузка…
Ссылка в новой задаче