From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 75BCEECAAD8 for ; Wed, 21 Sep 2022 13:08:25 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D403D84A59; Wed, 21 Sep 2022 15:08:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="hF44Jgqb"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6CB8984C92; Wed, 21 Sep 2022 15:08:20 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2066.outbound.protection.outlook.com [40.107.223.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B6A49849C5 for ; Wed, 21 Sep 2022 15:08:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=michal.simek@amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VhVCeDM8oVpCtg+JhbmtFn67t7NHm5fxH7O+Q94xmLvIkkJUzoiKDkCNLDAZcii5iFnhk0rjt8kvtTNdb9rUSkxhNSjuTKcgwEiCFqtHo5Y2LRJps2eikp16cVmSXtoCHNhsOOE3GpgfT+U/3P+xD8v59PbK6lgoE0X3iOv3PkbQnP5GwIdSrQpz9k16Dd7L3+axNnuWBb3lyqW1eqroe1LtSzd+OvQZe9eUNn/QDv9Box+D+DZLa0OYZ+vnb/3J4K3stzvhBJ3DboFUSO4UcCffLr6zlbhSgYNKaRpcb89HrZr5gqnJu//yiBdBhILIGWfzFJZLMIDYDkwrAXEg5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RAwv+kx01j4rVTDfGf4AofQSb3qHhz386RjTq0lZkro=; b=lHHtisBJ5Yx2nIuQcwnnspXBd7i3BCvhbLhZfzJofORWUrtJTEYU3l7FHXe2Y5ALDRtSaw0x5tzyS8OY7N0BXdM8ZJKDvjhnrTqzuYk15aeCsRQvVo4TG6TFJXOsSMd/8zOg01VbWfMlRFFtPMyiJuZO3+8PvTDAfktanxh8suDL/eXkedvxddN89iKQ0vruckeY+KNacEq8i7K6Wf/nWQeTRycspBNZJbkiTbUHZDfXvbv0ftbMI35vU4+kjw71LBnmASFcDDN9ZvLq5dAvzX30DMIFVfY8wU3r2+93iH3on7aezdlke60/Z/bxj++5VFxB9Oorpt/23cttBCvQOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=quicinc.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RAwv+kx01j4rVTDfGf4AofQSb3qHhz386RjTq0lZkro=; b=hF44JgqbIjHYWAIzaGKYzWJY+h8tjwNUBfYwTgYjak5eZHKusNrgk6IeeUUBj6ABEjh+owE6JsfrwFBPK5YEGpsszza6pELR/hYvZLR+8J+8C38w3i/Y/8+U+KrhKR6TkOssmJCNfJxH8ks0VuDmtw7gTPea+hHmfapnQ0p61gs= Received: from BN8PR04CA0031.namprd04.prod.outlook.com (2603:10b6:408:70::44) by MN2PR12MB4552.namprd12.prod.outlook.com (2603:10b6:208:24f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.14; Wed, 21 Sep 2022 13:08:13 +0000 Received: from BN8NAM11FT041.eop-nam11.prod.protection.outlook.com (2603:10b6:408:70:cafe::ef) by BN8PR04CA0031.outlook.office365.com (2603:10b6:408:70::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.17 via Frontend Transport; Wed, 21 Sep 2022 13:08:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT041.mail.protection.outlook.com (10.13.177.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5654.14 via Frontend Transport; Wed, 21 Sep 2022 13:08:13 +0000 Received: from [10.254.241.52] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Wed, 21 Sep 2022 08:08:08 -0500 Message-ID: <35633d86-41e8-563a-4cc9-ebd9ad02f7e1@amd.com> Date: Wed, 21 Sep 2022 15:07:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Subject: Re: [PATCH v4 3/6] cmd: fru: fix a sandbox segfault issue Content-Language: en-US To: Jae Hyun Yoo , Ovidiu Panait , Simon Glass , Mario Six , Masahisa Kojima , =?UTF-8?Q?Pali_Roh=c3=a1r?= , Heinrich Schuchardt , Ashok Reddy Soma , Thomas Huth , Huang Jianan , Chris Morgan , Roland Gaudig , Patrick Delaunay , Alexandru Gagniuc CC: Jamie Iles , Graeme Gregory , =?UTF-8?Q?C=c3=a9dric_Le_Goater?= , References: <20220825164245.1606958-1-quic_jaehyoo@quicinc.com> <20220825164245.1606958-4-quic_jaehyoo@quicinc.com> From: Michal Simek In-Reply-To: <20220825164245.1606958-4-quic_jaehyoo@quicinc.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT041:EE_|MN2PR12MB4552:EE_ X-MS-Office365-Filtering-Correlation-Id: dd6dc5a0-874b-43ef-83d7-08da9bd25738 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gOtBbvGtOUUx8czhN3Q/sPOXpKPDDEZfLRAb/Gv5ef0Awrl/EwtadYiZHccJQopq5/1DeuiQvIKgh4rJVnE40mp8kcWwfPCFPlPLL+5NlTw1LNCAI5Sh1z5GLB18URgA2Xwrx/rtM21UG8ABeFBVJGZktA09LkmSRrKmSOd55NowBcnggMM0ooHaNN4bg7+Blyi1GVn3I3NvGTQCxVX5pZc367XSS2Ni3PZB1d2z6aAA6/Cq4Ug3cRYMj+S8f5VlKZjzZqTG7nl690rC9aYp4rFVWf0JMhQS2JKVXqwT5XfqHb+4bPboj0G1EBcZazgMshJdje1FCECnlGg+fvh30Ov5maVajIS7M/TyiGnXXh0YVC+pK9vZ44V+OlrvOukteGUggOC2P2h6IR5G1zhIeoud5n21hsWkruOvtENMH8XiCSNdQBUQCAQD23GySRWBH6tSQMYjxhE5dKDwHXjIB/mA0cwLnvUc542o7uWAJlZpxJ6JvrDY88sXtDcDaoTDUs7WTnviFllMZAX9XDyCBk8VgtR98XLYeqNim07xTfNytL3NK18tJ5o2hdRnJPKRPjgvY+ZaxT2tODZw99+d/g8VMrezdtUss24g1mf/VZ3XGjDsK+TLd809jPEwCRODLff7Og8w2BJYJV3K6lkhbH2Q4yA7RZlzCmfi4rOXHOG8/2/6IzMGtE1d2ND5de9+SUv1dgfKZ3Pqv67pz2mS6jw2xzKyEl8RDPfjAeYh/5IiNUPSo4PE19sn6tC3A+SPN1tDeM7Pj403IqLfWG1J/ybJDxKbysW2ZBQnKWmrC5VAIuD4KvTSygaQvNgSSAbkufwchh1I4Ru4N/SF4kZ+XLyWRmp8IjUGD0IikBgRZUg= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(396003)(376002)(346002)(136003)(451199015)(40470700004)(36840700001)(36756003)(31686004)(2906002)(83380400001)(316002)(8676002)(16576012)(54906003)(110136005)(4326008)(44832011)(40480700001)(5660300002)(70586007)(70206006)(6666004)(86362001)(31696002)(82310400005)(41300700001)(36860700001)(478600001)(8936002)(7416002)(53546011)(426003)(2616005)(336012)(26005)(186003)(16526019)(40460700003)(81166007)(921005)(32650700002)(356005)(82740400003)(43740500002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 13:08:13.4480 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dd6dc5a0-874b-43ef-83d7-08da9bd25738 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT041.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4552 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean On 8/25/22 18:42, Jae Hyun Yoo wrote: > This command doesn't work with sandbox because direct memory access > causes a segfault error. Fix it up using map_sysmem(). > > Signed-off-by: Jae Hyun Yoo > Reviewed-by: Simon Glass > --- > Changes from v3: > * None. > > Changes from v2: > * Added a 'Reviewed-by' tag. (Simon) > > Changes from v1: > * Newly added in v2. > > board/xilinx/common/board.c | 2 +- > cmd/fru.c | 19 ++++++++++++++++--- > include/fru.h | 4 ++-- > lib/fru_ops.c | 17 ++++++++--------- > 4 files changed, 27 insertions(+), 15 deletions(-) > > diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c > index e58b11d7f757..3292083c5250 100644 > --- a/board/xilinx/common/board.c > +++ b/board/xilinx/common/board.c > @@ -241,7 +241,7 @@ static int xilinx_read_eeprom_fru(struct udevice *dev, char *name, > goto end; > } > > - fru_capture((unsigned long)fru_content); > + fru_capture(fru_content); > if (gd->flags & GD_FLG_RELOC || (_DEBUG && CONFIG_IS_ENABLED(DTB_RESELECT))) { > printf("Xilinx I2C FRU format at %s:\n", name); > ret = fru_display(0); > diff --git a/cmd/fru.c b/cmd/fru.c > index 2ec5012af5ac..b2cadbec9780 100644 > --- a/cmd/fru.c > +++ b/cmd/fru.c > @@ -9,12 +9,15 @@ > #include > #include > #include > +#include > > static int do_fru_capture(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > { > unsigned long addr; > + const void *buf; > char *endp; > + int ret; > > if (argc < cmdtp->maxargs) > return CMD_RET_USAGE; > @@ -23,7 +26,11 @@ static int do_fru_capture(struct cmd_tbl *cmdtp, int flag, int argc, > if (*argv[1] == 0 || *endp != 0) > return -1; > > - return fru_capture(addr); > + buf = map_sysmem(addr, 0); > + ret = fru_capture(buf); > + unmap_sysmem(buf); > + > + return ret; > } > > static int do_fru_display(struct cmd_tbl *cmdtp, int flag, int argc, > @@ -37,13 +44,19 @@ static int do_fru_generate(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > { > unsigned long addr; > + const void *buf; > + int ret; > > if (argc < cmdtp->maxargs) > return CMD_RET_USAGE; > > - addr = hextoul(argv[2], NULL); > + addr = hextoul(argv[3], NULL); What's the reason for changing arguments here? Wasn't origin version correct? Thanks, Michal