OSDN Git Service

cxgb4/ptp: pass the sign of offset delta in FW CMD
authorRaju Rangoju <rajur@chelsio.com>
Tue, 24 Mar 2020 11:40:00 +0000 (17:10 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 23:23:55 +0000 (16:23 -0700)
cxgb4_ptp_fineadjtime() doesn't pass the signedness of offset delta
in FW_PTP_CMD. Fix it by passing correct sign.

Signed-off-by: Raju Rangoju <rajur@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c

index 58a039c..af1f40c 100644 (file)
@@ -246,6 +246,9 @@ static int  cxgb4_ptp_fineadjtime(struct adapter *adapter, s64 delta)
                             FW_PTP_CMD_PORTID_V(0));
        c.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(sizeof(c) / 16));
        c.u.ts.sc = FW_PTP_SC_ADJ_FTIME;
+       c.u.ts.sign = (delta < 0) ? 1 : 0;
+       if (delta < 0)
+               delta = -delta;
        c.u.ts.tm = cpu_to_be64(delta);
 
        err = t4_wr_mbox(adapter, adapter->mbox, &c, sizeof(c), NULL);