net: core: fix module type in sock_diag_bind

2018-01-08 Thread Andrii Vladyka
Use AF_INET6 instead of AF_INET in IPv6-related code path\

Signed-off-by: Andrii Vladyka 
---
 net/core/sock_diag.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
index 217f4e3..146b50e 100644
--- a/net/core/sock_diag.c
+++ b/net/core/sock_diag.c
@@ -288,7 +288,7 @@ static int sock_diag_bind(struct net *net, int group)
case SKNLGRP_INET6_UDP_DESTROY:
if (!sock_diag_handlers[AF_INET6])
request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK,
-  NETLINK_SOCK_DIAG, AF_INET);
+  NETLINK_SOCK_DIAG, AF_INET6);
break;
}
return 0;
-- 
2.7.4



[PATCH] net: core: fix module type in sock_diag_bind

2018-01-08 Thread Andrii Vladyka
Use AF_INET6 instead of AF_INET in IPv6-related code path

Signed-off-by: Andrii Vladyka 
---
 net/core/sock_diag.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
index 217f4e3..146b50e 100644
--- a/net/core/sock_diag.c
+++ b/net/core/sock_diag.c
@@ -288,7 +288,7 @@ static int sock_diag_bind(struct net *net, int group)
case SKNLGRP_INET6_UDP_DESTROY:
if (!sock_diag_handlers[AF_INET6])
request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK,
-  NETLINK_SOCK_DIAG, AF_INET);
+  NETLINK_SOCK_DIAG, AF_INET6);
break;
}
return 0;
-- 
2.7.4



[PATCH] staging: rtl8188eu: removed blank lines coding style problem

2017-03-14 Thread Andrii Vladyka
Fix 'multiple blank lines' coding style problem reported by checkpatch.pl.

Signed-off-by: Andrii Vladyka diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 255c30e..3fa6af2 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -30,7 +30,6 @@ void init_mlme_ap_info(struct adapter *padapter)
 	struct sta_priv *pstapriv = &padapter->stapriv;
 	struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
 
-
 	spin_lock_init(&pmlmepriv->bcn_update_lock);
 
 	/* for ACL */


[PATCH] net: dccp: Add handling of IPV6_PKTOPTIONS to dccp_v6_do_rcv()

2017-08-29 Thread Andrii Vladyka
Add handling of IPV6_PKTOPTIONS to dccp_v6_do_rcv() in net/dccp/ipv6.c, similar
to the handling in net/ipv6/tcp_ipv6.c

Signed-off-by: Andrii Vladyka diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index 1b58eac..fdff10b 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -16,6 +16,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -30,6 +31,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "dccp.h"
 #include "ipv6.h"
@@ -597,19 +599,13 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
 	   --ANK (980728)
 	 */
 	if (np->rxopt.all)
-	/*
-	 * FIXME: Add handling of IPV6_PKTOPTIONS skb. See the comments below
-	 *(wrt ipv6_pktopions) and net/ipv6/tcp_ipv6.c for an example.
-	 */
 		opt_skb = skb_clone(skb, GFP_ATOMIC);
 
 	if (sk->sk_state == DCCP_OPEN) { /* Fast path */
 		if (dccp_rcv_established(sk, skb, dccp_hdr(skb), skb->len))
 			goto reset;
-		if (opt_skb) {
-			/* XXX This is where we would goto ipv6_pktoptions. */
-			__kfree_skb(opt_skb);
-		}
+		if (opt_skb)
+			goto ipv6_pktoptions;
 		return 0;
 	}
 
@@ -640,10 +636,8 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
 
 	if (dccp_rcv_state_process(sk, skb, dccp_hdr(skb), skb->len))
 		goto reset;
-	if (opt_skb) {
-		/* XXX This is where we would goto ipv6_pktoptions. */
-		__kfree_skb(opt_skb);
-	}
+	if (opt_skb) 
+		goto ipv6_pktoptions;
 	return 0;
 
 reset:
@@ -653,6 +647,36 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
 		__kfree_skb(opt_skb);
 	kfree_skb(skb);
 	return 0;
+	
+/*
+ * Handling IPV6_PKTOPTIONS skb the similar
+ * way it's done for net/ipv6/tcp_ipv6.c
+ */
+ipv6_pktoptions:
+	if (!((1 << sk->sk_state) & (DCCPF_CLOSED | DCCPF_LISTEN))) {
+		if (np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo)
+			np->mcast_oif = inet6_iif(opt_skb);
+		if (np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim)
+			np->mcast_hops = ipv6_hdr(opt_skb)->hop_limit;
+		if (np->rxopt.bits.rxflow || np->rxopt.bits.rxtclass)
+			np->rcv_flowinfo = ip6_flowinfo(ipv6_hdr(opt_skb));
+		if (np->repflow)
+			np->flow_label = ip6_flowlabel(ipv6_hdr(opt_skb));
+		if (ipv6_opt_accepted(sk, opt_skb,
+  &DCCP_SKB_CB(opt_skb)->header.h6)) {
+			skb_set_owner_r(opt_skb, sk);
+			memmove(IP6CB(opt_skb),
+&DCCP_SKB_CB(opt_skb)->header.h6,
+			sizeof(struct inet6_skb_parm));
+			opt_skb = xchg(&np->pktoptions, opt_skb);
+		} else {
+			__kfree_skb(opt_skb);
+			opt_skb = xchg(&np->pktoptions, NULL);
+		}
+	}
+
+	kfree_skb(opt_skb);
+	return 0;
 }
 
 static int dccp_v6_rcv(struct sk_buff *skb)


[PATCH] staging: irda: annotate irlan_seq_start() and irlan_seq_stop() for sparse

2017-11-28 Thread Andrii Vladyka
Annotate rcu_read_lock in irlan_seq_start() and rcu_read_unlock in 
irlan_seq_stop() for sparse


Signed-off-by: Andrii Vladyka <https://e.mail.ru/compose?To=tu...@mail.ru>>


diff --git a/drivers/staging/irda/net/irlan/irlan_common.c 
b/drivers/staging/irda/net/irlan/irlan_common.c
index fdcd714..832df11 100644
--- a/drivers/staging/irda/net/irlan/irlan_common.c
+++ b/drivers/staging/irda/net/irlan/irlan_common.c
@@ -1090,6 +1090,7 @@ int irlan_extract_param(__u8 *buf, char *name, char 
*value, __u16 *len)
  * or NULL if end of file
  */
 static void *irlan_seq_start(struct seq_file *seq, loff_t *pos)
+   __acquires(RCU)
 {
rcu_read_lock();
return seq_list_start_head(&irlans, *pos);
@@ -1103,6 +1104,7 @@ static void *irlan_seq_next(struct seq_file *seq, void 
*v, loff_t *pos)
 
 /* End of reading /proc file */
 static void irlan_seq_stop(struct seq_file *seq, void *v)
+   __releases(RCU)
 {
rcu_read_unlock();
 }


[PATCH] staging: lustre: Fix sparse, using plain integer as NULL pointer in lov_object_fiemap()

2017-12-04 Thread Andrii Vladyka
Change 0 to NULL in lov_object_fiemap() in order to fix warning produced 
by sparse


Signed-off-by: Andrii Vladyka 
Signed-off-by: Andreas Dilger 
---

diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c 
b/drivers/staging/lustre/lustre/lov/lov_object.c
index 105b707..897cf2c 100644
--- a/drivers/staging/lustre/lustre/lov/lov_object.c
+++ b/drivers/staging/lustre/lustre/lov/lov_object.c
@@ -1335,7 +1335,7 @@ static int lov_object_fiemap(const struct lu_env *env, 
struct cl_object *obj,
int rc = 0;
int cur_stripe;
int stripe_count;
-   struct fiemap_state fs = { 0 };
+   struct fiemap_state fs = { NULL };
 
 	lsm = lov_lsm_addref(cl2lov(obj));

if (!lsm)



[PATCH] staging: lustre: Fix sparse, using plain integer as NULL pointer in lov_object_fiemap()

2017-11-30 Thread Andrii Vladyka
Change 0 to NULL in lov_object_fiemap() in order to fix warning produced 
by sparse


Signed-off-by: Andrii Vladyka 


diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c 
b/drivers/staging/lustre/lustre/lov/lov_object.c
index 105b707..897cf2c 100644
--- a/drivers/staging/lustre/lustre/lov/lov_object.c
+++ b/drivers/staging/lustre/lustre/lov/lov_object.c
@@ -1335,7 +1335,7 @@ static int lov_object_fiemap(const struct lu_env *env, 
struct cl_object *obj,
int rc = 0;
int cur_stripe;
int stripe_count;
-   struct fiemap_state fs = { 0 };
+   struct fiemap_state fs = { NULL };
 
lsm = lov_lsm_addref(cl2lov(obj));
if (!lsm)