Received: by 2002:ac0:b08d:0:0:0:0:0 with SMTP id l13csp4922275imc; Mon, 25 Feb 2019 13:42:21 -0800 (PST) X-Google-Smtp-Source: AHgI3IZ1T8OPS1cwCTTjz03V7nlnFcE9GrK5L7+MG4IZdpJQ76Wt/XkTJzYrQEYbHBxILoAo1bxG X-Received: by 2002:a62:11ca:: with SMTP id 71mr22312232pfr.18.1551130941293; Mon, 25 Feb 2019 13:42:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551130941; cv=none; d=google.com; s=arc-20160816; b=BEUtVqooYApyMt5KU9dPtGCsGW4n49I5fZgtgYCW26vRZ85m0P5RQQ7LQOSHQnkeiD WOEqBFkmpIuW7ve7cx0xzoEtpUiY4UFwDuwXi3aaUoks+bB2azzO7orKWy0QUEQXvzst DA5/l3KS4rJr52hZ1fUwWc8xObNVqOFqKceeYt9Fl7Cf9q7tOg4DMsPGkvA71nM03Swo UdDQP6TuLNgXld23w+2T8bVbVG+XdaJTA2phcOS4ct9Mvu5K+QJuCB25w7UXIMg6oJmm 8D/RRS/gRWByMurDhCITeXAtO9aK0188F771cJiwkERK7znbFrcerGZoaOkO7XLqAAC7 jFJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=HMMna8ymBV9ktYJOhuMuMYyJOrKvP+/101ds1Qlbegs=; b=WysiMKRBVzl1WvLg0zDZl04aykCAZhh46CWRHJkub73GuGBKnxhVcE8xLpq/9gH0YU uD5skuRnRTf+N1zWCpKAppD7BI6uvbNRl80oqcRi3YXoYI7S0ObHcE8cDDd8crwtkxIo LCfzBBbPydRKynXdW085i36phgf0wew0egIISgA3wbnBR/iyNOake0QBo/qA3pRN1cOT G39mhK3eF+qW5AwUtsIOS0IqPLUnjUGo3jnmJODk+vY3fhoMOTJMfDDCcdOYGcV5P9G0 NSf0lQFNpL0xD9PkyEbDCD8J74cG3eGxWDxsftWsDism88khqiYSpM2m5l5RMpBJ1Aqr huwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="vmpAIkZ/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 16si7121721pgc.312.2019.02.25.13.42.06; Mon, 25 Feb 2019 13:42:21 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="vmpAIkZ/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732789AbfBYVeO (ORCPT + 99 others); Mon, 25 Feb 2019 16:34:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:40468 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732780AbfBYVeM (ORCPT ); Mon, 25 Feb 2019 16:34:12 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D920921841; Mon, 25 Feb 2019 21:34:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551130451; bh=PJPQGKrrERwuRJ3S9jYoEjE1zExyh2E1NBolv1YCasE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vmpAIkZ/cYTz2OZiuge8z4rjeCngrFZq2stG5QGrXqXKgeg0d0QwFBgWbFd2m3v0F G8wRgBt0rjxR7dfK2nCSNuYl02v3VwSXeWLKlhkytjj3UNF8y+2rodaNZwwh5Em5xP /iW0bg97TnyUgeKiHltCces8ljVPsKzDfkzAccQA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Arthur Kiyanovski , "David S. Miller" Subject: [PATCH 4.20 125/183] net: ena: fix race between link up and device initalization Date: Mon, 25 Feb 2019 22:11:38 +0100 Message-Id: <20190225195115.803714202@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190225195054.748060397@linuxfoundation.org> References: <20190225195054.748060397@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Arthur Kiyanovski [ Upstream commit e1f1bd9bfbedcfce428ee7e1b82a6ec12d4c3863 ] Fix race condition between ena_update_on_link_change() and ena_restore_device(). This race can occur if link notification arrives while the driver is performing a reset sequence. In this case link can be set up, enabling the device, before it is fully restored. If packets are sent at this time, the driver might access uninitialized data structures, causing kernel crash. Move the clearing of ENA_FLAG_ONGOING_RESET and netif_carrier_on() after ena_up() to ensure the device is ready when link is set up. Fixes: d18e4f683445 ("net: ena: fix race condition between device reset and link up setup") Signed-off-by: Arthur Kiyanovski Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -2663,11 +2663,6 @@ static int ena_restore_device(struct ena goto err_device_destroy; } - clear_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags); - /* Make sure we don't have a race with AENQ Links state handler */ - if (test_bit(ENA_FLAG_LINK_UP, &adapter->flags)) - netif_carrier_on(adapter->netdev); - rc = ena_enable_msix_and_set_admin_interrupts(adapter, adapter->num_queues); if (rc) { @@ -2684,6 +2679,11 @@ static int ena_restore_device(struct ena } set_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags); + + clear_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags); + if (test_bit(ENA_FLAG_LINK_UP, &adapter->flags)) + netif_carrier_on(adapter->netdev); + mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ)); dev_err(&pdev->dev, "Device reset completed successfully, Driver info: %s\n",