From patchwork Thu Dec 10 14:24:24 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Uvarov X-Patchwork-Id: 58217 Delivered-To: patch@linaro.org Received: by 10.112.147.194 with SMTP id tm2csp527548lbb; Thu, 10 Dec 2015 06:30:25 -0800 (PST) X-Received: by 10.140.152.150 with SMTP id 144mr7344964qhy.8.1449757825081; Thu, 10 Dec 2015 06:30:25 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id w18si15015442qha.38.2015.12.10.06.30.24; Thu, 10 Dec 2015 06:30:25 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dkim=neutral (body hash did not verify) header.i=@linaro-org.20150623.gappssmtp.com Received: by lists.linaro.org (Postfix, from userid 109) id A23CD61959; Thu, 10 Dec 2015 14:30:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 1592761B50; Thu, 10 Dec 2015 14:25:26 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 6BD4061971; Thu, 10 Dec 2015 14:25:14 +0000 (UTC) Received: from mail-lf0-f52.google.com (mail-lf0-f52.google.com [209.85.215.52]) by lists.linaro.org (Postfix) with ESMTPS id 398B06194F for ; Thu, 10 Dec 2015 14:24:44 +0000 (UTC) Received: by lfdl133 with SMTP id l133so57562411lfd.2 for ; Thu, 10 Dec 2015 06:24:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=FLEi4BQ8u8fHazauBZ4kVg7kAnxBxD8eu1GbUBhyDyk=; b=KxCP0WPSCtUOjTyk+WtMla7/cQeZhjOEm4DI7p8mbLMGhRC/ztDAHB8jCC5G4KWIxO Qvz8dU/9FGOOluErWRisCsGigYydwDFK2EElktOdEIZnK311WqMwCszRatkUU4pivMtz qIrWSIxcp6Uvivw9mWwztAHM7z/F4SvdpqnhF+HyVo/ooWkrQgv1dTPAS2uL7xMfrcIA 2QBBsh8QUlnZUdW1jjmHIxX7W+sjbcLeU0/bDroskMfRpYhpjirqX0veGokxXE0w4tD2 ngLFc5zI5150XzqgHxesxMbhPYqklz4VUg0ZGvpX8V2Hqr1bstHqQjHRTBW7PfENpt93 pFHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=FLEi4BQ8u8fHazauBZ4kVg7kAnxBxD8eu1GbUBhyDyk=; b=mhYzYdu4rGk7aUcXud0p0uWkvI237BnYCaT7iUNs00Os/UKBy1KUAjSnJ6U04k3tcS LU1xXWKuVGRwYdlj2Qg9ynxBzOZBbU4WmqpnvK1Mb5ONoEJKtPUtumdKcL8KY32EsGcs 7JShq6FUO3eJoQ1XNyMYZq439aFyK5fJzGqCo4Vpd6EkTFBih4bpjwr2oCyVUH7Gxko7 iZh7NLkJBwCR9IBopqFcpUbRUacCSi/Kp8U2GA7hF8UC+UX5nzgy6S9zGSDSHMAYQDI1 UbG6Nrb0oIUcxJaL5k9h2pvKDPnUqhmeyYUotY6/eKpgWV0a5w29XRq6RZa5BhFIK5o3 VgzQ== X-Gm-Message-State: ALoCoQn7CPGICQEHkEq5I9mAmYq6jaFRUGsrbJleLvhCsCXBXeAvpI6vm7Sv/F0g2W21yrQrFR1NGVCI5YBH6+2WkSx3XTzglA== X-Received: by 10.25.145.81 with SMTP id t78mr5409087lfd.86.1449757483090; Thu, 10 Dec 2015 06:24:43 -0800 (PST) Received: from localhost.localdomain (ppp91-76-173-134.pppoe.mtu-net.ru. [91.76.173.134]) by smtp.gmail.com with ESMTPSA id xn8sm2364938lbb.41.2015.12.10.06.24.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Dec 2015 06:24:42 -0800 (PST) From: Maxim Uvarov To: lng-odp@lists.linaro.org Date: Thu, 10 Dec 2015 17:24:24 +0300 Message-Id: <1449757466-6287-9-git-send-email-maxim.uvarov@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1449757466-6287-1-git-send-email-maxim.uvarov@linaro.org> References: <1449757466-6287-1-git-send-email-maxim.uvarov@linaro.org> X-Topics: patch Subject: [lng-odp] [PATCHv17 08/10] linix-generic: return error for unsupported pktio calls X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" For some pktios like loop and ipc functions like mtu, promisc, and mac addr are not applicable. Instead of crash on deference null pointer just return error if functions are not defined. Signed-off-by: Maxim Uvarov --- platform/linux-generic/odp_packet_io.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index 1e9d08c..c8b6502 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -725,7 +725,7 @@ int pktin_poll(pktio_entry_t *entry) int odp_pktio_mtu(odp_pktio_t id) { pktio_entry_t *entry; - int ret; + int ret = -1; entry = get_pktio_entry(id); if (entry == NULL) { @@ -740,7 +740,9 @@ int odp_pktio_mtu(odp_pktio_t id) ODP_DBG("already freed pktio\n"); return -1; } - ret = entry->s.ops->mtu_get(entry); + + if (entry->s.ops->mtu_get) + ret = entry->s.ops->mtu_get(entry); unlock_entry(entry); return ret; @@ -749,7 +751,7 @@ int odp_pktio_mtu(odp_pktio_t id) int odp_pktio_promisc_mode_set(odp_pktio_t id, odp_bool_t enable) { pktio_entry_t *entry; - int ret; + int ret = -1; entry = get_pktio_entry(id); if (entry == NULL) { @@ -769,7 +771,8 @@ int odp_pktio_promisc_mode_set(odp_pktio_t id, odp_bool_t enable) return -1; } - ret = entry->s.ops->promisc_mode_set(entry, enable); + if (entry->s.ops->promisc_mode_set) + ret = entry->s.ops->promisc_mode_set(entry, enable); unlock_entry(entry); return ret; @@ -778,7 +781,7 @@ int odp_pktio_promisc_mode_set(odp_pktio_t id, odp_bool_t enable) int odp_pktio_promisc_mode(odp_pktio_t id) { pktio_entry_t *entry; - int ret; + int ret = -1; entry = get_pktio_entry(id); if (entry == NULL) { @@ -794,13 +797,13 @@ int odp_pktio_promisc_mode(odp_pktio_t id) return -1; } - ret = entry->s.ops->promisc_mode_get(entry); + if (entry->s.ops->promisc_mode_get) + ret = entry->s.ops->promisc_mode_get(entry); unlock_entry(entry); return ret; } - int odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr, int addr_size) { pktio_entry_t *entry; @@ -825,7 +828,12 @@ int odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr, int addr_size) return -1; } - ret = entry->s.ops->mac_get(entry, mac_addr); + if (entry->s.ops->mac_get) { + ret = entry->s.ops->mac_get(entry, mac_addr); + } else { + ODP_DBG("pktio does not support mac addr get\n"); + ret = -1; + } unlock_entry(entry); return ret;