Skip to content

Commit

Permalink
Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/gi…
Browse files Browse the repository at this point in the history
…t/tnguy/next-queue

Tony Nguyen says:

====================
100GbE Intel Wired LAN Driver Updates 2022-03-16

This series contains updates to gtp and ice driver.

Wojciech fixes smatch reported inconsistent indenting for gtp and ice.

Yang Yingliang fixes a couple of return value checks for GNSS to IS_PTR
instead of null.

Jacob adds support for trace events on tx timestamps.

* '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
  ice: add trace events for tx timestamps
  ice: fix return value check in ice_gnss.c
  ice: Fix inconsistent indenting in ice_switch
  gtp: Fix inconsistent indenting
====================

Link: https://lore.kernel.org/r/20220316204024.3201500-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jakub Kicinski committed Mar 17, 2022
2 parents 21c6864 + 4c12021 commit fad6c1f
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 4 deletions.
4 changes: 2 additions & 2 deletions drivers/net/ethernet/intel/ice/ice_gnss.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ static struct gnss_serial *ice_gnss_struct_init(struct ice_pf *pf)
* writes.
*/
kworker = kthread_create_worker(0, "ice-gnss-%s", dev_name(dev));
if (!kworker) {
if (IS_ERR(kworker)) {
kfree(gnss);
return NULL;
}
Expand Down Expand Up @@ -253,7 +253,7 @@ static struct tty_driver *ice_gnss_create_tty_driver(struct ice_pf *pf)
int err;

tty_driver = tty_alloc_driver(1, TTY_DRIVER_REAL_RAW);
if (!tty_driver) {
if (IS_ERR(tty_driver)) {
dev_err(ice_pf_to_dev(pf), "Failed to allocate memory for GNSS TTY\n");
return NULL;
}
Expand Down
8 changes: 8 additions & 0 deletions drivers/net/ethernet/intel/ice/ice_ptp.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "ice.h"
#include "ice_lib.h"
#include "ice_trace.h"

#define E810_OUT_PROP_DELAY_NS 1

Expand Down Expand Up @@ -2063,11 +2064,15 @@ static void ice_ptp_tx_tstamp_work(struct kthread_work *work)
struct sk_buff *skb;
int err;

ice_trace(tx_tstamp_fw_req, tx->tstamps[idx].skb, idx);

err = ice_read_phy_tstamp(hw, tx->quad, phy_idx,
&raw_tstamp);
if (err)
continue;

ice_trace(tx_tstamp_fw_done, tx->tstamps[idx].skb, idx);

/* Check if the timestamp is invalid or stale */
if (!(raw_tstamp & ICE_PTP_TS_VALID) ||
raw_tstamp == tx->tstamps[idx].cached_tstamp)
Expand All @@ -2093,6 +2098,8 @@ static void ice_ptp_tx_tstamp_work(struct kthread_work *work)
tstamp = ice_ptp_extend_40b_ts(pf, raw_tstamp);
shhwtstamps.hwtstamp = ns_to_ktime(tstamp);

ice_trace(tx_tstamp_complete, skb, idx);

skb_tstamp_tx(skb, &shhwtstamps);
dev_kfree_skb_any(skb);
}
Expand Down Expand Up @@ -2131,6 +2138,7 @@ s8 ice_ptp_request_ts(struct ice_ptp_tx *tx, struct sk_buff *skb)
tx->tstamps[idx].start = jiffies;
tx->tstamps[idx].skb = skb_get(skb);
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
ice_trace(tx_tstamp_request, skb, idx);
}

spin_unlock(&tx->lock);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/intel/ice/ice_switch.c
Original file line number Diff line number Diff line change
Expand Up @@ -5565,7 +5565,7 @@ ice_find_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
*offsets = dummy_ipv6_gtpu_ipv4_udp_packet_offsets;
} else {
*pkt = dummy_ipv6_gtpu_ipv4_tcp_packet;
*pkt_len = sizeof(dummy_ipv6_gtpu_ipv4_tcp_packet);
*pkt_len = sizeof(dummy_ipv6_gtpu_ipv4_tcp_packet);
*offsets = dummy_ipv6_gtpu_ipv4_tcp_packet_offsets;
}
}
Expand Down
24 changes: 24 additions & 0 deletions drivers/net/ethernet/intel/ice/ice_trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,30 @@ DEFINE_EVENT(ice_xmit_template, name, \
DEFINE_XMIT_TEMPLATE_OP_EVENT(ice_xmit_frame_ring);
DEFINE_XMIT_TEMPLATE_OP_EVENT(ice_xmit_frame_ring_drop);

DECLARE_EVENT_CLASS(ice_tx_tstamp_template,
TP_PROTO(struct sk_buff *skb, int idx),

TP_ARGS(skb, idx),

TP_STRUCT__entry(__field(void *, skb)
__field(int, idx)),

TP_fast_assign(__entry->skb = skb;
__entry->idx = idx;),

TP_printk("skb %pK idx %d",
__entry->skb, __entry->idx)
);
#define DEFINE_TX_TSTAMP_OP_EVENT(name) \
DEFINE_EVENT(ice_tx_tstamp_template, name, \
TP_PROTO(struct sk_buff *skb, int idx), \
TP_ARGS(skb, idx))

DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_request);
DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_req);
DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_done);
DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_complete);

/* End tracepoints */

#endif /* _ICE_TRACE_H_ */
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/gtp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1793,7 +1793,7 @@ static int gtp_genl_send_echo_req(struct sk_buff *skb, struct genl_info *info)
if (IS_ERR(rt)) {
netdev_dbg(gtp->dev, "no route for echo request to %pI4\n",
&dst_ip);
kfree_skb(skb_to_send);
kfree_skb(skb_to_send);
return -ENODEV;
}

Expand Down

0 comments on commit fad6c1f

Please sign in to comment.