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 X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70280C11F68 for ; Fri, 2 Jul 2021 08:45:07 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0B48E613AB for ; Fri, 2 Jul 2021 08:45:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0B48E613AB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A60D189EA9; Fri, 2 Jul 2021 08:45:06 +0000 (UTC) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by gabe.freedesktop.org (Postfix) with ESMTPS id B8BAA89EA9; Fri, 2 Jul 2021 08:45:05 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 1628fU6C020705; Fri, 2 Jul 2021 08:44:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type; s=corp-2020-01-29; bh=ZIuH8D+EyX6mFkCkrL5fr3fRYqL0maMZ+VxGvfpCCd4=; b=r8YhU07wvPwkTeXab9u4EDENNubb61HstwR3RgAz5optsYszI5LUGEgVFwow2gOKn47S 25mceYQhz4fgGPOva9bCJUr0ZezUrjPgN/97CZBbAqt0uhNKLBuZxSfxuJjNrISpSSg4 mo/9GMUdOvYarMcHrEfd6Azq7HDqqVsUD9D7P+aceZpUgDuIeNAvDCPMQ2skGxwIldPt lYsmvtlxTFbMH6GyIFs/dzj+y1dNaqKPyICcT+5lvlogt6fBFDjNCt1rxvQXS5H2q86l qbOF3tWn1HLPgpBbG7jIqwrZg2BVvFbrJjkOvOyz+dEvsqWhGfe08ELv75Z/73jlUJ3y YA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 39gy5w38cb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:56 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1628a5P0185787; Fri, 2 Jul 2021 08:44:55 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3020.oracle.com with ESMTP id 39dv2ca05r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:55 +0000 Received: from aserp3020.oracle.com (aserp3020.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 1628fB8T001938; Fri, 2 Jul 2021 08:44:55 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 39dv2ca055-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:55 +0000 Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 1628ip3r029218; Fri, 2 Jul 2021 08:44:51 GMT Received: from kadam (/102.222.70.252) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 02 Jul 2021 01:44:50 -0700 Date: Fri, 2 Jul 2021 11:44:43 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Chris Wilson Message-ID: <202107020708.XXwacDfG-lkp@intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-GUID: kEtmSQlaUxkKPbIqY2OEIX32z96Vda_h X-Proofpoint-ORIG-GUID: kEtmSQlaUxkKPbIqY2OEIX32z96Vda_h Subject: [Intel-gfx] [drm-intel:drm-intel-gt-next 8/14] drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas =?iso-8859-1?Q?Hellstr=F6m?= , kbuild-all@lists.01.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Matthew Auld Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" tree: git://anongit.freedesktop.org/drm-intel drm-intel-gt-next head: 5cd57f676bb946a00275408f0dd0d75dbc466d25 commit: cf586021642d8017cde111b7dd1ba86224e9da51 [8/14] drm/i915/gt: Pipelined page migration config: x86_64-randconfig-m001-20210630 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. drivers/gpu/drm/i915/gt/selftest_migrate.c:113 copy() error: uninitialized symbol 'vaddr'. Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:182 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 171) vim +/rq +102 drivers/gpu/drm/i915/gt/selftest_migrate.c cf586021642d80 Chris Wilson 2021-06-17 32 static int copy(struct intel_migrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 33 int (*fn)(struct intel_migrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 34 struct i915_gem_ww_ctx *ww, cf586021642d80 Chris Wilson 2021-06-17 35 struct drm_i915_gem_object *src, cf586021642d80 Chris Wilson 2021-06-17 36 struct drm_i915_gem_object *dst, cf586021642d80 Chris Wilson 2021-06-17 37 struct i915_request **out), cf586021642d80 Chris Wilson 2021-06-17 38 u32 sz, struct rnd_state *prng) cf586021642d80 Chris Wilson 2021-06-17 39 { cf586021642d80 Chris Wilson 2021-06-17 40 struct drm_i915_private *i915 = migrate->context->engine->i915; cf586021642d80 Chris Wilson 2021-06-17 41 struct drm_i915_gem_object *src, *dst; cf586021642d80 Chris Wilson 2021-06-17 42 struct i915_request *rq; cf586021642d80 Chris Wilson 2021-06-17 43 struct i915_gem_ww_ctx ww; cf586021642d80 Chris Wilson 2021-06-17 44 u32 *vaddr; cf586021642d80 Chris Wilson 2021-06-17 45 int err = 0; One way to silence these warnings would be to initialize err = -EINVAL. Then Smatch would know that we goto err_out for an empty list. cf586021642d80 Chris Wilson 2021-06-17 46 int i; cf586021642d80 Chris Wilson 2021-06-17 47 cf586021642d80 Chris Wilson 2021-06-17 48 src = create_lmem_or_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 49 if (IS_ERR(src)) cf586021642d80 Chris Wilson 2021-06-17 50 return 0; cf586021642d80 Chris Wilson 2021-06-17 51 cf586021642d80 Chris Wilson 2021-06-17 52 dst = i915_gem_object_create_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 53 if (IS_ERR(dst)) cf586021642d80 Chris Wilson 2021-06-17 54 goto err_free_src; cf586021642d80 Chris Wilson 2021-06-17 55 cf586021642d80 Chris Wilson 2021-06-17 56 for_i915_gem_ww(&ww, err, true) { cf586021642d80 Chris Wilson 2021-06-17 57 err = i915_gem_object_lock(src, &ww); cf586021642d80 Chris Wilson 2021-06-17 58 if (err) cf586021642d80 Chris Wilson 2021-06-17 59 continue; cf586021642d80 Chris Wilson 2021-06-17 60 cf586021642d80 Chris Wilson 2021-06-17 61 err = i915_gem_object_lock(dst, &ww); cf586021642d80 Chris Wilson 2021-06-17 62 if (err) cf586021642d80 Chris Wilson 2021-06-17 63 continue; cf586021642d80 Chris Wilson 2021-06-17 64 cf586021642d80 Chris Wilson 2021-06-17 65 vaddr = i915_gem_object_pin_map(src, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 66 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 67 err = PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 68 continue; cf586021642d80 Chris Wilson 2021-06-17 69 } cf586021642d80 Chris Wilson 2021-06-17 70 cf586021642d80 Chris Wilson 2021-06-17 71 for (i = 0; i < sz / sizeof(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 72 vaddr[i] = i; cf586021642d80 Chris Wilson 2021-06-17 73 i915_gem_object_flush_map(src); cf586021642d80 Chris Wilson 2021-06-17 74 cf586021642d80 Chris Wilson 2021-06-17 75 vaddr = i915_gem_object_pin_map(dst, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 76 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 77 err = PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 78 goto unpin_src; cf586021642d80 Chris Wilson 2021-06-17 79 } cf586021642d80 Chris Wilson 2021-06-17 80 cf586021642d80 Chris Wilson 2021-06-17 81 for (i = 0; i < sz / sizeof(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 82 vaddr[i] = ~i; cf586021642d80 Chris Wilson 2021-06-17 83 i915_gem_object_flush_map(dst); cf586021642d80 Chris Wilson 2021-06-17 84 cf586021642d80 Chris Wilson 2021-06-17 85 err = fn(migrate, &ww, src, dst, &rq); cf586021642d80 Chris Wilson 2021-06-17 86 if (!err) cf586021642d80 Chris Wilson 2021-06-17 87 continue; Does fn() initialize "rq" on the success path? Anyway Smatch would complain anyway because it thinks the list could be empty or that we might hit and early continue for everything. cf586021642d80 Chris Wilson 2021-06-17 88 cf586021642d80 Chris Wilson 2021-06-17 89 if (err != -EDEADLK && err != -EINTR && err != -ERESTARTSYS) cf586021642d80 Chris Wilson 2021-06-17 90 pr_err("%ps failed, size: %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 91 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 92 i915_request_wait(rq, 0, HZ); cf586021642d80 Chris Wilson 2021-06-17 93 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 94 } cf586021642d80 Chris Wilson 2021-06-17 95 i915_gem_object_unpin_map(dst); cf586021642d80 Chris Wilson 2021-06-17 96 unpin_src: cf586021642d80 Chris Wilson 2021-06-17 97 i915_gem_object_unpin_map(src); cf586021642d80 Chris Wilson 2021-06-17 98 } cf586021642d80 Chris Wilson 2021-06-17 99 if (err) cf586021642d80 Chris Wilson 2021-06-17 100 goto err_out; cf586021642d80 Chris Wilson 2021-06-17 101 cf586021642d80 Chris Wilson 2021-06-17 @102 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 103 if (i915_request_wait(rq, 0, HZ) < 0) { cf586021642d80 Chris Wilson 2021-06-17 104 pr_err("%ps timed out, size: %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 105 err = -ETIME; cf586021642d80 Chris Wilson 2021-06-17 106 } cf586021642d80 Chris Wilson 2021-06-17 107 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 108 } cf586021642d80 Chris Wilson 2021-06-17 109 cf586021642d80 Chris Wilson 2021-06-17 110 for (i = 0; !err && i < sz / PAGE_SIZE; i++) { cf586021642d80 Chris Wilson 2021-06-17 111 int x = i * 1024 + i915_prandom_u32_max_state(1024, prng); cf586021642d80 Chris Wilson 2021-06-17 112 cf586021642d80 Chris Wilson 2021-06-17 @113 if (vaddr[x] != x) { cf586021642d80 Chris Wilson 2021-06-17 114 pr_err("%ps failed, size: %u, offset: %zu\n", cf586021642d80 Chris Wilson 2021-06-17 115 fn, sz, x * sizeof(u32)); cf586021642d80 Chris Wilson 2021-06-17 116 igt_hexdump(vaddr + i * 1024, 4096); cf586021642d80 Chris Wilson 2021-06-17 117 err = -EINVAL; cf586021642d80 Chris Wilson 2021-06-17 118 } cf586021642d80 Chris Wilson 2021-06-17 119 } cf586021642d80 Chris Wilson 2021-06-17 120 cf586021642d80 Chris Wilson 2021-06-17 121 i915_gem_object_unpin_map(dst); cf586021642d80 Chris Wilson 2021-06-17 122 i915_gem_object_unpin_map(src); cf586021642d80 Chris Wilson 2021-06-17 123 cf586021642d80 Chris Wilson 2021-06-17 124 err_out: cf586021642d80 Chris Wilson 2021-06-17 125 i915_gem_object_put(dst); cf586021642d80 Chris Wilson 2021-06-17 126 err_free_src: cf586021642d80 Chris Wilson 2021-06-17 127 i915_gem_object_put(src); cf586021642d80 Chris Wilson 2021-06-17 128 cf586021642d80 Chris Wilson 2021-06-17 129 return err; cf586021642d80 Chris Wilson 2021-06-17 130 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============9065188261135826408==" MIME-Version: 1.0 From: kernel test robot Subject: [drm-intel:drm-intel-gt-next 8/14] drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. Date: Fri, 02 Jul 2021 07:14:16 +0800 Message-ID: <202107020708.XXwacDfG-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============9065188261135826408== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org CC: intel-gfx(a)lists.freedesktop.org CC: dri-devel(a)lists.freedesktop.org TO: Chris Wilson CC: Matthew Auld CC: "Thomas Hellstr=C3=B6m" tree: git://anongit.freedesktop.org/drm-intel drm-intel-gt-next head: 5cd57f676bb946a00275408f0dd0d75dbc466d25 commit: cf586021642d8017cde111b7dd1ba86224e9da51 [8/14] drm/i915/gt: Pipeli= ned page migration :::::: branch date: 2 weeks ago :::::: commit date: 2 weeks ago config: x86_64-randconfig-m001-20210630 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized = symbol 'rq'. drivers/gpu/drm/i915/gt/selftest_migrate.c:113 copy() error: uninitialized = symbol 'vaddr'. Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:182 __i915_gem_object_lock() err= or: we previously assumed 'ww' could be null (see line 171) vim +/rq +102 drivers/gpu/drm/i915/gt/selftest_migrate.c cf586021642d80 Chris Wilson 2021-06-17 31 = cf586021642d80 Chris Wilson 2021-06-17 32 static int copy(struct intel_m= igrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 33 int (*fn)(struct intel_migra= te *migrate, cf586021642d80 Chris Wilson 2021-06-17 34 struct i915_gem_ww_ctx *w= w, cf586021642d80 Chris Wilson 2021-06-17 35 struct drm_i915_gem_objec= t *src, cf586021642d80 Chris Wilson 2021-06-17 36 struct drm_i915_gem_objec= t *dst, cf586021642d80 Chris Wilson 2021-06-17 37 struct i915_request **out= ), cf586021642d80 Chris Wilson 2021-06-17 38 u32 sz, struct rnd_state *pr= ng) cf586021642d80 Chris Wilson 2021-06-17 39 { cf586021642d80 Chris Wilson 2021-06-17 40 struct drm_i915_private *i915= =3D migrate->context->engine->i915; cf586021642d80 Chris Wilson 2021-06-17 41 struct drm_i915_gem_object *s= rc, *dst; cf586021642d80 Chris Wilson 2021-06-17 42 struct i915_request *rq; cf586021642d80 Chris Wilson 2021-06-17 43 struct i915_gem_ww_ctx ww; cf586021642d80 Chris Wilson 2021-06-17 44 u32 *vaddr; cf586021642d80 Chris Wilson 2021-06-17 45 int err =3D 0; cf586021642d80 Chris Wilson 2021-06-17 46 int i; cf586021642d80 Chris Wilson 2021-06-17 47 = cf586021642d80 Chris Wilson 2021-06-17 48 src =3D create_lmem_or_intern= al(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 49 if (IS_ERR(src)) cf586021642d80 Chris Wilson 2021-06-17 50 return 0; cf586021642d80 Chris Wilson 2021-06-17 51 = cf586021642d80 Chris Wilson 2021-06-17 52 dst =3D i915_gem_object_creat= e_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 53 if (IS_ERR(dst)) cf586021642d80 Chris Wilson 2021-06-17 54 goto err_free_src; cf586021642d80 Chris Wilson 2021-06-17 55 = cf586021642d80 Chris Wilson 2021-06-17 56 for_i915_gem_ww(&ww, err, tru= e) { cf586021642d80 Chris Wilson 2021-06-17 57 err =3D i915_gem_object_lock= (src, &ww); cf586021642d80 Chris Wilson 2021-06-17 58 if (err) cf586021642d80 Chris Wilson 2021-06-17 59 continue; cf586021642d80 Chris Wilson 2021-06-17 60 = cf586021642d80 Chris Wilson 2021-06-17 61 err =3D i915_gem_object_lock= (dst, &ww); cf586021642d80 Chris Wilson 2021-06-17 62 if (err) cf586021642d80 Chris Wilson 2021-06-17 63 continue; cf586021642d80 Chris Wilson 2021-06-17 64 = cf586021642d80 Chris Wilson 2021-06-17 65 vaddr =3D i915_gem_object_pi= n_map(src, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 66 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 67 err =3D PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 68 continue; cf586021642d80 Chris Wilson 2021-06-17 69 } cf586021642d80 Chris Wilson 2021-06-17 70 = cf586021642d80 Chris Wilson 2021-06-17 71 for (i =3D 0; i < sz / sizeo= f(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 72 vaddr[i] =3D i; cf586021642d80 Chris Wilson 2021-06-17 73 i915_gem_object_flush_map(sr= c); cf586021642d80 Chris Wilson 2021-06-17 74 = cf586021642d80 Chris Wilson 2021-06-17 75 vaddr =3D i915_gem_object_pi= n_map(dst, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 76 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 77 err =3D PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 78 goto unpin_src; cf586021642d80 Chris Wilson 2021-06-17 79 } cf586021642d80 Chris Wilson 2021-06-17 80 = cf586021642d80 Chris Wilson 2021-06-17 81 for (i =3D 0; i < sz / sizeo= f(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 82 vaddr[i] =3D ~i; cf586021642d80 Chris Wilson 2021-06-17 83 i915_gem_object_flush_map(ds= t); cf586021642d80 Chris Wilson 2021-06-17 84 = cf586021642d80 Chris Wilson 2021-06-17 85 err =3D fn(migrate, &ww, src= , dst, &rq); cf586021642d80 Chris Wilson 2021-06-17 86 if (!err) cf586021642d80 Chris Wilson 2021-06-17 87 continue; cf586021642d80 Chris Wilson 2021-06-17 88 = cf586021642d80 Chris Wilson 2021-06-17 89 if (err !=3D -EDEADLK && err= !=3D -EINTR && err !=3D -ERESTARTSYS) cf586021642d80 Chris Wilson 2021-06-17 90 pr_err("%ps failed, size: %= u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 91 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 92 i915_request_wait(rq, 0, HZ= ); cf586021642d80 Chris Wilson 2021-06-17 93 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 94 } cf586021642d80 Chris Wilson 2021-06-17 95 i915_gem_object_unpin_map(ds= t); cf586021642d80 Chris Wilson 2021-06-17 96 unpin_src: cf586021642d80 Chris Wilson 2021-06-17 97 i915_gem_object_unpin_map(sr= c); cf586021642d80 Chris Wilson 2021-06-17 98 } cf586021642d80 Chris Wilson 2021-06-17 99 if (err) cf586021642d80 Chris Wilson 2021-06-17 100 goto err_out; cf586021642d80 Chris Wilson 2021-06-17 101 = cf586021642d80 Chris Wilson 2021-06-17 @102 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 103 if (i915_request_wait(rq, 0,= HZ) < 0) { cf586021642d80 Chris Wilson 2021-06-17 104 pr_err("%ps timed out, size= : %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 105 err =3D -ETIME; cf586021642d80 Chris Wilson 2021-06-17 106 } cf586021642d80 Chris Wilson 2021-06-17 107 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 108 } cf586021642d80 Chris Wilson 2021-06-17 109 = cf586021642d80 Chris Wilson 2021-06-17 110 for (i =3D 0; !err && i < sz = / PAGE_SIZE; i++) { cf586021642d80 Chris Wilson 2021-06-17 111 int x =3D i * 1024 + i915_pr= andom_u32_max_state(1024, prng); cf586021642d80 Chris Wilson 2021-06-17 112 = cf586021642d80 Chris Wilson 2021-06-17 @113 if (vaddr[x] !=3D x) { cf586021642d80 Chris Wilson 2021-06-17 114 pr_err("%ps failed, size: %= u, offset: %zu\n", cf586021642d80 Chris Wilson 2021-06-17 115 fn, sz, x * sizeof(u= 32)); cf586021642d80 Chris Wilson 2021-06-17 116 igt_hexdump(vaddr + i * 102= 4, 4096); cf586021642d80 Chris Wilson 2021-06-17 117 err =3D -EINVAL; cf586021642d80 Chris Wilson 2021-06-17 118 } cf586021642d80 Chris Wilson 2021-06-17 119 } cf586021642d80 Chris Wilson 2021-06-17 120 = cf586021642d80 Chris Wilson 2021-06-17 121 i915_gem_object_unpin_map(dst= ); cf586021642d80 Chris Wilson 2021-06-17 122 i915_gem_object_unpin_map(src= ); cf586021642d80 Chris Wilson 2021-06-17 123 = cf586021642d80 Chris Wilson 2021-06-17 124 err_out: cf586021642d80 Chris Wilson 2021-06-17 125 i915_gem_object_put(dst); cf586021642d80 Chris Wilson 2021-06-17 126 err_free_src: cf586021642d80 Chris Wilson 2021-06-17 127 i915_gem_object_put(src); cf586021642d80 Chris Wilson 2021-06-17 128 = cf586021642d80 Chris Wilson 2021-06-17 129 return err; cf586021642d80 Chris Wilson 2021-06-17 130 } cf586021642d80 Chris Wilson 2021-06-17 131 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --===============9065188261135826408== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 0/4/82nZ4vUJAwA= --===============9065188261135826408==-- 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 X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2193C11F69 for ; Fri, 2 Jul 2021 08:45:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B737A61413 for ; Fri, 2 Jul 2021 08:45:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B737A61413 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3AD3289EB8; Fri, 2 Jul 2021 08:45:07 +0000 (UTC) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by gabe.freedesktop.org (Postfix) with ESMTPS id B8BAA89EA9; Fri, 2 Jul 2021 08:45:05 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 1628fU6C020705; Fri, 2 Jul 2021 08:44:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type; s=corp-2020-01-29; bh=ZIuH8D+EyX6mFkCkrL5fr3fRYqL0maMZ+VxGvfpCCd4=; b=r8YhU07wvPwkTeXab9u4EDENNubb61HstwR3RgAz5optsYszI5LUGEgVFwow2gOKn47S 25mceYQhz4fgGPOva9bCJUr0ZezUrjPgN/97CZBbAqt0uhNKLBuZxSfxuJjNrISpSSg4 mo/9GMUdOvYarMcHrEfd6Azq7HDqqVsUD9D7P+aceZpUgDuIeNAvDCPMQ2skGxwIldPt lYsmvtlxTFbMH6GyIFs/dzj+y1dNaqKPyICcT+5lvlogt6fBFDjNCt1rxvQXS5H2q86l qbOF3tWn1HLPgpBbG7jIqwrZg2BVvFbrJjkOvOyz+dEvsqWhGfe08ELv75Z/73jlUJ3y YA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 39gy5w38cb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:56 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1628a5P0185787; Fri, 2 Jul 2021 08:44:55 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3020.oracle.com with ESMTP id 39dv2ca05r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:55 +0000 Received: from aserp3020.oracle.com (aserp3020.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 1628fB8T001938; Fri, 2 Jul 2021 08:44:55 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 39dv2ca055-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 02 Jul 2021 08:44:55 +0000 Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 1628ip3r029218; Fri, 2 Jul 2021 08:44:51 GMT Received: from kadam (/102.222.70.252) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 02 Jul 2021 01:44:50 -0700 Date: Fri, 2 Jul 2021 11:44:43 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Chris Wilson Subject: [drm-intel:drm-intel-gt-next 8/14] drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. Message-ID: <202107020708.XXwacDfG-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-GUID: kEtmSQlaUxkKPbIqY2OEIX32z96Vda_h X-Proofpoint-ORIG-GUID: kEtmSQlaUxkKPbIqY2OEIX32z96Vda_h X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas =?iso-8859-1?Q?Hellstr=F6m?= , kbuild-all@lists.01.org, lkp@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Matthew Auld Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" tree: git://anongit.freedesktop.org/drm-intel drm-intel-gt-next head: 5cd57f676bb946a00275408f0dd0d75dbc466d25 commit: cf586021642d8017cde111b7dd1ba86224e9da51 [8/14] drm/i915/gt: Pipelined page migration config: x86_64-randconfig-m001-20210630 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. drivers/gpu/drm/i915/gt/selftest_migrate.c:113 copy() error: uninitialized symbol 'vaddr'. Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:182 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 171) vim +/rq +102 drivers/gpu/drm/i915/gt/selftest_migrate.c cf586021642d80 Chris Wilson 2021-06-17 32 static int copy(struct intel_migrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 33 int (*fn)(struct intel_migrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 34 struct i915_gem_ww_ctx *ww, cf586021642d80 Chris Wilson 2021-06-17 35 struct drm_i915_gem_object *src, cf586021642d80 Chris Wilson 2021-06-17 36 struct drm_i915_gem_object *dst, cf586021642d80 Chris Wilson 2021-06-17 37 struct i915_request **out), cf586021642d80 Chris Wilson 2021-06-17 38 u32 sz, struct rnd_state *prng) cf586021642d80 Chris Wilson 2021-06-17 39 { cf586021642d80 Chris Wilson 2021-06-17 40 struct drm_i915_private *i915 = migrate->context->engine->i915; cf586021642d80 Chris Wilson 2021-06-17 41 struct drm_i915_gem_object *src, *dst; cf586021642d80 Chris Wilson 2021-06-17 42 struct i915_request *rq; cf586021642d80 Chris Wilson 2021-06-17 43 struct i915_gem_ww_ctx ww; cf586021642d80 Chris Wilson 2021-06-17 44 u32 *vaddr; cf586021642d80 Chris Wilson 2021-06-17 45 int err = 0; One way to silence these warnings would be to initialize err = -EINVAL. Then Smatch would know that we goto err_out for an empty list. cf586021642d80 Chris Wilson 2021-06-17 46 int i; cf586021642d80 Chris Wilson 2021-06-17 47 cf586021642d80 Chris Wilson 2021-06-17 48 src = create_lmem_or_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 49 if (IS_ERR(src)) cf586021642d80 Chris Wilson 2021-06-17 50 return 0; cf586021642d80 Chris Wilson 2021-06-17 51 cf586021642d80 Chris Wilson 2021-06-17 52 dst = i915_gem_object_create_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 53 if (IS_ERR(dst)) cf586021642d80 Chris Wilson 2021-06-17 54 goto err_free_src; cf586021642d80 Chris Wilson 2021-06-17 55 cf586021642d80 Chris Wilson 2021-06-17 56 for_i915_gem_ww(&ww, err, true) { cf586021642d80 Chris Wilson 2021-06-17 57 err = i915_gem_object_lock(src, &ww); cf586021642d80 Chris Wilson 2021-06-17 58 if (err) cf586021642d80 Chris Wilson 2021-06-17 59 continue; cf586021642d80 Chris Wilson 2021-06-17 60 cf586021642d80 Chris Wilson 2021-06-17 61 err = i915_gem_object_lock(dst, &ww); cf586021642d80 Chris Wilson 2021-06-17 62 if (err) cf586021642d80 Chris Wilson 2021-06-17 63 continue; cf586021642d80 Chris Wilson 2021-06-17 64 cf586021642d80 Chris Wilson 2021-06-17 65 vaddr = i915_gem_object_pin_map(src, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 66 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 67 err = PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 68 continue; cf586021642d80 Chris Wilson 2021-06-17 69 } cf586021642d80 Chris Wilson 2021-06-17 70 cf586021642d80 Chris Wilson 2021-06-17 71 for (i = 0; i < sz / sizeof(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 72 vaddr[i] = i; cf586021642d80 Chris Wilson 2021-06-17 73 i915_gem_object_flush_map(src); cf586021642d80 Chris Wilson 2021-06-17 74 cf586021642d80 Chris Wilson 2021-06-17 75 vaddr = i915_gem_object_pin_map(dst, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 76 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 77 err = PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 78 goto unpin_src; cf586021642d80 Chris Wilson 2021-06-17 79 } cf586021642d80 Chris Wilson 2021-06-17 80 cf586021642d80 Chris Wilson 2021-06-17 81 for (i = 0; i < sz / sizeof(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 82 vaddr[i] = ~i; cf586021642d80 Chris Wilson 2021-06-17 83 i915_gem_object_flush_map(dst); cf586021642d80 Chris Wilson 2021-06-17 84 cf586021642d80 Chris Wilson 2021-06-17 85 err = fn(migrate, &ww, src, dst, &rq); cf586021642d80 Chris Wilson 2021-06-17 86 if (!err) cf586021642d80 Chris Wilson 2021-06-17 87 continue; Does fn() initialize "rq" on the success path? Anyway Smatch would complain anyway because it thinks the list could be empty or that we might hit and early continue for everything. cf586021642d80 Chris Wilson 2021-06-17 88 cf586021642d80 Chris Wilson 2021-06-17 89 if (err != -EDEADLK && err != -EINTR && err != -ERESTARTSYS) cf586021642d80 Chris Wilson 2021-06-17 90 pr_err("%ps failed, size: %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 91 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 92 i915_request_wait(rq, 0, HZ); cf586021642d80 Chris Wilson 2021-06-17 93 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 94 } cf586021642d80 Chris Wilson 2021-06-17 95 i915_gem_object_unpin_map(dst); cf586021642d80 Chris Wilson 2021-06-17 96 unpin_src: cf586021642d80 Chris Wilson 2021-06-17 97 i915_gem_object_unpin_map(src); cf586021642d80 Chris Wilson 2021-06-17 98 } cf586021642d80 Chris Wilson 2021-06-17 99 if (err) cf586021642d80 Chris Wilson 2021-06-17 100 goto err_out; cf586021642d80 Chris Wilson 2021-06-17 101 cf586021642d80 Chris Wilson 2021-06-17 @102 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 103 if (i915_request_wait(rq, 0, HZ) < 0) { cf586021642d80 Chris Wilson 2021-06-17 104 pr_err("%ps timed out, size: %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 105 err = -ETIME; cf586021642d80 Chris Wilson 2021-06-17 106 } cf586021642d80 Chris Wilson 2021-06-17 107 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 108 } cf586021642d80 Chris Wilson 2021-06-17 109 cf586021642d80 Chris Wilson 2021-06-17 110 for (i = 0; !err && i < sz / PAGE_SIZE; i++) { cf586021642d80 Chris Wilson 2021-06-17 111 int x = i * 1024 + i915_prandom_u32_max_state(1024, prng); cf586021642d80 Chris Wilson 2021-06-17 112 cf586021642d80 Chris Wilson 2021-06-17 @113 if (vaddr[x] != x) { cf586021642d80 Chris Wilson 2021-06-17 114 pr_err("%ps failed, size: %u, offset: %zu\n", cf586021642d80 Chris Wilson 2021-06-17 115 fn, sz, x * sizeof(u32)); cf586021642d80 Chris Wilson 2021-06-17 116 igt_hexdump(vaddr + i * 1024, 4096); cf586021642d80 Chris Wilson 2021-06-17 117 err = -EINVAL; cf586021642d80 Chris Wilson 2021-06-17 118 } cf586021642d80 Chris Wilson 2021-06-17 119 } cf586021642d80 Chris Wilson 2021-06-17 120 cf586021642d80 Chris Wilson 2021-06-17 121 i915_gem_object_unpin_map(dst); cf586021642d80 Chris Wilson 2021-06-17 122 i915_gem_object_unpin_map(src); cf586021642d80 Chris Wilson 2021-06-17 123 cf586021642d80 Chris Wilson 2021-06-17 124 err_out: cf586021642d80 Chris Wilson 2021-06-17 125 i915_gem_object_put(dst); cf586021642d80 Chris Wilson 2021-06-17 126 err_free_src: cf586021642d80 Chris Wilson 2021-06-17 127 i915_gem_object_put(src); cf586021642d80 Chris Wilson 2021-06-17 128 cf586021642d80 Chris Wilson 2021-06-17 129 return err; cf586021642d80 Chris Wilson 2021-06-17 130 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2940376647861079991==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: [drm-intel:drm-intel-gt-next 8/14] drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized symbol 'rq'. Date: Fri, 02 Jul 2021 11:44:43 +0300 Message-ID: <202107020708.XXwacDfG-lkp@intel.com> List-Id: --===============2940376647861079991== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: git://anongit.freedesktop.org/drm-intel drm-intel-gt-next head: 5cd57f676bb946a00275408f0dd0d75dbc466d25 commit: cf586021642d8017cde111b7dd1ba86224e9da51 [8/14] drm/i915/gt: Pipeli= ned page migration config: x86_64-randconfig-m001-20210630 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/gpu/drm/i915/gt/selftest_migrate.c:102 copy() error: uninitialized = symbol 'rq'. drivers/gpu/drm/i915/gt/selftest_migrate.c:113 copy() error: uninitialized = symbol 'vaddr'. Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:182 __i915_gem_object_lock() err= or: we previously assumed 'ww' could be null (see line 171) vim +/rq +102 drivers/gpu/drm/i915/gt/selftest_migrate.c cf586021642d80 Chris Wilson 2021-06-17 32 static int copy(struct intel_m= igrate *migrate, cf586021642d80 Chris Wilson 2021-06-17 33 int (*fn)(struct intel_migra= te *migrate, cf586021642d80 Chris Wilson 2021-06-17 34 struct i915_gem_ww_ctx *w= w, cf586021642d80 Chris Wilson 2021-06-17 35 struct drm_i915_gem_objec= t *src, cf586021642d80 Chris Wilson 2021-06-17 36 struct drm_i915_gem_objec= t *dst, cf586021642d80 Chris Wilson 2021-06-17 37 struct i915_request **out= ), cf586021642d80 Chris Wilson 2021-06-17 38 u32 sz, struct rnd_state *pr= ng) cf586021642d80 Chris Wilson 2021-06-17 39 { cf586021642d80 Chris Wilson 2021-06-17 40 struct drm_i915_private *i915= =3D migrate->context->engine->i915; cf586021642d80 Chris Wilson 2021-06-17 41 struct drm_i915_gem_object *s= rc, *dst; cf586021642d80 Chris Wilson 2021-06-17 42 struct i915_request *rq; cf586021642d80 Chris Wilson 2021-06-17 43 struct i915_gem_ww_ctx ww; cf586021642d80 Chris Wilson 2021-06-17 44 u32 *vaddr; cf586021642d80 Chris Wilson 2021-06-17 45 int err =3D 0; One way to silence these warnings would be to initialize err =3D -EINVAL. Then Smatch would know that we goto err_out for an empty list. cf586021642d80 Chris Wilson 2021-06-17 46 int i; cf586021642d80 Chris Wilson 2021-06-17 47 = cf586021642d80 Chris Wilson 2021-06-17 48 src =3D create_lmem_or_intern= al(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 49 if (IS_ERR(src)) cf586021642d80 Chris Wilson 2021-06-17 50 return 0; cf586021642d80 Chris Wilson 2021-06-17 51 = cf586021642d80 Chris Wilson 2021-06-17 52 dst =3D i915_gem_object_creat= e_internal(i915, sz); cf586021642d80 Chris Wilson 2021-06-17 53 if (IS_ERR(dst)) cf586021642d80 Chris Wilson 2021-06-17 54 goto err_free_src; cf586021642d80 Chris Wilson 2021-06-17 55 = cf586021642d80 Chris Wilson 2021-06-17 56 for_i915_gem_ww(&ww, err, tru= e) { cf586021642d80 Chris Wilson 2021-06-17 57 err =3D i915_gem_object_lock= (src, &ww); cf586021642d80 Chris Wilson 2021-06-17 58 if (err) cf586021642d80 Chris Wilson 2021-06-17 59 continue; cf586021642d80 Chris Wilson 2021-06-17 60 = cf586021642d80 Chris Wilson 2021-06-17 61 err =3D i915_gem_object_lock= (dst, &ww); cf586021642d80 Chris Wilson 2021-06-17 62 if (err) cf586021642d80 Chris Wilson 2021-06-17 63 continue; cf586021642d80 Chris Wilson 2021-06-17 64 = cf586021642d80 Chris Wilson 2021-06-17 65 vaddr =3D i915_gem_object_pi= n_map(src, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 66 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 67 err =3D PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 68 continue; cf586021642d80 Chris Wilson 2021-06-17 69 } cf586021642d80 Chris Wilson 2021-06-17 70 = cf586021642d80 Chris Wilson 2021-06-17 71 for (i =3D 0; i < sz / sizeo= f(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 72 vaddr[i] =3D i; cf586021642d80 Chris Wilson 2021-06-17 73 i915_gem_object_flush_map(sr= c); cf586021642d80 Chris Wilson 2021-06-17 74 = cf586021642d80 Chris Wilson 2021-06-17 75 vaddr =3D i915_gem_object_pi= n_map(dst, I915_MAP_WC); cf586021642d80 Chris Wilson 2021-06-17 76 if (IS_ERR(vaddr)) { cf586021642d80 Chris Wilson 2021-06-17 77 err =3D PTR_ERR(vaddr); cf586021642d80 Chris Wilson 2021-06-17 78 goto unpin_src; cf586021642d80 Chris Wilson 2021-06-17 79 } cf586021642d80 Chris Wilson 2021-06-17 80 = cf586021642d80 Chris Wilson 2021-06-17 81 for (i =3D 0; i < sz / sizeo= f(u32); i++) cf586021642d80 Chris Wilson 2021-06-17 82 vaddr[i] =3D ~i; cf586021642d80 Chris Wilson 2021-06-17 83 i915_gem_object_flush_map(ds= t); cf586021642d80 Chris Wilson 2021-06-17 84 = cf586021642d80 Chris Wilson 2021-06-17 85 err =3D fn(migrate, &ww, src= , dst, &rq); cf586021642d80 Chris Wilson 2021-06-17 86 if (!err) cf586021642d80 Chris Wilson 2021-06-17 87 continue; Does fn() initialize "rq" on the success path? Anyway Smatch would complain anyway because it thinks the list could be empty or that we might hit and early continue for everything. cf586021642d80 Chris Wilson 2021-06-17 88 = cf586021642d80 Chris Wilson 2021-06-17 89 if (err !=3D -EDEADLK && err= !=3D -EINTR && err !=3D -ERESTARTSYS) cf586021642d80 Chris Wilson 2021-06-17 90 pr_err("%ps failed, size: %= u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 91 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 92 i915_request_wait(rq, 0, HZ= ); cf586021642d80 Chris Wilson 2021-06-17 93 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 94 } cf586021642d80 Chris Wilson 2021-06-17 95 i915_gem_object_unpin_map(ds= t); cf586021642d80 Chris Wilson 2021-06-17 96 unpin_src: cf586021642d80 Chris Wilson 2021-06-17 97 i915_gem_object_unpin_map(sr= c); cf586021642d80 Chris Wilson 2021-06-17 98 } cf586021642d80 Chris Wilson 2021-06-17 99 if (err) cf586021642d80 Chris Wilson 2021-06-17 100 goto err_out; cf586021642d80 Chris Wilson 2021-06-17 101 = cf586021642d80 Chris Wilson 2021-06-17 @102 if (rq) { cf586021642d80 Chris Wilson 2021-06-17 103 if (i915_request_wait(rq, 0,= HZ) < 0) { cf586021642d80 Chris Wilson 2021-06-17 104 pr_err("%ps timed out, size= : %u\n", fn, sz); cf586021642d80 Chris Wilson 2021-06-17 105 err =3D -ETIME; cf586021642d80 Chris Wilson 2021-06-17 106 } cf586021642d80 Chris Wilson 2021-06-17 107 i915_request_put(rq); cf586021642d80 Chris Wilson 2021-06-17 108 } cf586021642d80 Chris Wilson 2021-06-17 109 = cf586021642d80 Chris Wilson 2021-06-17 110 for (i =3D 0; !err && i < sz = / PAGE_SIZE; i++) { cf586021642d80 Chris Wilson 2021-06-17 111 int x =3D i * 1024 + i915_pr= andom_u32_max_state(1024, prng); cf586021642d80 Chris Wilson 2021-06-17 112 = cf586021642d80 Chris Wilson 2021-06-17 @113 if (vaddr[x] !=3D x) { cf586021642d80 Chris Wilson 2021-06-17 114 pr_err("%ps failed, size: %= u, offset: %zu\n", cf586021642d80 Chris Wilson 2021-06-17 115 fn, sz, x * sizeof(u= 32)); cf586021642d80 Chris Wilson 2021-06-17 116 igt_hexdump(vaddr + i * 102= 4, 4096); cf586021642d80 Chris Wilson 2021-06-17 117 err =3D -EINVAL; cf586021642d80 Chris Wilson 2021-06-17 118 } cf586021642d80 Chris Wilson 2021-06-17 119 } cf586021642d80 Chris Wilson 2021-06-17 120 = cf586021642d80 Chris Wilson 2021-06-17 121 i915_gem_object_unpin_map(dst= ); cf586021642d80 Chris Wilson 2021-06-17 122 i915_gem_object_unpin_map(src= ); cf586021642d80 Chris Wilson 2021-06-17 123 = cf586021642d80 Chris Wilson 2021-06-17 124 err_out: cf586021642d80 Chris Wilson 2021-06-17 125 i915_gem_object_put(dst); cf586021642d80 Chris Wilson 2021-06-17 126 err_free_src: cf586021642d80 Chris Wilson 2021-06-17 127 i915_gem_object_put(src); cf586021642d80 Chris Wilson 2021-06-17 128 = cf586021642d80 Chris Wilson 2021-06-17 129 return err; cf586021642d80 Chris Wilson 2021-06-17 130 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --===============2940376647861079991==--