From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Nelson Subject: [PATCH v2 ipsec-next 2/3] xfrm: check for xdo_dev_ops add and delete Date: Thu, 14 Dec 2017 13:01:16 -0800 Message-ID: <1513285277-21092-3-git-send-email-shannon.nelson@oracle.com> References: <1513285277-21092-1-git-send-email-shannon.nelson@oracle.com> Cc: netdev@vger.kernel.org To: steffen.klassert@secunet.com Return-path: Received: from aserp2130.oracle.com ([141.146.126.79]:34257 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752751AbdLNVB2 (ORCPT ); Thu, 14 Dec 2017 16:01:28 -0500 In-Reply-To: <1513285277-21092-1-git-send-email-shannon.nelson@oracle.com> Sender: netdev-owner@vger.kernel.org List-ID: This adds a check for the required add and delete functions up front at registration time to be sure both are defined. Signed-off-by: Shannon Nelson --- net/xfrm/xfrm_device.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c index 30e5746..5eb6b82 100644 --- a/net/xfrm/xfrm_device.c +++ b/net/xfrm/xfrm_device.c @@ -144,11 +144,19 @@ EXPORT_SYMBOL_GPL(xfrm_dev_offload_ok); static int xfrm_dev_register(struct net_device *dev) { - if ((dev->features & NETIF_F_HW_ESP) && !dev->xfrmdev_ops) - return NOTIFY_BAD; - if ((dev->features & NETIF_F_HW_ESP_TX_CSUM) && - !(dev->features & NETIF_F_HW_ESP)) + if (!(dev->features & NETIF_F_HW_ESP)) { + if (dev->features & NETIF_F_HW_ESP_TX_CSUM) + return NOTIFY_BAD; + else + return NOTIFY_DONE; + } + +#ifdef CONFIG_XFRM_OFFLOAD + if (!(dev->xfrmdev_ops && + dev->xfrmdev_ops->xdo_dev_state_add && + dev->xfrmdev_ops->xdo_dev_state_delete)) return NOTIFY_BAD; +#endif return NOTIFY_DONE; } -- 2.7.4