Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5629819imu; Mon, 26 Nov 2018 03:14:09 -0800 (PST) X-Google-Smtp-Source: AFSGD/Uzgp090Wjb6ig3nSUKypshTVvI8muEDHWsAPm5vhOiYHdeCRbpGzD1O83nq/nLZ7ERXSCl X-Received: by 2002:a17:902:9a42:: with SMTP id x2-v6mr26944864plv.126.1543230849721; Mon, 26 Nov 2018 03:14:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543230849; cv=none; d=google.com; s=arc-20160816; b=ED7yUlPHm6MOtRPCDiFblu+z7kDbrN2eT8hPsaSA7hJb49ce2/cil7LxMj230SKmOd lqga+WLbHMXG/9cAdOon+3+1bFmrRuEhH25/S/hm9LPmcQUdwmM6C/Rp3LKQmJ+xy81A iZD5a/u4y6FXfa4+jQ0++LfLVcp10DqIQNUo+G77hYjA75cJP7uth79e4zI7Fq5WJMdW vNC7AkLXIIA9/NiaMEn8g+UcgbqiuVTfa4TsipGpGed5xGQAZ+nsP5GiT0Azm9HVY9Tv MmURXXRuDaD383rbm0HrXtZDry0+oAuYAPnBWV1idKHPXYBks0oL+7RzBgJpfFcnpcj2 pBEQ== 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=vSNw2IAvFSefSLjJDsqzczmOX62F9ziatlDAZvhWIjg=; b=fzFTUdNemv2gO8o4a0YDQzRNH98eTBqBNR0jhRL5MBTu94zPWbIhjhf7wZsG3DC2D/ PR4H+I63VhrkUztaS8aNCyqFP/C83YJOTSTfJYKc2vCbYTAwkjBAuT7ZXmC7BIhC3imy PPNrIfc+JvzE6qyuczgGIY7a+WQa+zuY+D8RTTnNoI0sIOFjmJoSRnTbjvEmr30gMWh3 2/FBtRAvAGfojLz1QIpqpWIgM5+C6BBsLQkbnpTDV8pZXZnsnjTJUtnImS+LFSQpkE9H FuiLbt5imN/ONWiw2f1Q0vUYk7o7gHX6xe/aayDGGB2Q3ocw6VrARKo5Eh6WsjApHkJc tGwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2U0Xa6on; 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 o10si63408797pgs.531.2018.11.26.03.13.32; Mon, 26 Nov 2018 03:14:09 -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=2U0Xa6on; 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 S1730796AbeKZV50 (ORCPT + 99 others); Mon, 26 Nov 2018 16:57:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:41528 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729290AbeKZV5Y (ORCPT ); Mon, 26 Nov 2018 16:57:24 -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 AD86A20645; Mon, 26 Nov 2018 11:03:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543230218; bh=3LkfeakymRouNzuWwNh8C6aebfAEEfPI3G1pv581dss=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2U0Xa6onETVPbi3+dyCDMuOrs1mHUieero3OOq9HkEkhDW0MI34s/sg7Z3pAl8rxp dqstIbNOJcIXnKz8H6KAqWE93Zm7OzAhA87o/UKBpbn756ofltzXuKO9oPuqT7IXgI 0Uh4hXP7qLbQnBEdGsejh816afGW2Z3gjY9ZpntY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yunsheng Lin , "David S. Miller" , Sasha Levin Subject: [PATCH 4.19 053/118] net: hns3: Fix for out-of-bounds access when setting pfc back pressure Date: Mon, 26 Nov 2018 11:50:47 +0100 Message-Id: <20181126105102.945220580@linuxfoundation.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181126105059.832485122@linuxfoundation.org> References: <20181126105059.832485122@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit e8ccbb7d2f53c62e14b889faaa3f6f809b657278 ] The vport should be initialized to hdev->vport for each bp group, otherwise it will cause out-of-bounds access and bp setting not correct problem. [ 35.254124] BUG: KASAN: slab-out-of-bounds in hclge_pause_setup_hw+0x2a0/0x3f8 [hclge] [ 35.254126] Read of size 2 at addr ffff803b6651581a by task kworker/0:1/14 [ 35.254132] CPU: 0 PID: 14 Comm: kworker/0:1 Not tainted 4.19.0-rc7-hulk+ #85 [ 35.254133] Hardware name: Huawei D06/D06, BIOS Hisilicon D06 UEFI RC0 - B052 (V0.52) 09/14/2018 [ 35.254141] Workqueue: events work_for_cpu_fn [ 35.254144] Call trace: [ 35.254147] dump_backtrace+0x0/0x2f0 [ 35.254149] show_stack+0x24/0x30 [ 35.254154] dump_stack+0x110/0x184 [ 35.254157] print_address_description+0x168/0x2b0 [ 35.254160] kasan_report+0x184/0x310 [ 35.254162] __asan_load2+0x7c/0xa0 [ 35.254170] hclge_pause_setup_hw+0x2a0/0x3f8 [hclge] [ 35.254177] hclge_tm_init_hw+0x794/0x9f0 [hclge] [ 35.254184] hclge_tm_schd_init+0x48/0x58 [hclge] [ 35.254191] hclge_init_ae_dev+0x778/0x1168 [hclge] [ 35.254196] hnae3_register_ae_dev+0x14c/0x298 [hnae3] [ 35.254206] hns3_probe+0x88/0xa8 [hns3] [ 35.254210] local_pci_probe+0x7c/0xf0 [ 35.254212] work_for_cpu_fn+0x34/0x50 [ 35.254214] process_one_work+0x4d4/0xa38 [ 35.254216] worker_thread+0x55c/0x8d8 [ 35.254219] kthread+0x1b0/0x1b8 [ 35.254222] ret_from_fork+0x10/0x1c [ 35.254224] The buggy address belongs to the page: [ 35.254228] page:ffff7e00ed994400 count:1 mapcount:0 mapping:0000000000000000 index:0x0 compound_mapcount: 0 [ 35.273835] flags: 0xfffff8000008000(head) [ 35.282007] raw: 0fffff8000008000 dead000000000100 dead000000000200 0000000000000000 [ 35.282010] raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000 [ 35.282012] page dumped because: kasan: bad access detected [ 35.282014] Memory state around the buggy address: [ 35.282017] ffff803b66515700: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe [ 35.282019] ffff803b66515780: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe [ 35.282021] >ffff803b66515800: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe [ 35.282022] ^ [ 35.282024] ffff803b66515880: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe [ 35.282026] ffff803b66515900: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe [ 35.282028] ================================================================== [ 35.282029] Disabling lock debugging due to kernel taint [ 35.282747] hclge driver initialization finished. Fixes: 67bf2541f4b9 ("net: hns3: Fixes the back pressure setting when sriov is enabled") Signed-off-by: Yunsheng Lin Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c index 5db70a1451c5..48235dc2dd56 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c @@ -1167,14 +1167,14 @@ static int hclge_pfc_setup_hw(struct hclge_dev *hdev) */ static int hclge_bp_setup_hw(struct hclge_dev *hdev, u8 tc) { - struct hclge_vport *vport = hdev->vport; - u32 i, k, qs_bitmap; - int ret; + int i; for (i = 0; i < HCLGE_BP_GRP_NUM; i++) { - qs_bitmap = 0; + u32 qs_bitmap = 0; + int k, ret; for (k = 0; k < hdev->num_alloc_vport; k++) { + struct hclge_vport *vport = &hdev->vport[k]; u16 qs_id = vport->qs_offset + tc; u8 grp, sub_grp; @@ -1184,8 +1184,6 @@ static int hclge_bp_setup_hw(struct hclge_dev *hdev, u8 tc) HCLGE_BP_SUB_GRP_ID_S); if (i == grp) qs_bitmap |= (1 << sub_grp); - - vport++; } ret = hclge_tm_qs_bp_cfg(hdev, tc, i, qs_bitmap); -- 2.17.1