From patchwork Fri Feb 8 03:44:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 50245 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6C0D21B7D9; Fri, 8 Feb 2019 04:44:23 +0100 (CET) Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by dpdk.org (Postfix) with ESMTP id CB2441B759 for ; Fri, 8 Feb 2019 04:44:20 +0100 (CET) Received: by mail-pl1-f193.google.com with SMTP id a14so1017576plm.12 for ; Thu, 07 Feb 2019 19:44:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ArJKO28hLj0K5VjH+0jBSnG6Yg4WWDwmTUVgCvjH65w=; b=OwKjsqoxzE1DjQ3i3SFtAKxWdFLhwHLLVg0gc55rpVNHfT5Llu9Ei/doTqg2PWjhq2 OUz/JlaQa06DFP2XVLo3tOwYviI6Md0BMF2xTTJHvdTVzsSaCzI+enx4CQoWAaAhmCYv VmvJqCV1pyOm25QZDEnrPR5QSqCn40nUG9EB22k/82pXtKNthu1mFZ1OnJ6+dQ0wE3// FGieIA/JvbPuPFc4OBkz6ZpyG5iliBGGJb8OR9W/M5EeXtRTt732uwduHii4gcvLaeuk Qo0c/N8cIgU6t/luIvmEYD0iJPWAMiTMKxhgPFBerzXkVS2/rrqP7ru12eEUGeNZyvmw DMkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ArJKO28hLj0K5VjH+0jBSnG6Yg4WWDwmTUVgCvjH65w=; b=R56/tJJpVGTnqU1RhPEAg2KIYEqbZCd5atA4AQ1zLExN2L64nb/v/WQ2sU1goEjSZF qP8Lnx0SIHB8X3EM578I5NyQcOPAEIUzOkfwC7+yBnvfyj9HT8LQBhh0TQZv7Y+FsQHr rV56EgjytQC6vwchZEqtq0FAnX7AsnuqkXOw62Mple7/vsZsg+THzxl5rTKCEbD+BYoT 5iR2XQgsG2+fmIVe62LOJ6WMz/vH8a0gBJc8ZPczfDch/IRFeL4vjwc6jdaD8yU26UIO lg+I/DL3RrAWn9YVaJce39ys2i2CgbtOy6Bk0AO+qDddcpYtrzv44XSm9Ukyn/t1zRdF cSmw== X-Gm-Message-State: AHQUAuY7FFl7OMc7FQhhKuTNSbdDPVluYY8BNLKTmYtUf7SKYUJ+DRMk u9eQ0rVyJijDfBt6xabkMxY6Ad52xdM= X-Google-Smtp-Source: AHgI3IboWsezZXt2jUW9T1YQEB3TlXlerh2SEmbx4xlZSlyYQWHNY+kFhIDOHowReaqMROsLDqpeRg== X-Received: by 2002:a17:902:765:: with SMTP id 92mr20443362pli.242.1549597459703; Thu, 07 Feb 2019 19:44:19 -0800 (PST) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id i4sm873275pfj.82.2019.02.07.19.44.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Feb 2019 19:44:18 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: stable@dpdk.org, Stephen Hemminger Date: Thu, 7 Feb 2019 19:44:03 -0800 Message-Id: <20190208034407.7865-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190208034407.7865-1-stephen@networkplumber.org> References: <20190208034407.7865-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 3/7] bus/vmbus: fix check for mmap failure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Stephen Hemminger The code was testing the result of mmap incorrectly. I.e the test that a local pointer is not MAP_FAILED would always succeed and therefore hid any potential problems. Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support") Signed-off-by: Stephen Hemminger --- drivers/bus/vmbus/linux/vmbus_uio.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/bus/vmbus/linux/vmbus_uio.c b/drivers/bus/vmbus/linux/vmbus_uio.c index 09f7efdca286..8c6bc52fd475 100644 --- a/drivers/bus/vmbus/linux/vmbus_uio.c +++ b/drivers/bus/vmbus/linux/vmbus_uio.c @@ -202,6 +202,7 @@ static int vmbus_uio_map_subchan(const struct rte_vmbus_device *dev, char ring_path[PATH_MAX]; size_t file_size; struct stat sb; + void *mapaddr; int fd; snprintf(ring_path, sizeof(ring_path), @@ -232,14 +233,16 @@ static int vmbus_uio_map_subchan(const struct rte_vmbus_device *dev, return -EINVAL; } - *ring_size = file_size / 2; - *ring_buf = vmbus_map_resource(vmbus_map_addr, fd, - 0, sb.st_size, 0); + mapaddr = vmbus_map_resource(vmbus_map_addr, fd, + 0, file_size, 0); close(fd); - if (ring_buf == MAP_FAILED) + if (mapaddr == MAP_FAILED) return -EIO; + *ring_size = file_size / 2; + *ring_buf = mapaddr; + vmbus_map_addr = RTE_PTR_ADD(ring_buf, file_size); return 0; }