From 259af48e5a0c7989be4aa7c57fe95c1a1a40967e Mon Sep 17 00:00:00 2001
From: Aastha Mehta <aasthakm@mpi-sws.org>
Date: Fri, 12 May 2017 14:37:07 +0200
Subject: [PATCH] prints leading to udp functions

---
 net/ipv4/ip_input.c | 21 +++++++++++++++++++++
 net/ipv4/udp.c      | 24 ++++++++++++++++++++++++
 2 files changed, 45 insertions(+)

diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 34940f901..4e29050aa 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -219,6 +219,13 @@ static int ip_local_deliver_finish(struct net *net, struct sock *sk, struct sk_b
 	resubmit:
 		raw = raw_local_deliver(skb, protocol);
 
+#ifdef CONFIG_XEN_SME
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS, raw: %d", __func__, __LINE__,
+			__builtin_return_address(0), raw);
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
+
 		ipprot = rcu_dereference(inet_protos[protocol]);
 		if (ipprot) {
 			int ret;
@@ -230,7 +237,21 @@ static int ip_local_deliver_finish(struct net *net, struct sock *sk, struct sk_b
 				}
 				nf_reset(skb);
 			}
+#ifdef CONFIG_XEN_SME
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS", __func__, __LINE__,
+			__builtin_return_address(0));
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
+
 			ret = ipprot->handler(skb);
+#ifdef CONFIG_XEN_SME
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS", __func__, __LINE__,
+			__builtin_return_address(0));
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
+
 			if (ret < 0) {
 				protocol = -ret;
 				goto resubmit;
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 5bab6c3f7..f5ee1ace7 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -79,6 +79,10 @@
 
 #define pr_fmt(fmt) "UDP: " fmt
 
+#ifdef CONFIG_XEN_SME
+#include "../../drivers/net/ethernet/broadcom/bnx2x/sme/xen_sme_hooks.h"
+#define DBG_BUF_SIZE 256
+#endif
 #include <asm/uaccess.h>
 #include <asm/ioctls.h>
 #include <linux/bootmem.h>
@@ -1505,6 +1509,13 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
 	int rc;
 	int is_udplite = IS_UDPLITE(sk);
 
+#ifdef CONFIG_XEN_SME
+	char dbg_buff[DBG_BUF_SIZE];
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS", __func__, __LINE__,
+			__builtin_return_address(0));
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
 	/*
 	 *	Charge it to the socket, dropping if the queue is full.
 	 */
@@ -1597,6 +1608,12 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
 
 	rc = 0;
 
+#ifdef CONFIG_XEN_SME
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS, sock owned: %d", __func__, __LINE__,
+			__builtin_return_address(0), (sk ? sk->sk_lock.owned : -2));
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
 	ipv4_pktinfo_prepare(sk, skb);
 	bh_lock_sock(sk);
 	if (!sock_owned_by_user(sk))
@@ -1739,6 +1756,13 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
 	__be32 saddr, daddr;
 	struct net *net = dev_net(skb->dev);
 
+#ifdef CONFIG_XEN_SME
+	char dbg_buff[DBG_BUF_SIZE];
+	memset(dbg_buff, 0, DBG_BUF_SIZE);
+	sprintf(dbg_buff, "%s:%d caller: %pS", __func__, __LINE__,
+			__builtin_return_address(0));
+	xsl_print_sk_buff(skb, dbg_buff);
+#endif
 	/*
 	 *  Validate the packet.
 	 */
-- 
GitLab