Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp2842839pxb; Sun, 20 Feb 2022 02:08:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzzXMNLAz5Qhn97g6qvrB0tyGlSGMWiRD5L77THxR3iwr7qNFhmLghd0Y+dZ0NUDHR4jdq+ X-Received: by 2002:a17:90b:1d84:b0:1b4:dc8e:2cc2 with SMTP id pf4-20020a17090b1d8400b001b4dc8e2cc2mr20451083pjb.122.1645351738208; Sun, 20 Feb 2022 02:08:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1645351738; cv=pass; d=google.com; s=arc-20160816; b=Yi7tDFVyrFOAJkw/hwUmHliwqayF7o8wU8Us6BIo3OubCdzEbQVYkrSE9Eq6qMPoxV IaCcQUCEC+AJXZOqV6YuF6E2OJfrff1OWrIHE8rx0PfPUjKEKxcrrWC38hfghNAR8F8z nAwBsm8eCaL6v84w3pYpk8S7wqi6xVvA+sWpMUoxe1ZHazmMoQVT4JLWnNqEaYo43an8 WRW+HvQA1Fdp5kl2YfVpbbc5DKR9cGyv5zte0W7/7vo84zKQTYBKCjgvv4yxqpmOvUuU gqOeP6i892EqBGeMaNIn+MUHoDGrMusvf4nTHbATWYTsRXF53F0bAwt2LULkkIqahsAx X+8A== 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=TWAptDzvTxJ0HtKqQGyReV04pwqw0dAROryPBkH7a5Q=; b=kCz9CLR46nGvk348Qfv3Je7dOflausYf48bs6bPW/CmignaT1BvnB8GyFXrdQdbMXH DWC7ILvmDkainjsAVjwFqYiiR5Pnbqo6fncSTWBreBM9KqwmNEqEwIaijElPu4cxh6cU WiWI46SNPxsrr2t+JHKvc9kRsWFY39T6TIJQ/zM3ylpq/4Nsh4AFBmkXmWACFnPYR/Uf REpOZzc84WH2H+J9P1P8kRzzlboAJilcKMooJB+MrYNNpiZjlj6ZBr30aXqXyz/mKA+8 aBiUE8wG64+UqOhf1PD0O54b3Mx9yXoG/mYYe+CzvtbstE6vAi3eAv+fhtKeRvM2m2ol iV/Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=KgpO5ZYF; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.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=amd.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p6si3234302pls.239.2022.02.20.02.08.43; Sun, 20 Feb 2022 02:08:58 -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=@amd.com header.s=selector1 header.b=KgpO5ZYF; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.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=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239334AbiBRSgF (ORCPT + 99 others); Fri, 18 Feb 2022 13:36:05 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:33896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236890AbiBRSgD (ORCPT ); Fri, 18 Feb 2022 13:36:03 -0500 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2053.outbound.protection.outlook.com [40.107.244.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F528268365 for ; Fri, 18 Feb 2022 10:35:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HvJnQuHSIaTbKv4mGRvrbwZfoUOPYsozwnCqlf9jdyZ08f7txnoImcImu+C6TAqQMN1Dss/nppFGFJLaj46vfqLV3UDjS7HJ5z68xanvXApaAlf1JUMuxHVzlLVcSAYQioJq3G+oQssWGaHTvAkXFCnyBLyIcrhpOxuQar/eOIPiMIFspbdyHQwuXYfxgDId8XbzazO2KOWeV9gg8UhSNk+n1avGxpQbZ+1vCvCHWInxe4hJKWDjKt3v5/JA9i7y1k4wJ+DkhWzouvRmuFazXHPMY93HDzOqWWyGw/6l4wRTTPPH0Mfa9rzGI5jgPHYwK9Knh2eyru8ziOxrZIr9nw== 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=TWAptDzvTxJ0HtKqQGyReV04pwqw0dAROryPBkH7a5Q=; b=cR2n/2b0SgG+dvt5mA+gpEr5h50v7qZeMi4H8mKUxmyGlF0MHSzaqF1zgMu/7Y3gImK9xBkr8X/iSvTk2YFQDbHB7sgfsU6Ys2ijIdPkBzP5QvBYI9m4DpXkl/P4wgODYjvh8mObVw474A+UuV2kNPEeMKgguvgMlAfV6wdqxwIQw6G1K7hCtMR2xY6gYfgV4ISJ3lGvpsg+OsJB0yEccDoUsJwEDEQF21no8q6jfix/Kecr+3iFh/F8gq5haeWDT6EU2TvyWRqqZjFEQEV7mEOh8qXRX6rb9NSbStN10GzBMJjuGyqcSw8ECdh64MBmCVJHI6cTElM2+JdUy76vVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; 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=TWAptDzvTxJ0HtKqQGyReV04pwqw0dAROryPBkH7a5Q=; b=KgpO5ZYFrknLh1tEfQgPzEdXbUmeDr341ihQy9JrnUWKqYvZOQ8y5FyZnSp5PmVjCZ8s65+VeS/qAtic9PuUqHn2cligWQ7A+6cGYNaFzH1DMrfT2ExaMUflB696EFpvGI/ph04u8adVbwyVc7Qlj1TG9Vzod/wsc4HpwGX5zXY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BN9PR12MB5115.namprd12.prod.outlook.com (2603:10b6:408:118::14) by BY5PR12MB4034.namprd12.prod.outlook.com (2603:10b6:a03:205::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.15; Fri, 18 Feb 2022 18:35:44 +0000 Received: from BN9PR12MB5115.namprd12.prod.outlook.com ([fe80::38ec:3a46:f85e:6cfa]) by BN9PR12MB5115.namprd12.prod.outlook.com ([fe80::38ec:3a46:f85e:6cfa%4]) with mapi id 15.20.4995.016; Fri, 18 Feb 2022 18:35:44 +0000 Message-ID: Date: Fri, 18 Feb 2022 13:35:41 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH] drm/amdkfd: rework criu_restore_bos error handling Content-Language: en-US To: trix@redhat.com, alexander.deucher@amd.com, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@linux.ie, daniel@ffwll.ch, nathan@kernel.org, ndesaulniers@google.com, david.yatsin@amd.com, rajneesh.bhardwaj@amd.com Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev References: <20220218173913.3376948-1-trix@redhat.com> From: Felix Kuehling In-Reply-To: <20220218173913.3376948-1-trix@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YT1PR01CA0091.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::30) To BN9PR12MB5115.namprd12.prod.outlook.com (2603:10b6:408:118::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8a303859-c004-4d80-29ad-08d9f30d78e2 X-MS-TrafficTypeDiagnostic: BY5PR12MB4034:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SfYITO7OxE31aeKFyhGSCr+MOSQQ2SmGOXw44tWn34N8Hu70CySu0yL26OOjHHuwBVl8JtPJcVftue42fwv65sK6qEJh7IG69nRsCgcy3xeXZz+b7S08PVYWHHEb4YUEdi7qzkH4P357EpPmz+yexUXHlTOst2clFUzOvn+hkxEZTYW73ygC1YhiL6NO6dMfQO7wGR/iHQC8NA2rYcq/N3Oh0FCLGb/IgMvGixotSJLi6BLqqWs5TjJBq2q89bNgt7iZroyc//CCvhJVMqu63J9TOjz0wC3LPAsV2wB9P7GpSn/8VfWMIWIx79qzVYEYNPedfYbKWg6w/cSTh8iSr4P7E8lMPmXDLciK+bCvIN4nT1ktRM/kaWyVtOne9uvaZ0plyAMNEq181cbyHKsw48hcMAtHb5OicC3WA1WQ7tkbAhJgsK/tn8xi4o+VcY9thOe2NCzolNTYS1FWK4LoD862REb1urv+GvRkR8q/OMk5BiLE6KJPaOhPn3XgVpzfTYX2kn3Vf9PiVFX11vOSwAvgMoh0hOVvBY4dagqCLeesvNyzVMEJ1JLAlklRMh1AIRCg//oXgAoFdFKaWxzaMJT5O6EFBboSQ9qgUuSqDynhhH3+bNzFFqQAPuIH8TcgvnGbII/6OaWlxftF2TxYwLd8B4Klku+a4i2QRVMxnx+emmSXD1nVLX8YLf3cfK2yMSmNRyLe0+hr4iUzWv8ar1XXOZI0WSXDUwJqTMEfLLf8WTUktO8wJjKyk9PdO9s7 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5115.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(38100700002)(6636002)(83380400001)(921005)(2906002)(6506007)(6512007)(6486002)(44832011)(508600001)(316002)(5660300002)(6666004)(186003)(26005)(2616005)(86362001)(31686004)(31696002)(8936002)(8676002)(4326008)(66946007)(66556008)(66476007)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXdpeUJ1eWE3SmlFMDkzVnVZZUtxRFA2bzRFTjFkaW9vejFWWERIb1FGaUQ0?= =?utf-8?B?eVk4ZGN6K2FlWGJIUStpeDJTektoWjVxWTFiS1ZyZnhMNHZpMjM0bUc1NjJM?= =?utf-8?B?aDdaUXRtOTVJRThmK2Y0cUcycmZhZWpqcjBJMzAxWmd2YW05ZllwdjV4NDRY?= =?utf-8?B?WWgrS3JGM094Si9rT0toZjMyQmNhRWJnaHJjekgxbm82dXFGQzVKandsVWRm?= =?utf-8?B?Q1dDajBsUmxQMTFGV2xXOVpQM2E3bStRSGU5dEhrWmRmL3h4VzdTTExjdDNJ?= =?utf-8?B?QVEvTGVWSTN3ZWt4aXF5SWE2c1k1S1BiWTlPQTBidjdUdlBkTjlnSEpIT0RZ?= =?utf-8?B?U0drNjlJSVZKdUs2OTREcVZZOWRyRnJDZ0x6TnZ6NjhMWUFjRVBIRVkyeStF?= =?utf-8?B?aERKMGlQZ3lSSkNHa1AvaWdHSXExejVxUkloaGZjeFJoS05FMVI1eENtSXVM?= =?utf-8?B?cFlDRGtCb3RlSXluaXRhQ2ZiUE9WUWZWdEEzaWt0LzFyRFRjVTdkdHRpTGp2?= =?utf-8?B?WExmQ0l6OWRUMk5mYXJqWmI2Ykp4Y1htazc1aGRVMkx0YWdKTzZvVTlieTNH?= =?utf-8?B?Q01zbmJJcDZuREFlZ2I0WXN2Z09tVDZWMmo4b3ErYUVzd2xGOGt3NjN6MHJB?= =?utf-8?B?SC83YmJXZHRJS0kwS1ZHV2d2V2ZtU2FiM2NycHJiYkVqenhtSUVpWEswVTdt?= =?utf-8?B?VWtScUpqMStiTWxmQmh6RHNrbmtGTGhtQlA4UFU0dkJNVGFDYXk2cXpxcHdv?= =?utf-8?B?RlEwQ09kOXBhM3dINkY2eGlXUXloUmVvbVVQTlJ1aEZlRHpIa1FTa21hRWh5?= =?utf-8?B?bVdVemVDUm5VSzA2TjFlakRRY25LL1ZtTkZLNk96SXpVZnhOOUwwdXVad1Nu?= =?utf-8?B?dHVMSHBlL2xZUUZ3SHk5VVM1ZmhLd0tTZERHUk8zOGRRaEZhUFhyaXVYUTRs?= =?utf-8?B?S2o5aTduMUJndkZiMlpIWVZYRm1ZWGpWaFBINTdMNEZUa1N2V2xFVU0zU3Iy?= =?utf-8?B?aHlyYzVVVExwSUNjb1l1alN4aDVWZituYmlUdVpsTjBnb1p0T2pxbFlXcGpT?= =?utf-8?B?SUtUMjRGN2ZHVVU3YU4xVmRDYlRTN2Vua2t0OHYydDhlVnhVMW1KUGFnV2JQ?= =?utf-8?B?TlVGSkpkd0NUc0RSMGhDckYyOE1lbHJkS1Z2Zk1HVnBJVHN6TTRpUnN4VlF3?= =?utf-8?B?aFBPdXJYM1owUjhJS3dWRjRSTEtmYktWYkowQng0aldlYWNjVUUyeVIxQWRt?= =?utf-8?B?YkJENUNFQUg1cWw1TnhSNWRMenUzdkpHY0pLdDJYeTIzOUJtK3dCczBIc3Y3?= =?utf-8?B?aThidEhhWmF0eVllU0haVGpEUVZjK2RtNS8xbzluK0RmMm84RVBDRGVHczI1?= =?utf-8?B?T21oekFKbTNUUllpandhUC91dk1PSEJaYVhaL0txOUJDeFRub1NBZEFHb3JW?= =?utf-8?B?VXl4L2hVbEFvUXY0THVKekZkbjhWNDZ0UTFEblR2dE9KYWxNNi9sT2NiRE52?= =?utf-8?B?UDZ3UFRNVWJSeUpCdU1uc1pET25ldWdwVkczK2t6d3RGNDBMSHQ0TkZ3RC8z?= =?utf-8?B?dWlTRitmTVRCdG5uYVV2dFQ3NlpaWU5nNCt0MXVxWGdjazlKcjRaNFp6Wlh3?= =?utf-8?B?MkFyMHZIdUxLeHNmaDN5cWZjQXY3SHB2bllLRzhleWgzWFhkdWFkYlZDWGpF?= =?utf-8?B?N3hncy9TWXphK3QvcEhOSEg0b1pCczVXaVBYbHc3ZmErbWZjaXQ3NjVZRm5N?= =?utf-8?B?NVlrRlp6VUR6WkdlZnFzWHlKYmhsTWI1MlNsdTgxVjh1REdVYzdUQndxdjVv?= =?utf-8?B?QW9hamdYOHp0dEozbkllNDBuNDJmUDRqbUdZSG1oMjV5WnFQeTNCR2lHeWJY?= =?utf-8?B?YXVWZ2tnNzAzUUtmQzY2S2pENVovZnZ6NHRsSE4wYXU2S2lBb29lTUdOUHhw?= =?utf-8?B?Nk9WVmZmMTM1TFdzSzV5N3ZBemF6cVMxVFlYSGtwczlPbEdTekJna2xsUnli?= =?utf-8?B?aFBPaXh5aVUyMWZ0L3FnOUNLckVHTTRDOXp4MWlCVmFLQ0Jib05vY0Yxd0dl?= =?utf-8?B?OHZKUGNxQktmMDBlOHk3Rlpnb2R2dzBNeTJMc0FuZVV6Y3hJZll0UDgzUWwz?= =?utf-8?B?MVRYR1d2WXZ3QXErTzFrMFlkbzVwMU1YUE5ZNWdjYnF6RXNwSHNLWUIvMHIw?= =?utf-8?Q?0oZ2QHK1VSjz+0eZm2S9qkI=3D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a303859-c004-4d80-29ad-08d9f30d78e2 X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5115.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2022 18:35:43.8941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: D8sDWxjsQFlDm+LHZDMBgpSouYK+Iwylin19GYMD0qaxhedege8LOFni9jMgnxEw29skB1PdyAMrLlkSjf1BPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4034 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 Am 2022-02-18 um 12:39 schrieb trix@redhat.com: > From: Tom Rix > > Clang static analysis reports this problem > kfd_chardev.c:2327:2: warning: 1st function call argument > is an uninitialized value > kvfree(bo_privs); > ^~~~~~~~~~~~~~~~ > > If the copy_from_users(bo_buckets, ...) fails, there is a jump to > the generic error handler at exit:. The freeing of bo_privs and > unwinding of the dmabuf_fd loop do not need to be done. > > Add some specific labels for the early failures. > Reorder the frees to be the reverse of their allocs. > > Move the initialize of 'i' back to the loop. > The problem with the early frees predates the loop > unwinding problem. I think the existing error handling strategy in this function is fine. Having only one exit label avoids potential issues when using the wrong label. Freeing NULL pointers is not a problem. The loop becomes a noop if i==0 (this was fixed by you in a previous patch). The only real problem I see is that bo_privs is not initialized. So this should really be a one-line or maybe two-line fix: struct kfd_criu_bo_bucket *bo_buckets = NULL; struct kfd_criu_bo_priv_data *bo_privs = NULL; Regards,   Felix > > Fixes: 73fa13b6a511 ("drm/amdkfd: CRIU Implement KFD restore ioctl") > Signed-off-by: Tom Rix > --- > drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > index 965af2a08bc0..1d5f41ac3832 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > @@ -2102,7 +2102,7 @@ static int criu_restore_bos(struct kfd_process *p, > const bool criu_resume = true; > bool flush_tlbs = false; > int ret = 0, j = 0; > - uint32_t i = 0; > + uint32_t i; > > if (*priv_offset + (args->num_bos * sizeof(*bo_privs)) > max_priv_data_size) > return -EINVAL; > @@ -2119,13 +2119,13 @@ static int criu_restore_bos(struct kfd_process *p, > if (ret) { > pr_err("Failed to copy BOs information from user\n"); > ret = -EFAULT; > - goto exit; > + goto free_buckets; > } > > bo_privs = kvmalloc_array(args->num_bos, sizeof(*bo_privs), GFP_KERNEL); > if (!bo_privs) { > ret = -ENOMEM; > - goto exit; > + goto free_buckets; > } > > ret = copy_from_user(bo_privs, (void __user *)args->priv_data + *priv_offset, > @@ -2133,12 +2133,12 @@ static int criu_restore_bos(struct kfd_process *p, > if (ret) { > pr_err("Failed to copy BOs information from user\n"); > ret = -EFAULT; > - goto exit; > + goto free_privs; > } > *priv_offset += args->num_bos * sizeof(*bo_privs); > > /* Create and map new BOs */ > - for (; i < args->num_bos; i++) { > + for (i = 0; i < args->num_bos; i++) { > struct kfd_criu_bo_bucket *bo_bucket; > struct kfd_criu_bo_priv_data *bo_priv; > struct kfd_dev *dev; > @@ -2323,8 +2323,11 @@ static int criu_restore_bos(struct kfd_process *p, > if (bo_buckets[i].alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM) > close_fd(bo_buckets[i].dmabuf_fd); > } > - kvfree(bo_buckets); > +free_privs: > kvfree(bo_privs); > +free_buckets: > + kvfree(bo_buckets); > + > return ret; > } >