Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp294649pxm; Wed, 23 Feb 2022 00:00:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJyyVIS3WoUA/gx7ySqNVG8lEzqowtCeYg3ADdOosHAO+O++bfmBojXPzMWNd0wXbJlV0cC5 X-Received: by 2002:a17:90a:3046:b0:1bc:2b36:87bc with SMTP id q6-20020a17090a304600b001bc2b3687bcmr7776197pjl.191.1645603202634; Wed, 23 Feb 2022 00:00:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1645603202; cv=pass; d=google.com; s=arc-20160816; b=ZAIOXF1r9TXhVbosAtQ+b7C1Eo8PDo/or6gWCLd/aHSOWWKmG3rr35eZM7rI+5gYCd fvMVS+Eub2gEY1IQkL+yl7vZOkMLghmivaCxAl/ZGwNiqEq0L0dZ3005harDDJCs/csx W9pLTf+s3+OMc4FsIw03iWobqR5l0l+ZWQgXUshZPmLDl6/2J4I1SLRSggJXkdniC4TU Q7+ceGXpCc445+iiYOv/U2Ioxw//u+9UuCzHVNNuXejY5m0C0f9rkc9itDb4/qeFmnKn 3UUZK7TDtMF+2kNSCRUq4rslRUqXLV6EOgviG2hCUjQmyjvD9wmjbG3/IF1Vki4pRcG2 h61A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :in-reply-to:from:references:cc:to:content-language:subject :user-agent:date:message-id:dkim-signature; bh=WTmcHFMwdpzn+h87cD+8spsdB4QhW1ySEcT/Dpk2aDE=; b=ctNvDC5EYGRshzWYpzJ4HYFSa4QOJet0qLkhvrZTMuLndw7Wx51XceetbOWXyPIuG4 zgSGOiTCXeTqZfklCOp2k6uq9O0CKkwz/sOu+Kk4YF7V3kWq9irciHw9whACqsedwx16 Cf6R+rggSsYGRnAzTQy4eHGuZk04+wVlkE7EfJf99kzVFlIyuLVoLnBXArwY/H4942zL 9PvmLRmZrmIN38TwucCDCn0TxvmqPBW1Sq2HtpEU0RVGOULqlGZwdVzIWE/Isshildb/ F9+bySAt7qZyVREAaG4aLz3Zfl7xxYeIz7B0DDM9pdvz3pU3m3dlPSSgg34J3lKURc1d k6/A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oppo.com header.s=selector1 header.b="va/5nHvD"; arc=pass (i=1 spf=pass spfdomain=oppo.com dkim=pass dkdomain=oppo.com dmarc=pass fromdomain=oppo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=oppo.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f32si1500058pjk.141.2022.02.22.23.59.47; Wed, 23 Feb 2022 00:00:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oppo.com header.s=selector1 header.b="va/5nHvD"; arc=pass (i=1 spf=pass spfdomain=oppo.com dkim=pass dkdomain=oppo.com dmarc=pass fromdomain=oppo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=oppo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236706AbiBWC6s (ORCPT + 99 others); Tue, 22 Feb 2022 21:58:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233422AbiBWC6q (ORCPT ); Tue, 22 Feb 2022 21:58:46 -0500 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2062.outbound.protection.outlook.com [40.107.255.62]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6C9553E01 for ; Tue, 22 Feb 2022 18:58:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AhNAEhHRf1kMDwsfpnuSmV88oJo/rpHxDagpDyApGhA2GhzS9C1W5NDWOU3wzldBevEohTN8Pgn8lPt/fYS/NTpT37c85dPMm0x/IsTZXpaC/LD03NAT6lZzMpDxcYQ+7QzY82BKbfvqCgGwcCmxu81UEd5fHYQbrmnepof2M/9420VhLHinAcIDodQwmnR/efwsPeaIOaHrv3KH2T4k5VxaFDz5qCDsXdEwxFF6f+S8j8qkWzhVU9235+DorHbBITVWtHnHPkoo4xhdygUOuX68Nft6ZrclWen60qxhcIEhjD7cY2EuGaPnLz4Wz6k4OHhaEA708/fJhQQtf+RXkA== 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=WTmcHFMwdpzn+h87cD+8spsdB4QhW1ySEcT/Dpk2aDE=; b=QKyPaDUMXGNZ+riLcJ3lhjJVdHpqX8Y/9XdNGCCilG3X0uEpH5oytD/qD6YDKWz0HuNHM//SPhrKRiXnK9jbd+6qh5LWRBBaQvxRzRa/YXwrYXkiXgvdCQcXiIQrXAxAdvq+iVzFwnWTON4nCdisw/oqgpjcHdySRj2suvXFw6/wHszjaMmOU8mYiGu2Dq+pAWA3N0oRw9Rw2j2CRxL/hsyhxSZDZpTptG7KkJabDXukrw9wVZIN489X1LgSfoEE+ZLq4knpzSkVvDvZkB5/lnwjfi2WT4hFU31iub8pJGUUHKW5y2xMdBdoMky2RrzoolK8tDeuKmjVpEJxjK5KxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WTmcHFMwdpzn+h87cD+8spsdB4QhW1ySEcT/Dpk2aDE=; b=va/5nHvDFecVndW3KdMAzyRf75qlva6INGibeV/B43ZKaxrGL8oiS8vvbPJ6p6zg5+CtKMeJS0uZ4n7K3nvP8W5X6SzogaVTEnCl+YYZOucV9Qdy9gEdBDMYfoh0cvrwacDGtRLI05kjrniOHHAtjbaDARABZnCAiPo2RzzGM4c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oppo.com; Received: from SG2PR02MB5379.apcprd02.prod.outlook.com (2603:1096:4:177::10) by TYZPR02MB5151.apcprd02.prod.outlook.com (2603:1096:400:72::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Wed, 23 Feb 2022 02:58:15 +0000 Received: from SG2PR02MB5379.apcprd02.prod.outlook.com ([fe80::1cb4:8e1f:49c0:8b1]) by SG2PR02MB5379.apcprd02.prod.outlook.com ([fe80::1cb4:8e1f:49c0:8b1%4]) with mapi id 15.20.5017.022; Wed, 23 Feb 2022 02:58:15 +0000 Message-ID: Date: Wed, 23 Feb 2022 10:58:12 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.0 Subject: Re: [PATCH] riscv: mm: Remove the copy operation of pmd Content-Language: en-US To: Palmer Dabbelt Cc: Paul Walmsley , "aou@eecs.berkeley.edu" , "jszhang@kernel.org" , "alexandre.ghiti@canonical.com" , "wangkefeng.wang@huawei.com" , "zhengqi.arch@bytedance.com" , "ebiederm@xmission.com" , "liushixin2@huawei.com" , "linux-riscv@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: From: hanchuanhua In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0113.apcprd03.prod.outlook.com (2603:1096:203:b0::29) To SG2PR02MB5379.apcprd02.prod.outlook.com (2603:1096:4:177::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2abfac51-a6df-406d-7d6b-08d9f67855f1 X-MS-TrafficTypeDiagnostic: TYZPR02MB5151:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bjb+WNPhv+DTN6rKyIsotG4dvYc30fAM88xAx+Ko5u+qh1jzTjR2MoezXAY7LZdj9ojYhg0h65R8ao9wTnzLQgUFYHF5EzNy9mC18PHx6kzfKQXkLAy5M+HczuuCQ6e3Mp9MQe1U76CoYxjHMCg273tvPNuST6lkBwlItEsJoV8sSL/vfV92jT77kmriq1qgwE3fvSDagKZ4CN41YJ6m4WgG5aS+7XAG5TrJY3v3JnyADudMO6mW+73wnPmcxdiEpsQtRrsvDRJmBaVN3EbA7lFeEpUIr53vtvWI5A+FceoAGmwY1SGklPHU0sECjseAJ97dkH0DAoCXgiij9Ba7N3KmJA61FyvxXOZrc2JWFBceq0eejMxto/EmI19yejJmYCx1aBjLb7kSNHU/eIrWxZRylicul0ls9tQuWcuA0fLD0+SEYmAAM9fkqAAriiquy2rXxV3JhcpYdeSLAADsD0j/cpNscXIEXKKlpNx4vq1sB4eun+uO4ysArXNescJ9bcnDSoDiLLnn6ryVkg5ZWsXDGZKnnwn3X8lyQFESbOV+3R1FdBH66r9bpV+mUsTL9aCMeD3jNnG+R7od8c1Yzysz3zdHqWZJ7ITf/Nbd+jhdbqgiDh55sUdhUDR0h7mHHna9bWTmsHiFJCIovZZOxNKHAEtyXztDulXi0mvNPL9YWAT6hq3jBzb1jDAgM2Jx7kcK+qrkvtMByKpQFLeywBgod8PaNIzbnLMNddvVC+Sk9jRnZ3dNn99jV9djF3O9wiZjM6PVHKnhphwQWWQhXg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SG2PR02MB5379.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(38100700002)(38350700002)(316002)(2906002)(7416002)(5660300002)(31686004)(8936002)(36756003)(83380400001)(6666004)(6506007)(66556008)(4326008)(31696002)(66946007)(66476007)(8676002)(508600001)(6486002)(54906003)(6916009)(26005)(186003)(53546011)(6512007)(52116002)(2616005)(86362001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cE91M0FrenpBeXUxRC9QK21BTXRvUTFCUEhqYUxPdWhYYm1Ub0hrZDB0RXJ3?= =?utf-8?B?anpyRXp1SWFXZjRlL1hkVzVjaWtpdWdOMy92Y0RhZkt4ZXVnL1I0amNVd0dG?= =?utf-8?B?KzNYVGh1MHQ2NTRhYU02c0xPY3ZaVEI1OUxHbXFabnFuS0s5YXlka1ZuVHlJ?= =?utf-8?B?eXQrcWgzSzcrSFJEWXlPWFhTTnY1Z2xHYnQ3dWdXOG01VkZTZ3JZNk1hVTBu?= =?utf-8?B?eXppS1kwTEVCYXJOcE9YdzVhVld2S2p2eU5pL1NMakxaT1VXNWVWd2FZdk1i?= =?utf-8?B?WHpmQzI3ckQ5Q3FlOHB4OWhkV3cveFNPN1BwaENYMWNHMnpINm5aV253aVlt?= =?utf-8?B?NFh5OFVxajdwa016YjZqQVduZzVmTUpGN3pVNzFiSDdDYjltcG9JTnVhR1Fa?= =?utf-8?B?RnYvWFJFVXRaRWRLaExBcVVZSUpaNVYycnl1TG9GNGJHeGJVZFk3TjdwbCtH?= =?utf-8?B?TVJpc3RydjBjMVU1cUc0NGlIc0VQTzZqYUtmM2pJVXlHTGtxT0cxdkZHeCtU?= =?utf-8?B?MkNUcDh3dlpZb0xkM3R6bEEwQzhnR2had29RbTdmUHQraHRFR2NMbEdQbDM1?= =?utf-8?B?Tk9HOFU5TUt3Q3F5YUROOFQ3WFFDSU9WRWRSN0FXTHBEVmRlNXBJRUN6VFVZ?= =?utf-8?B?NmZTcGNDOVNYOE84SWE1NHNpeEhTMElZdDY1eUVNYm51bHVmcllydDJzUFdk?= =?utf-8?B?ajRpbzRwd3h4L25SL2d3azBWMHpneGE5ZTgzckNYaGx0cTNSK29VcW1qSy9h?= =?utf-8?B?Q2RMcWJvYzBTV0YvSnJOT3E1dkNsb3pWQ0dOOWRKRktLMjZYV084NmNISVVF?= =?utf-8?B?OFl0WmNGZTdSbExHQlZyRmFkcWx4K0w4MTJHOCtTaDM2YTM0SlhweWFUUlFv?= =?utf-8?B?d1A2ZTV2UmtKdFdVNS9JVzdMMXRrb0xXQXpZd3BaOHZ1Vml2a1hXTmRYV0xR?= =?utf-8?B?SGQzRmphcVFudGRuSnJKZ0dJdG9ubWo4WGpRdHlYS1gxa2lQMTRkdGJGb1pF?= =?utf-8?B?bENRVTZ3YlFvRGJETU5QMXBiUjV3T2dOZDU1bUFRckRPRUF2aFFXU2o5bnVq?= =?utf-8?B?VUhMQzV4NFdWRHBsQW0zRWl3WGJaSXJTejNSRHZSTkRDemlQVGRNMzdaMm5q?= =?utf-8?B?Q3NTS0NQYTdleUpLQ1VHdXYwTjNyRUVhK1hPZWZhMEtrWFNweGtjcHR5NDI5?= =?utf-8?B?MU93VnFWMENRK1p2OVY0VU55ejR6Y3NrR080U21pQUdGMCt1YXJ6WWtLQXZN?= =?utf-8?B?YUZRa3h0SnhmOWNXNk5GcUhIcVNlMDFyZGNOMmpmTW50amV0RjlEMEVnL0RX?= =?utf-8?B?cVJETDVSQUZjME8vUEhtVkxpZEQ1cE82emd1VHhSSVBmL1Z4QnErUXZoRWtx?= =?utf-8?B?ZnRLSVd3US9uaU5iVXJqSXh1ZHVNVGQxNTBQV2NmQWZnQUZHM1BRR1NVdkkv?= =?utf-8?B?QlJpdG9telNIUktvMlEyMDZwTjFMZGVaVjJNbnMrcVFTbFp0dTFUaHRzQTV2?= =?utf-8?B?eE5HNi9oekswOG82S1kzUTcyakVyazJsY0o4NkFCZkg0K2puS2J3Sk9rcDNG?= =?utf-8?B?M3ZUSlpzMjZFcXZObFJ0ZThKaGNwR3NudVpJK0wvS0x3dXZPSHpYbmM1STZE?= =?utf-8?B?WWxKaURtOVA1WmRYcDZ2a1BOZWcwSGdwRTZHSTJZSTFyVGk1YjNjOENkUTdn?= =?utf-8?B?VG4wZmtKZjNUVE9tK0w4N29pZ2k0SDFuSFkrQW1JK3g3L1RhL1NxOUxhYnlG?= =?utf-8?B?STFxS0hPK1N1ZFNvZUNqVk9RclNlaDI5aWRTVDh3dnQrUUhMMmpTaDZOVE5G?= =?utf-8?B?eldWL1VRK1FOdUlLWk5pQ0lPaTlrZHlIT1A5bENtRjZjcHBUeXJhOWh2TFB6?= =?utf-8?B?TFhWTFhjNWxFKytqY0xnd0lESE5QUFp2bmtDZVFBN0g2UUhVUVZqUVk4bC9Z?= =?utf-8?B?TmJka2ZEcGN2NmdManl0VGtFTEhGREVhYnJYWmVtTUVHRWRPbmR2Q042VG16?= =?utf-8?B?MkdzUnhXbHh2WFFVR1hLQW9CRVRMVU9PYi9VMDlDYkwrUDg5bkM3RG0zaVVY?= =?utf-8?B?c3hQQmdVOFlLUWpsRXdwZERzcnlGUDNFckhweUp2SWIrMjBPbXJlYnFDNjhm?= =?utf-8?B?RHBYSEwzTXRLUXpvKzBwNDNRUEpVcnpuKzl3WlBOc1hrcmQ0SmdPbEw2OTF2?= =?utf-8?Q?lZNu51xMlAqRKSZQRg42rGA=3D?= X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2abfac51-a6df-406d-7d6b-08d9f67855f1 X-MS-Exchange-CrossTenant-AuthSource: SG2PR02MB5379.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2022 02:58:15.1471 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gTZV0HqZZnceF8M7y0Hgc9AJRIKffaLwp1tzILvgb3d07NzfKUJ1G8eXZXBE+nw6OBoOda9uVkEBrH8sv6Uj3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR02MB5151 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022/2/23 5:25, Palmer Dabbelt wrote: > On Thu, 27 Jan 2022 02:06:22 PST (-0800), hanchuanhua@oppo.com wrote: >> Since all processes share the kernel address space, >> we only need to copy pgd in case of a vmalloc page >> fault exception, the other levels of page tables are >> shared, so the operation of copying pmd is unnecessary. >> >> Signed-off-by: hanchuanhua >> --- >> arch/riscv/mm/fault.c | 10 +++------- >> 1 file changed, 3 insertions(+), 7 deletions(-) >> >> diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c >> index 4e9efbe..40694f0 100644 >> --- a/arch/riscv/mm/fault.c >> +++ b/arch/riscv/mm/fault.c >> @@ -102,9 +102,9 @@ static inline void bad_area(struct pt_regs *regs, st= ruct mm_struct *mm, int code >> static inline void vmalloc_fault(struct pt_regs *regs, int code, unsig= ned long addr) >> { >> pgd_t *pgd, *pgd_k; >> - pud_t *pud, *pud_k; >> - p4d_t *p4d, *p4d_k; >> - pmd_t *pmd, *pmd_k; >> + pud_t *pud_k; >> + p4d_t *p4d_k; >> + pmd_t *pmd_k; >> pte_t *pte_k; >> int index; >> unsigned long pfn; >> @@ -132,14 +132,12 @@ static inline void vmalloc_fault(struct pt_regs *r= egs, int code, unsigned long a >> } >> set_pgd(pgd, *pgd_k); >> >> - p4d =3D p4d_offset(pgd, addr); >> p4d_k =3D p4d_offset(pgd_k, addr); >> if (!p4d_present(*p4d_k)) { >> no_context(regs, addr); >> return; >> } >> >> - pud =3D pud_offset(p4d, addr); >> pud_k =3D pud_offset(p4d_k, addr); >> if (!pud_present(*pud_k)) { >> no_context(regs, addr); >> @@ -150,13 +148,11 @@ static inline void vmalloc_fault(struct pt_regs *r= egs, int code, unsigned long a >> * Since the vmalloc area is global, it is unnecessary >> * to copy individual PTEs >> */ >> - pmd =3D pmd_offset(pud, addr); >> pmd_k =3D pmd_offset(pud_k, addr); >> if (!pmd_present(*pmd_k)) { >> no_context(regs, addr); >> return; >> } >> - set_pmd(pmd, *pmd_k); >> >> /* >> * Make sure the actual PTE exists as well to > This looks good, but "Signed off by" lines are supposed to have real > names associated with them and this looks like a handle to me. There > also seems to be something broken with the email, as this is causing git > to blow up, but for a small patch like this that's OK as I can resurrect > it by hand. > > Reviewed-by: Palmer Dabbelt # aside from the name > > Please send a v2 with the proper Signed off by line, as that's not > something I'm supposed to just fix up myself. > > Thanks! First of all, thank you for your review and reply. I don't quite understand what's wrong with the line "Signed off by"? Thanks! ________________________________ OPPO =E6=9C=AC=E7=94=B5=E5=AD=90=E9=82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99=84=E4= =BB=B6=E5=90=AB=E6=9C=89OPPO=E5=85=AC=E5=8F=B8=E7=9A=84=E4=BF=9D=E5=AF=86= =E4=BF=A1=E6=81=AF=EF=BC=8C=E4=BB=85=E9=99=90=E4=BA=8E=E9=82=AE=E4=BB=B6=E6= =8C=87=E6=98=8E=E7=9A=84=E6=94=B6=E4=BB=B6=E4=BA=BA=E4=BD=BF=E7=94=A8=EF=BC= =88=E5=8C=85=E5=90=AB=E4=B8=AA=E4=BA=BA=E5=8F=8A=E7=BE=A4=E7=BB=84=EF=BC=89= =E3=80=82=E7=A6=81=E6=AD=A2=E4=BB=BB=E4=BD=95=E4=BA=BA=E5=9C=A8=E6=9C=AA=E7= =BB=8F=E6=8E=88=E6=9D=83=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E4=BB=A5=E4=BB= =BB=E4=BD=95=E5=BD=A2=E5=BC=8F=E4=BD=BF=E7=94=A8=E3=80=82=E5=A6=82=E6=9E=9C= =E6=82=A8=E9=94=99=E6=94=B6=E4=BA=86=E6=9C=AC=E9=82=AE=E4=BB=B6=EF=BC=8C=E8= =AF=B7=E7=AB=8B=E5=8D=B3=E4=BB=A5=E7=94=B5=E5=AD=90=E9=82=AE=E4=BB=B6=E9=80= =9A=E7=9F=A5=E5=8F=91=E4=BB=B6=E4=BA=BA=E5=B9=B6=E5=88=A0=E9=99=A4=E6=9C=AC= =E9=82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99=84=E4=BB=B6=E3=80=82 This e-mail and its attachments contain confidential information from OPPO,= which is intended only for the person or entity whose address is listed ab= ove. Any use of the information contained herein in any way (including, but= not limited to, total or partial disclosure, reproduction, or disseminatio= n) by persons other than the intended recipient(s) is prohibited. If you re= ceive this e-mail in error, please notify the sender by phone or email imme= diately and delete it!