Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH net-next] net/ipv4: Add extack message that dev is required for ONLINK
From: David Miller @ 2018-09-01  6:04 UTC (permalink / raw)
  To: dsahern; +Cc: netdev, dsahern
In-Reply-To: <20180829235327.18307-1-dsahern@kernel.org>

From: dsahern@kernel.org
Date: Wed, 29 Aug 2018 16:53:27 -0700

> From: David Ahern <dsahern@gmail.com>
> 
> Make IPv4 consistent with IPv6 and return an extack message that the
> ONLINK flag requires a nexthop device.
> 
> Signed-off-by: David Ahern <dsahern@gmail.com>

Applied.

^ permalink raw reply

* Re: [PATCH net-next] tcp: change IPv6 flow-label upon receiving spurious retransmission
From: David Miller @ 2018-09-01  6:03 UTC (permalink / raw)
  To: ycheng; +Cc: edumazet, netdev, ncardwell
In-Reply-To: <20180829215356.235336-1-ycheng@google.com>

From: Yuchung Cheng <ycheng@google.com>
Date: Wed, 29 Aug 2018 14:53:56 -0700

> Currently a Linux IPv6 TCP sender will change the flow label upon
> timeouts to potentially steer away from a data path that has gone
> bad. However this does not help if the problem is on the ACK path
> and the data path is healthy. In this case the receiver is likely
> to receive repeated spurious retransmission because the sender
> couldn't get the ACKs in time and has recurring timeouts.
> 
> This patch adds another feature to mitigate this problem. It
> leverages the DSACK states in the receiver to change the flow
> label of the ACKs to speculatively re-route the ACK packets.
> In order to allow triggering on the second consecutive spurious
> RTO, the receiver changes the flow label upon sending a second
> consecutive DSACK for a sequence number below RCV.NXT.
> 
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>
> Signed-off-by: Eric Dumazet <edumazet@google.com>

Applied.

^ permalink raw reply

* Re: [PATCH net] nfp: wait for posted reconfigs when disabling the device
From: David Miller @ 2018-09-01  6:03 UTC (permalink / raw)
  To: jakub.kicinski; +Cc: netdev, oss-drivers
In-Reply-To: <20180829194608.25454-1-jakub.kicinski@netronome.com>

From: Jakub Kicinski <jakub.kicinski@netronome.com>
Date: Wed, 29 Aug 2018 12:46:08 -0700

> To avoid leaking a running timer we need to wait for the
> posted reconfigs after netdev is unregistered.  In common
> case the process of deinitializing the device will perform
> synchronous reconfigs which wait for posted requests, but
> especially with VXLAN ports being actively added and removed
> there can be a race condition leaving a timer running after
> adapter structure is freed leading to a crash.
> 
> Add an explicit flush after deregistering and for a good
> measure a warning to check if timer is running just before
> structures are freed.
> 
> Fixes: 3d780b926a12 ("nfp: add async reconfiguration mechanism")
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>

Applied and queued up for -stable.

^ permalink raw reply

* Re: [PATCH net] Revert "packet: switch kvzalloc to allocate memory"
From: David Miller @ 2018-09-01  6:01 UTC (permalink / raw)
  To: edumazet; +Cc: netdev, eric.dumazet, zhangyu31, lirongqing
In-Reply-To: <20180829185012.143366-1-edumazet@google.com>

From: Eric Dumazet <edumazet@google.com>
Date: Wed, 29 Aug 2018 11:50:12 -0700

> This reverts commit 71e41286203c017d24f041a7cd71abea7ca7b1e0.
> 
> mmap()/munmap() can not be backed by kmalloced pages :
> 
> We fault in :
> 
>     VM_BUG_ON_PAGE(PageSlab(page), page);
> 
>     unmap_single_vma+0x8a/0x110
>     unmap_vmas+0x4b/0x90
>     unmap_region+0xc9/0x140
>     do_munmap+0x274/0x360
>     vm_munmap+0x81/0xc0
>     SyS_munmap+0x2b/0x40
>     do_syscall_64+0x13e/0x1c0
>     entry_SYSCALL_64_after_hwframe+0x42/0xb7
> 
> Fixes: 71e41286203c ("packet: switch kvzalloc to allocate memory")
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Reported-by: John Sperbeck <jsperbeck@google.com>
> Bisected-by: John Sperbeck <jsperbeck@google.com>

Oops, applied, thanks Eric.

^ permalink raw reply

* Re: [Patch net-nnext] net_sched: add missing tcf_lock for act_connmark
From: David Miller @ 2018-09-01  5:59 UTC (permalink / raw)
  To: xiyou.wangcong; +Cc: netdev, vladbu
In-Reply-To: <20180829171536.23162-2-xiyou.wangcong@gmail.com>

From: Cong Wang <xiyou.wangcong@gmail.com>
Date: Wed, 29 Aug 2018 10:15:36 -0700

> According to the new locking rule, we have to take tcf_lock
> for both ->init() and ->dump(), as RTNL will be removed.
> However, it is missing for act_connmark.
> 
> Cc: Vlad Buslov <vladbu@mellanox.com>
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>

Applied.

^ permalink raw reply

* Re: [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER
From: David Miller @ 2018-09-01  5:55 UTC (permalink / raw)
  To: david.gounaris; +Cc: qiang.zhao, netdev, linuxppc-dev, robh+dt
In-Reply-To: <20180829131328.27901-4-david.gounaris@infinera.com>

From: David Gounaris <david.gounaris@infinera.com>
Date: Wed, 29 Aug 2018 15:13:25 +0200

> @@ -513,6 +517,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit)
>  			break;
>  
>  		case ARPHRD_PPP:
> +		case ARPHRD_ETHER:
> +			

Please don't add such an extraneous empty line.

Thanks.

^ permalink raw reply

* Re: [Patch net-nnext] Revert "net: sched: act: add extack for lookup callback"
From: David Miller @ 2018-09-01  5:50 UTC (permalink / raw)
  To: xiyou.wangcong; +Cc: netdev, aring
In-Reply-To: <20180829171536.23162-1-xiyou.wangcong@gmail.com>

From: Cong Wang <xiyou.wangcong@gmail.com>
Date: Wed, 29 Aug 2018 10:15:35 -0700

> This reverts commit 331a9295de23 ("net: sched: act: add extack for lookup callback").
> 
> This extack is never used after 6 months... In fact, it can be just
> set in the caller, right after ->lookup().
> 
> Cc: Alexander Aring <aring@mojatatu.com>
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>

Applied.

^ permalink raw reply

* [PATCH] net: scm: Fix a possible sleep-in-atomic-context bug in scm_fp_copy()
From: Jia-Ju Bai @ 2018-09-01 10:00 UTC (permalink / raw)
  To: davem, ktkhai, viro, adobriyan, dvlasenk, xiyou.wangcong
  Cc: netdev, linux-kernel, Jia-Ju Bai

The kernel module may sleep with holding a spinlock.

The function call paths (from bottom to top) in Linux-4.16 are:

[FUNC] kmalloc(GFP_KERNEL)
net/core/scm.c, 85: kmalloc in scm_fp_copy
net/core/scm.c, 161: scm_fp_copy in __scm_send
./include/net/scm.h, 88: __scm_send in scm_send
net/unix/af_unix.c, 1600: scm_send in maybe_init_creds
net/unix/af_unix.c, 1983: maybe_init_creds in unix_stream_sendpage
net/unix/af_unix.c, 1973: spin_lock in unix_stream_sendpage

To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC.

This bug is found by my static analysis tool DSAC.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
---
 net/core/scm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/scm.c b/net/core/scm.c
index b1ff8a441748..49548f81c45b 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -82,7 +82,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)
 
 	if (!fpl)
 	{
-		fpl = kmalloc(sizeof(struct scm_fp_list), GFP_KERNEL);
+		fpl = kmalloc(sizeof(struct scm_fp_list), GFP_ATOMIC);
 		if (!fpl)
 			return -ENOMEM;
 		*fplp = fpl;
-- 
2.17.0

^ permalink raw reply related

* [PATCH] net: nfc: nci: Fix a sleep-in-atomic-context bug in nci_uart_default_recv_buf()
From: Jia-Ju Bai @ 2018-09-01  9:51 UTC (permalink / raw)
  To: sameo, davem, viro; +Cc: linux-wireless, netdev, linux-kernel, Jia-Ju Bai

The kernel module may sleep with holding a spinlock.

The function call paths (from bottom to top) in Linux-4.16 are:

[FUNC] nci_skb_alloc(GFP_KERNEL)
net/nfc/nci/uart.c, 349: 
	nci_skb_alloc in nci_uart_default_recv_buf
net/nfc/nci/uart.c, 255: 
	[FUNC_PTR]nci_uart_default_recv_buf in nci_uart_tty_receive
net/nfc/nci/uart.c, 254: 
	spin_lock in nci_uart_tty_receive

Note that [FUNC_PTR] means a function pointer call is used.

To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC.

This bug is found by my static analysis tool DSAC.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
---
 net/nfc/nci/uart.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/nfc/nci/uart.c b/net/nfc/nci/uart.c
index a66f102c6c01..040576dd73bb 100644
--- a/net/nfc/nci/uart.c
+++ b/net/nfc/nci/uart.c
@@ -348,7 +348,7 @@ static int nci_uart_default_recv_buf(struct nci_uart *nu, const u8 *data,
 			nu->rx_packet_len = -1;
 			nu->rx_skb = nci_skb_alloc(nu->ndev,
 						   NCI_MAX_PACKET_SIZE,
-						   GFP_KERNEL);
+						   GFP_ATOMIC);
 			if (!nu->rx_skb)
 				return -ENOMEM;
 		}
-- 
2.17.0

^ permalink raw reply related

* [PATCH net-next] bnxt_en: Properly get address type of encapsulation IP headers
From: YueHaibing @ 2018-09-01  9:25 UTC (permalink / raw)
  To: davem, michael.chan; +Cc: linux-kernel, netdev, YueHaibing

gcc '-Wunused-but-set-variable' warning:

drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c: In function 'bnxt_tc_parse_flow':
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c:186:6: warning:
 variable 'addr_type' set but not used [-Wunused-but-set-variable]

As done elsewhere in TC/flower offload code, the address type of
the encapsulation IP headers should be realized accroding to the
addr_type field of the encapsulation control dissector key.

Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan encap/decap offload")
Fixes: 2ae7408fedfe ("bnxt_en: bnxt: add TC flower filter offload support")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
index 092c817..5c625e5 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
@@ -242,7 +242,7 @@ static int bnxt_tc_parse_flow(struct bnxt *bp,
 		flow->l2_key.num_vlans = 1;
 	}
 
-	if (dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) {
+	if (addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) {
 		struct flow_dissector_key_ipv4_addrs *key =
 			GET_KEY(tc_flow_cmd, FLOW_DISSECTOR_KEY_IPV4_ADDRS);
 		struct flow_dissector_key_ipv4_addrs *mask =
@@ -253,8 +253,7 @@ static int bnxt_tc_parse_flow(struct bnxt *bp,
 		flow->l3_mask.ipv4.daddr.s_addr = mask->dst;
 		flow->l3_key.ipv4.saddr.s_addr = key->src;
 		flow->l3_mask.ipv4.saddr.s_addr = mask->src;
-	} else if (dissector_uses_key(dissector,
-				      FLOW_DISSECTOR_KEY_IPV6_ADDRS)) {
+	} else if (addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS) {
 		struct flow_dissector_key_ipv6_addrs *key =
 			GET_KEY(tc_flow_cmd, FLOW_DISSECTOR_KEY_IPV6_ADDRS);
 		struct flow_dissector_key_ipv6_addrs *mask =
@@ -300,7 +299,7 @@ static int bnxt_tc_parse_flow(struct bnxt *bp,
 		addr_type = key->addr_type;
 	}
 
-	if (dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS)) {
+	if (addr_type == FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS) {
 		struct flow_dissector_key_ipv4_addrs *key =
 			GET_KEY(tc_flow_cmd, FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS);
 		struct flow_dissector_key_ipv4_addrs *mask =
@@ -312,8 +311,7 @@ static int bnxt_tc_parse_flow(struct bnxt *bp,
 		flow->tun_mask.u.ipv4.dst = mask->dst;
 		flow->tun_key.u.ipv4.src = key->src;
 		flow->tun_mask.u.ipv4.src = mask->src;
-	} else if (dissector_uses_key(dissector,
-				      FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS)) {
+	} else if (addr_type == FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS) {
 		return -EOPNOTSUPP;
 	}
 
-- 
2.7.0

^ permalink raw reply related

* [PATCH v2] mt76: Enable NL80211_EXT_FEATURE_CQM_RSSI_LIST
From: Kristian Evensen @ 2018-09-01  8:38 UTC (permalink / raw)
  To: linux-wireless, kvalo, netdev, linux-kernel; +Cc: Kristian Evensen

Enable the use of CQM_RSSI_LIST with mt76-devices. The change has been
tested with the mt7602, mt7603 and mt7621 PCI wifi-cards. I passed a
list of RSSI thresholds to the driver, and when disconnecting/connecting
the antenna(s) I got an event each time the RSSI went above/below a
threshold.

While I have not been able to test the change with any of the mt76
USB-devices (no access to a device), the RX RSSI management code is
shared between the two device types. Thus, CQM should also work with the
mt76 USB-devices.

v1->v2:
* Updated commit message. Thanks Kalle Valo, Arend van Spriel,
Lorenzo Bianconi and Andrew Zaborowski.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
---
 drivers/net/wireless/mediatek/mt76/mac80211.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
index 029d54bce9e8..3eb328ff8c0d 100644
--- a/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -305,6 +305,8 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
 
 	wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR;
 
+	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
+
 	wiphy->available_antennas_tx = dev->antenna_mask;
 	wiphy->available_antennas_rx = dev->antenna_mask;
 
-- 
2.14.1

^ permalink raw reply related

* Again the photos things
From: Jimmy Wilson @ 2018-08-31 11:58 UTC (permalink / raw)
  To: netdev

Hi,

Have you received my email from last week?

I would like to speak with the person who manage your photos for your
company?

We are here to provide you all kinds of imaging editing.

What we can provide you:
Cutting out for photos
Clipping path for photos
Masking for photos
Retouching for your photos
Retouching for the Beauty Model and Portraits.

We have 20 staffs in house and daily basis 1000 images can be processed.

We give testing for your photos.

Thanks,
Jimmy Wilson

^ permalink raw reply

* [PATCH v4] rsi: remove set but not used variables 'header_size' and 'tx_params'
From: YueHaibing @ 2018-09-01  7:48 UTC (permalink / raw)
  To: Kalle Valo, Pavani Muthyala, Kees Cook, Colin Ian King,
	Amitkumar Karwar, Prameela Rani Garnepudi, Siva Rebbagondla,
	Sushant Kumar Mishra
  Cc: YueHaibing, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1535786170-169698-1-git-send-email-yuehaibing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>

Fixes gcc '-Wunused-but-set-variable' warning:

drivers/net/wireless/rsi/rsi_91x_hal.c: In function 'rsi_send_data_pkt':
drivers/net/wireless/rsi/rsi_91x_hal.c:288:5: warning:
 variable 'header_size' set but not used [-Wunused-but-set-variable]

'tx_params' only used for 'header_size' dereferenced,so also
can be removed.

Signed-off-by: YueHaibing <yuehaibing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
---
v4:add missing changlog,also wipe a messy code in commit log
v3:fix patch title as Siva Rebbagondla suggested
v2:remove unused 'tx_params'
---
 drivers/net/wireless/rsi/rsi_91x_hal.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/net/wireless/rsi/rsi_91x_hal.c b/drivers/net/wireless/rsi/rsi_91x_hal.c
index 01edf96..182b066 100644
--- a/drivers/net/wireless/rsi/rsi_91x_hal.c
+++ b/drivers/net/wireless/rsi/rsi_91x_hal.c
@@ -282,10 +282,8 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
 	struct rsi_hw *adapter = common->priv;
 	struct ieee80211_vif *vif;
 	struct ieee80211_tx_info *info;
-	struct skb_info *tx_params;
 	struct ieee80211_bss_conf *bss;
 	int status = -EINVAL;
-	u8 header_size;
 
 	if (!skb)
 		return 0;
@@ -297,8 +295,6 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
 		goto err;
 	vif = info->control.vif;
 	bss = &vif->bss_conf;
-	tx_params = (struct skb_info *)info->driver_data;
-	header_size = tx_params->internal_hdr_size;
 
 	if (((vif->type == NL80211_IFTYPE_STATION) ||
 	     (vif->type == NL80211_IFTYPE_P2P_CLIENT)) &&

^ permalink raw reply related

* Re: [PATCH v3] rsi: remove set but not used variables 'header_size' and 'tx_params'
From: YueHaibing @ 2018-09-01  7:21 UTC (permalink / raw)
  To: Kalle Valo, Pavani Muthyala, Kees Cook, Colin Ian King,
	Amitkumar Karwar, Prameela Rani Garnepudi, Siva Rebbagondla,
	Sushant Kumar Mishra
  Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1535786170-169698-1-git-send-email-yuehaibing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>

On 2018/9/1 15:16, YueHaibing wrote:
> Fixes gcc '-Wunused-but-set-variable' warning:
> 
> drivers/net/wireless/rsi/rsi_91x_hal.c: In function 'rsi_send_data_pkt':
> drivers/net/wireless/rsi/rsi_91x_hal.c:288:5: warning:
>  variable 'header_size' set but not used [-Wunused-but-set-variable]
> 
> 'tx_params' only used for 'header_size' dereferencedï¼Oso also

sorry..., there is some messy code, Also missing changelog, I'll fix.

> can be removed.
> 
> Signed-off-by: YueHaibing <yuehaibing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
> ---
>  drivers/net/wireless/rsi/rsi_91x_hal.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/drivers/net/wireless/rsi/rsi_91x_hal.c b/drivers/net/wireless/rsi/rsi_91x_hal.c
> index 01edf96..182b066 100644
> --- a/drivers/net/wireless/rsi/rsi_91x_hal.c
> +++ b/drivers/net/wireless/rsi/rsi_91x_hal.c
> @@ -282,10 +282,8 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
>  	struct rsi_hw *adapter = common->priv;
>  	struct ieee80211_vif *vif;
>  	struct ieee80211_tx_info *info;
> -	struct skb_info *tx_params;
>  	struct ieee80211_bss_conf *bss;
>  	int status = -EINVAL;
> -	u8 header_size;
>  
>  	if (!skb)
>  		return 0;
> @@ -297,8 +295,6 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
>  		goto err;
>  	vif = info->control.vif;
>  	bss = &vif->bss_conf;
> -	tx_params = (struct skb_info *)info->driver_data;
> -	header_size = tx_params->internal_hdr_size;
>  
>  	if (((vif->type == NL80211_IFTYPE_STATION) ||
>  	     (vif->type == NL80211_IFTYPE_P2P_CLIENT)) &&
> 
> 
> .
> 

^ permalink raw reply

* [PATCH net-next] failover: Add missing check to validate 'slave_dev' in net_failover_slave_unregister
From: YueHaibing @ 2018-09-01  3:06 UTC (permalink / raw)
  To: David S. Miller, Sridhar Samudrala, Stephen Hemminger,
	Dan Carpenter, Alexander Duyck, Jeff Kirsher, Liran Alon,
	Joao Martins
  Cc: YueHaibing, netdev, kernel-janitors
In-Reply-To: <1535687218-23169-1-git-send-email-yuehaibing@huawei.com>

Fixes gcc '-Wunused-but-set-variable' warning:

drivers/net/net_failover.c: In function 'net_failover_slave_unregister':
drivers/net/net_failover.c:598:35: warning:
 variable 'primary_dev' set but not used [-Wunused-but-set-variable]

There should check the validity of 'slave_dev'.

Fixes: cfc80d9a1163 ("net: Introduce net_failover driver")
Suggested-by: Samudrala, Sridhar <sridhar.samudrala@intel.com>
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
 drivers/net/net_failover.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c
index 7ae1856..af1ece8 100644
--- a/drivers/net/net_failover.c
+++ b/drivers/net/net_failover.c
@@ -602,6 +602,9 @@ static int net_failover_slave_unregister(struct net_device *slave_dev,
 	nfo_info = netdev_priv(failover_dev);
 	primary_dev = rtnl_dereference(nfo_info->primary_dev);
 	standby_dev = rtnl_dereference(nfo_info->standby_dev);
+
+	if (slave_dev != primary_dev && slave_dev != standby_dev)
+		return -ENODEV;
 
 	vlan_vids_del_by_dev(slave_dev, failover_dev);
 	dev_uc_unsync(slave_dev, failover_dev);

^ permalink raw reply related

* Re: [PATCH v2] rsi: remove set but not used variable 'header_size'
From: YueHaibing @ 2018-09-01  6:54 UTC (permalink / raw)
  To: Siva Rebbagondla
  Cc: Kalle Valo, davem, linux-kernel, netdev, Amit karwar,
	pavani.muthyala, keescook, Linux Wireless
In-Reply-To: <CANGSkXTDOa-TCz2wbNh7=C9px4_T7besT6jBPzfs70kVoK+PtA@mail.gmail.com>

On 2018/9/1 11:41, Siva Rebbagondla wrote:
> On Fri, Aug 31, 2018 at 4:45 PM YueHaibing <yuehaibing@huawei.com> wrote:
>>
>> Fixes gcc '-Wunused-but-set-variable' warning:
>>
>> drivers/net/wireless/rsi/rsi_91x_hal.c: In function 'rsi_send_data_pkt':
>> drivers/net/wireless/rsi/rsi_91x_hal.c:288:5: warning:
>>  variable 'header_size' set but not used [-Wunused-but-set-variable]
>>
>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>> ---
>> v2: remove unused 'tx_params'
>> ---
>>  drivers/net/wireless/rsi/rsi_91x_hal.c | 4 ----
>>  1 file changed, 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/rsi/rsi_91x_hal.c b/drivers/net/wireless/rsi/rsi_91x_hal.c
>> index 01edf96..182b066 100644
>> --- a/drivers/net/wireless/rsi/rsi_91x_hal.c
>> +++ b/drivers/net/wireless/rsi/rsi_91x_hal.c
>> @@ -282,10 +282,8 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
>>         struct rsi_hw *adapter = common->priv;
>>         struct ieee80211_vif *vif;
>>         struct ieee80211_tx_info *info;
>> -       struct skb_info *tx_params;
>>         struct ieee80211_bss_conf *bss;
>>         int status = -EINVAL;
>> -       u8 header_size;
>>
>>         if (!skb)
>>                 return 0;
>> @@ -297,8 +295,6 @@ int rsi_send_data_pkt(struct rsi_common *common, struct sk_buff *skb)
>>                 goto err;
>>         vif = info->control.vif;
>>         bss = &vif->bss_conf;
>> -       tx_params = (struct skb_info *)info->driver_data;
>> -       header_size = tx_params->internal_hdr_size;
> Yes, These redundant variables shall be removed.
>>
>>         if (((vif->type == NL80211_IFTYPE_STATION) ||
>>              (vif->type == NL80211_IFTYPE_P2P_CLIENT)) &&
>> --
>> 2.7.0
>>
>>
> Also, Patch title also can be changed to "[v2] rsi: remove unused variables"

Ok, will fix in v3.

Thank you.

> 
> Thanks,
> Siva Rebbagondla
> 
> .
> 

^ permalink raw reply

* Re: [PATCH] net/rds: RDS is not Radio Data System
From: David Miller @ 2018-09-01  6:10 UTC (permalink / raw)
  To: pavel
  Cc: trivial, netdev, sowmini.varadhan, santosh.shilimkar,
	ka-cheong.poon, linux-kernel
In-Reply-To: <20180830102336.GA21063@amd>

From: Pavel Machek <pavel@ucw.cz>
Date: Thu, 30 Aug 2018 12:23:37 +0200

> Getting prompt "The RDS Protocol" (RDS) is not too helpful, and it is
> easily confused with Radio Data System (which we may want to support
> in kernel, too).
> 
> Signed-off-by: Pavel Machek <pavel@ucw.cz>
> Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>

Applied.

^ permalink raw reply

* Re: [PATCH v2] hv_netvsc: Fix a deadlock by getting rtnl lock earlier in netvsc_probe()
From: David Miller @ 2018-09-01  6:08 UTC (permalink / raw)
  To: decui
  Cc: kys, haiyangz, sthemmin, netdev, jopoulso, olaf, jasowang,
	linux-kernel, marcelo.cerri, apw, devel, vkuznets
In-Reply-To: <PU1P153MB0169F05DF2A05DC39B4BF360BF080@PU1P153MB0169.APCP153.PROD.OUTLOOK.COM>

From: Dexuan Cui <decui@microsoft.com>
Date: Thu, 30 Aug 2018 05:42:13 +0000

> 
> This patch fixes the race between netvsc_probe() and
> rndis_set_subchannel(), which can cause a deadlock.
> 
> These are the related 3 paths which show the deadlock:
 ...
> Before path #1 finishes, path #2 can start to run, because just before
> the "bus_probe_device(dev);" in device_add() in path #1, there is a line
> "object_uevent(&dev->kobj, KOBJ_ADD);", so systemd-udevd can
> immediately try to load hv_netvsc and hence path #2 can start to run.
> 
> Next, path #2 offloads the subchannal's initialization to a workqueue,
> i.e. path #3, so we can end up in a deadlock situation like this:
> 
> Path #2 gets the device lock, and is trying to get the rtnl lock;
> Path #3 gets the rtnl lock and is waiting for all the subchannel messages
> to be processed;
> Path #1 is trying to get the device lock, but since #2 is not releasing
> the device lock, path #1 has to sleep; since the VMBus messages are
> processed one by one, this means the sub-channel messages can't be
> procedded, so #3 has to sleep with the rtnl lock held, and finally #2
> has to sleep... Now all the 3 paths are sleeping and we hit the deadlock.
> 
> With the patch, we can make sure #2 gets both the device lock and the
> rtnl lock together, gets its job done, and releases the locks, so #1
> and #3 will not be blocked for ever.
> 
> Fixes: 8195b1396ec8 ("hv_netvsc: fix deadlock on hotplug")
> Signed-off-by: Dexuan Cui <decui@microsoft.com>

Applied and queued up for -stable.

^ permalink raw reply

* Re: [PATCH net v2] net: bcmgenet: use MAC link status for fixed phy
From: David Miller @ 2018-09-01  5:59 UTC (permalink / raw)
  To: opendmb; +Cc: f.fainelli, netdev, linux-kernel
In-Reply-To: <1535567269-12534-1-git-send-email-opendmb@gmail.com>

From: Doug Berger <opendmb@gmail.com>
Date: Wed, 29 Aug 2018 11:27:49 -0700

> When using the fixed PHY with GENET (e.g. MOCA) the PHY link
> status can be determined from the internal link status captured
> by the MAC. This allows the PHY state machine to use the correct
> link state with the fixed PHY even if MAC link event interrupts
> are missed when the net device is opened.
> 
> Fixes: 8d88c6ebb34c ("net: bcmgenet: enable MoCA link state change detection")
> Signed-off-by: Doug Berger <opendmb@gmail.com>
> ---
> v2: increased "Fixes" sha1 to 12 digits

This doesn't apply cleanly to the net tree.

^ permalink raw reply

* Re: [PATCH] veth: add software timestamping
From: David Miller @ 2018-09-01  5:57 UTC (permalink / raw)
  To: michael; +Cc: netdev, linux-kernel
In-Reply-To: <20180829152411.19341-1-michael@walle.cc>

From: Michael Walle <michael@walle.cc>
Date: Wed, 29 Aug 2018 17:24:11 +0200

> Provide a software TX timestamp as well as the ethtool query interface
> and report the software timestamp capabilities.
> 
> Tested with "ethtool -T" and two linuxptp instances each bound to a
> tunnel endpoint.
> 
> Signed-off-by: Michael Walle <michael@walle.cc>

Applied to net-next.

^ permalink raw reply

* Re: [PATCH net-next] failover: remove set but not used variable 'primary_dev'
From: YueHaibing @ 2018-09-01  1:34 UTC (permalink / raw)
  To: Samudrala, Sridhar, David S. Miller, Stephen Hemminger,
	Dan Carpenter, Alexander Duyck, Jeff Kirsher, Liran Alon,
	Joao Martins
  Cc: netdev, kernel-janitors
In-Reply-To: <23e9e24a-dfec-e112-0745-d29e4742c057@intel.com>



On 2018/9/1 0:39, Samudrala, Sridhar wrote:
> On 8/30/2018 8:46 PM, YueHaibing wrote:
>> Fixes gcc '-Wunused-but-set-variable' warning:
>>
>> drivers/net/net_failover.c: In function 'net_failover_slave_unregister':
>> drivers/net/net_failover.c:598:35: warning:
>>   variable 'primary_dev' set but not used [-Wunused-but-set-variable]
> 
> Actually this gcc option found a bug.
> We need to add this check after accessing primary_dev and standby_dev.
> 
>         if (slave_dev != primary_dev && slave_dev != standby_dev)
>                 return -ENODEV;
> 
> Can you resubmit with the right fix?
> 

sure, thank you. will send v2

> 
>>
>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>> ---
>>   drivers/net/net_failover.c | 3 +--
>>   1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c
>> index 7ae1856..e103c94e 100644
>> --- a/drivers/net/net_failover.c
>> +++ b/drivers/net/net_failover.c
>> @@ -595,12 +595,11 @@ static int net_failover_slave_pre_unregister(struct net_device *slave_dev,
>>   static int net_failover_slave_unregister(struct net_device *slave_dev,
>>                        struct net_device *failover_dev)
>>   {
>> -    struct net_device *standby_dev, *primary_dev;
>> +    struct net_device *standby_dev;
>>       struct net_failover_info *nfo_info;
>>       bool slave_is_standby;
>>         nfo_info = netdev_priv(failover_dev);
>> -    primary_dev = rtnl_dereference(nfo_info->primary_dev);
>>       standby_dev = rtnl_dereference(nfo_info->standby_dev);
>>         vlan_vids_del_by_dev(slave_dev, failover_dev);
>>
> 
> 
> .
> 

^ permalink raw reply

* Re: pull-request: bpf-next 2018-09-01
From: David Miller @ 2018-09-01  0:43 UTC (permalink / raw)
  To: daniel; +Cc: ast, netdev
In-Reply-To: <20180901000506.8736-1-daniel@iogearbox.net>

From: Daniel Borkmann <daniel@iogearbox.net>
Date: Sat,  1 Sep 2018 02:05:06 +0200

> The following pull-request contains BPF updates for your *net-next* tree.
> 
> The main changes are:
> 
> 1) Add AF_XDP zero-copy support for i40e driver (!), from Björn and Magnus.

W00t!

> 2) BPF verifier improvements by giving each register its own liveness
>    chain which allows to simplify and getting rid of skip_callee() logic,
>    from Edward.
> 
> 3) Add bpf fs pretty print support for percpu arraymap, percpu hashmap
>    and percpu lru hashmap. Also add generic percpu formatted print on
>    bpftool so the same can be dumped there, from Yonghong.
> 
> 4) Add bpf_{set,get}sockopt() helper support for TCP_SAVE_SYN and
>    TCP_SAVED_SYN options to allow reflection of tos/tclass from received
>    SYN packet, from Nikita.
> 
> 5) Misc improvements to the BPF sockmap test cases in terms of cgroup v2
>    interaction and removal of incorrect shutdown() calls, from John.
> 
> 6) Few cleanups in xdp_umem_assign_dev() and xdpsock samples, from Prashant.

Pulled, thanks Daniel!

^ permalink raw reply

* [PATCH net-next] liquidio: Added delayed work for periodically updating the link statistics.
From: Felix Manlunas @ 2018-09-01  0:44 UTC (permalink / raw)
  To: davem
  Cc: netdev, raghu.vatsavayi, derek.chickles, satananda.burla,
	felix.manlunas, pradeep.nalla

From: Pradeep Nalla <pradeep.nalla@cavium.com>

Signed-off-by: Pradeep Nalla <pradeep.nalla@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
---
 drivers/net/ethernet/cavium/liquidio/lio_core.c    | 24 +++++++++++++++-------
 drivers/net/ethernet/cavium/liquidio/lio_main.c    |  9 +++++++-
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c |  8 +++++++-
 .../net/ethernet/cavium/liquidio/liquidio_common.h |  2 ++
 drivers/net/ethernet/cavium/liquidio/octeon_iq.h   |  3 +++
 .../net/ethernet/cavium/liquidio/octeon_network.h  |  4 +++-
 6 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c
index 30b4a60..cdc26ca 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_core.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c
@@ -1352,16 +1352,19 @@ octnet_nic_stats_callback(struct octeon_device *oct_dev,
 
 		resp->status = 1;
 	} else {
+		dev_err(&oct_dev->pci_dev->dev, "sc OPCODE_NIC_PORT_STATS command failed\n");
 		resp->status = -1;
 	}
 }
 
-int octnet_get_link_stats(struct net_device *netdev)
+void lio_fetch_stats(struct work_struct *work)
 {
-	struct lio *lio = GET_LIO(netdev);
+	struct cavium_wk *wk = (struct cavium_wk *)work;
+	struct lio *lio = wk->ctxptr;
 	struct octeon_device *oct_dev = lio->oct_dev;
 	struct octeon_soft_command *sc;
 	struct oct_nic_stats_resp *resp;
+	unsigned long time_in_jiffies;
 	int retval;
 
 	/* Alloc soft command */
@@ -1371,8 +1374,10 @@ int octnet_get_link_stats(struct net_device *netdev)
 					  sizeof(struct oct_nic_stats_resp),
 					  0);
 
-	if (!sc)
-		return -ENOMEM;
+	if (!sc) {
+		dev_err(&oct_dev->pci_dev->dev, "Soft command allocation failed\n");
+		goto lio_fetch_stats_exit;
+	}
 
 	resp = (struct oct_nic_stats_resp *)sc->virtrptr;
 	memset(resp, 0, sizeof(struct oct_nic_stats_resp));
@@ -1388,20 +1393,25 @@ int octnet_get_link_stats(struct net_device *netdev)
 	retval = octeon_send_soft_command(oct_dev, sc);
 	if (retval == IQ_SEND_FAILED) {
 		octeon_free_soft_command(oct_dev, sc);
-		return -EINVAL;
+		goto lio_fetch_stats_exit;
 	}
 
 	retval = wait_for_sc_completion_timeout(oct_dev, sc,
 						(2 * LIO_SC_MAX_TMO_MS));
 	if (retval)  {
 		dev_err(&oct_dev->pci_dev->dev, "sc OPCODE_NIC_PORT_STATS command failed\n");
-		return retval;
+		goto lio_fetch_stats_exit;
 	}
 
 	octnet_nic_stats_callback(oct_dev, sc->sc_status, sc);
 	WRITE_ONCE(sc->caller_is_done, true);
 
-	return 0;
+lio_fetch_stats_exit:
+	time_in_jiffies = msecs_to_jiffies(LIQUIDIO_NDEV_STATS_POLL_TIME_MS);
+	if (ifstate_check(lio, LIO_IFSTATE_RUNNING))
+		schedule_delayed_work(&lio->stats_wk.work, time_in_jiffies);
+
+	return;
 }
 
 int liquidio_set_speed(struct lio *lio, int speed)
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
index ed5fc6e..e973662 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
@@ -1841,6 +1841,12 @@ static int liquidio_open(struct net_device *netdev)
 	/* tell Octeon to start forwarding packets to host */
 	send_rx_ctrl_cmd(lio, 1);
 
+	/* start periodical statistics fetch */
+	INIT_DELAYED_WORK(&lio->stats_wk.work, lio_fetch_stats);
+	lio->stats_wk.ctxptr = lio;
+	schedule_delayed_work(&lio->stats_wk.work, msecs_to_jiffies
+					(LIQUIDIO_NDEV_STATS_POLL_TIME_MS));
+
 	dev_info(&oct->pci_dev->dev, "%s interface is opened\n",
 		 netdev->name);
 
@@ -1881,6 +1887,8 @@ static int liquidio_stop(struct net_device *netdev)
 		cleanup_tx_poll_fn(netdev);
 	}
 
+	cancel_delayed_work_sync(&lio->stats_wk.work);
+
 	if (lio->ptp_clock) {
 		ptp_clock_unregister(lio->ptp_clock);
 		lio->ptp_clock = NULL;
@@ -2081,7 +2089,6 @@ liquidio_get_stats64(struct net_device *netdev,
 	lstats->rx_packets = pkts;
 	lstats->rx_dropped = drop;
 
-	octnet_get_link_stats(netdev);
 	lstats->multicast = oct->link_stats.fromwire.fw_total_mcast;
 	lstats->collisions = oct->link_stats.fromhost.total_collisions;
 
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
index 9c267b4c..fe3d935 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
@@ -917,6 +917,11 @@ static int liquidio_open(struct net_device *netdev)
 	netif_info(lio, ifup, lio->netdev, "Interface Open, ready for traffic\n");
 	start_txqs(netdev);
 
+	INIT_DELAYED_WORK(&lio->stats_wk.work, lio_fetch_stats);
+	lio->stats_wk.ctxptr = lio;
+	schedule_delayed_work(&lio->stats_wk.work, msecs_to_jiffies
+					(LIQUIDIO_NDEV_STATS_POLL_TIME_MS));
+
 	/* tell Octeon to start forwarding packets to host */
 	send_rx_ctrl_cmd(lio, 1);
 
@@ -964,6 +969,8 @@ static int liquidio_stop(struct net_device *netdev)
 		oct->droq[0]->ops.poll_mode = 0;
 	}
 
+	cancel_delayed_work_sync(&lio->stats_wk.work);
+
 	dev_info(&oct->pci_dev->dev, "%s interface is stopped\n", netdev->name);
 
 	return 0;
@@ -1181,7 +1188,6 @@ liquidio_get_stats64(struct net_device *netdev,
 	lstats->rx_packets = pkts;
 	lstats->rx_dropped = drop;
 
-	octnet_get_link_stats(netdev);
 	lstats->multicast = oct->link_stats.fromwire.fw_total_mcast;
 
 	/* detailed rx_errors: */
diff --git a/drivers/net/ethernet/cavium/liquidio/liquidio_common.h b/drivers/net/ethernet/cavium/liquidio/liquidio_common.h
index 7407fcd..0decc72 100644
--- a/drivers/net/ethernet/cavium/liquidio/liquidio_common.h
+++ b/drivers/net/ethernet/cavium/liquidio/liquidio_common.h
@@ -250,6 +250,8 @@ static inline void add_sg_size(struct octeon_sg_entry *sg_entry,
 #define   OCTNET_CMD_VLAN_FILTER_ENABLE 0x1
 #define   OCTNET_CMD_VLAN_FILTER_DISABLE 0x0
 
+#define   OCTNET_CMD_FAIL 0x1
+
 #define   SEAPI_CMD_SPEED_SET           0x2
 #define   SEAPI_CMD_SPEED_GET           0x3
 
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_iq.h b/drivers/net/ethernet/cavium/liquidio/octeon_iq.h
index a04f36a..bebf3bd 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_iq.h
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_iq.h
@@ -378,6 +378,9 @@ int octeon_send_command(struct octeon_device *oct, u32 iq_no,
 			u32 force_db, void *cmd, void *buf,
 			u32 datasize, u32 reqtype);
 
+void octeon_dump_soft_command(struct octeon_device *oct,
+			      struct octeon_soft_command *sc);
+
 void octeon_prepare_soft_command(struct octeon_device *oct,
 				 struct octeon_soft_command *sc,
 				 u8 opcode, u8 subcode,
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h
index 807266e..ecd2a26 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h
@@ -42,6 +42,7 @@ struct liquidio_if_cfg_resp {
 };
 
 #define LIO_IFCFG_WAIT_TIME    3000 /* In milli seconds */
+#define LIQUIDIO_NDEV_STATS_POLL_TIME_MS 200
 
 /* Structure of a node in list of gather components maintained by
  * NIC driver for each network device.
@@ -175,6 +176,7 @@ struct lio {
 	struct cavium_wq	sync_octeon_time_wq;
 
 	int netdev_uc_count;
+	struct cavium_wk stats_wk;
 };
 
 #define LIO_SIZE         (sizeof(struct lio))
@@ -213,7 +215,7 @@ irqreturn_t liquidio_msix_intr_handler(int irq __attribute__((unused)),
 
 int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs);
 
-int octnet_get_link_stats(struct net_device *netdev);
+void lio_fetch_stats(struct work_struct *work);
 
 int lio_wait_for_clean_oq(struct octeon_device *oct);
 /**

^ permalink raw reply related

* Re: [PATCH net-next v1] selftests/tls: Add test for recv(PEEK) spanning across multiple records
From: David Miller @ 2018-09-01  1:00 UTC (permalink / raw)
  To: vakul.garg; +Cc: netdev, borisp, aviadye, davejwatson
In-Reply-To: <20180829100014.32022-1-vakul.garg@nxp.com>

From: Vakul Garg <vakul.garg@nxp.com>
Date: Wed, 29 Aug 2018 15:30:14 +0530

> Added test case to receive multiple records with a single recvmsg()
> operation with a MSG_PEEK set.

Applied.

^ permalink raw reply

* Re: [PATCH net-next v2] net/tls: Add support for async decryption of tls records
From: David Miller @ 2018-09-01  1:00 UTC (permalink / raw)
  To: vakul.garg; +Cc: netdev, borisp, aviadye, davejwatson
In-Reply-To: <20180829095655.31963-1-vakul.garg@nxp.com>

From: Vakul Garg <vakul.garg@nxp.com>
Date: Wed, 29 Aug 2018 15:26:55 +0530

> When tls records are decrypted using asynchronous acclerators such as
> NXP CAAM engine, the crypto apis return -EINPROGRESS. Presently, on
> getting -EINPROGRESS, the tls record processing stops till the time the
> crypto accelerator finishes off and returns the result. This incurs a
> context switch and is not an efficient way of accessing the crypto
> accelerators. Crypto accelerators work efficient when they are queued
> with multiple crypto jobs without having to wait for the previous ones
> to complete.
> 
> The patch submits multiple crypto requests without having to wait for
> for previous ones to complete. This has been implemented for records
> which are decrypted in zero-copy mode. At the end of recvmsg(), we wait
> for all the asynchronous decryption requests to complete.
> 
> The references to records which have been sent for async decryption are
> dropped. For cases where record decryption is not possible in zero-copy
> mode, asynchronous decryption is not used and we wait for decryption
> crypto api to complete.
> 
> For crypto requests executing in async fashion, the memory for
> aead_request, sglists and skb etc is freed from the decryption
> completion handler. The decryption completion handler wakesup the
> sleeping user context when recvmsg() flags that it has done sending
> all the decryption requests and there are no more decryption requests
> pending to be completed.
> 
> Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
> Reviewed-by: Dave Watson <davejwatson@fb.com>
> ---
> 
> Changes since v1:
> 	- Simplified recvmsg() so to drop reference to skb in case it
> 	  was submimtted for async decryption.
> 	- Modified tls_sw_advance_skb() to handle case when input skb is
> 	  NULL.

Applied.

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox