From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kees Cook Subject: [PATCH] drm/i915: Convert timers to use timer_setup() Date: Mon, 16 Oct 2017 15:55:19 -0700 Message-ID: <20171016225519.GA99023@beast> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SW4gcHJlcGFyYXRpb24gZm9yIHVuY29uZGl0aW9uYWxseSBwYXNzaW5nIHRoZSBzdHJ1Y3QgdGlt ZXJfbGlzdCBwb2ludGVyIHRvCmFsbCB0aW1lciBjYWxsYmFja3MsIHN3aXRjaCB0byB1c2luZyB0 aGUgbmV3IHRpbWVyX3NldHVwKCkgYW5kIGZyb21fdGltZXIoKQp0byBwYXNzIHRoZSB0aW1lciBw b2ludGVyIGV4cGxpY2l0bHkuCgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRl bC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgpDYzog RGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBs aW51eC5pbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgpDYzogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KQ2M6IGludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKU2lnbmVkLW9mZi1ieTogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+ClJldmll d2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ ICMgZm9yIG1vY2tfZW5naW5lCi0tLQpUaGlzIHBhdGNoIGluY2x1ZGVzIGFkZGl0aW9uYWwgdGlt ZXJzIHNpbmNlIHRoZSBsYXN0IHRpbWUgaXQgd2FzIHNlbnQuCi0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zd19mZW5jZS5jICAgICAgICAgfCAgOCArKystLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyAgICAgfCAxOCArKysrKysrKy0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jIHwgIDggKysrLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCmluZGV4IGNhMzNjYzA4Y2IwNy4uZThjYTY3 YTEyOWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCkBAIC0zNjksOSArMzY5 LDkgQEAgc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiIHsKIAlzdHJ1Y3QgaXJxX3dvcmsgd29y azsKIH07CiAKLXN0YXRpYyB2b2lkIHRpbWVyX2k5MTVfc3dfZmVuY2Vfd2FrZSh1bnNpZ25lZCBs b25nIGRhdGEpCitzdGF0aWMgdm9pZCB0aW1lcl9pOTE1X3N3X2ZlbmNlX3dha2Uoc3RydWN0IHRp bWVyX2xpc3QgKnQpCiB7Ci0Jc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiICpjYiA9IChzdHJ1 Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgKilkYXRhOworCXN0cnVjdCBpOTE1X3N3X2RtYV9mZW5j ZV9jYiAqY2IgPSBmcm9tX3RpbWVyKGNiLCB0LCB0aW1lcik7CiAJc3RydWN0IGk5MTVfc3dfZmVu Y2UgKmZlbmNlOwogCiAJZmVuY2UgPSB4Y2hnKCZjYi0+ZmVuY2UsIE5VTEwpOwpAQCAtNDM0LDkg KzQzNCw3IEBAIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZShzdHJ1Y3QgaTkxNV9z d19mZW5jZSAqZmVuY2UsCiAJaTkxNV9zd19mZW5jZV9hd2FpdChmZW5jZSk7CiAKIAljYi0+ZG1h ID0gTlVMTDsKLQlfX3NldHVwX3RpbWVyKCZjYi0+dGltZXIsCi0JCSAgICAgIHRpbWVyX2k5MTVf c3dfZmVuY2Vfd2FrZSwgKHVuc2lnbmVkIGxvbmcpY2IsCi0JCSAgICAgIFRJTUVSX0lSUVNBRkUp OworCXRpbWVyX3NldHVwKCZjYi0+dGltZXIsIHRpbWVyX2k5MTVfc3dfZmVuY2Vfd2FrZSwgVElN RVJfSVJRU0FGRSk7CiAJaW5pdF9pcnFfd29yaygmY2ItPndvcmssIGlycV9pOTE1X3N3X2ZlbmNl X3dvcmspOwogCWlmICh0aW1lb3V0KSB7CiAJCWNiLT5kbWEgPSBkbWFfZmVuY2VfZ2V0KGRtYSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwppbmRleCAyOWM2MmQ0ODFj ZWYuLjQ4ZTFiYTAxY2NmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1i cy5jCkBAIC03NCw5ICs3NCwxMCBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBtaXNzZWRfYnJlYWRj cnVtYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc2V0X2JpdChlbmdpbmUtPmlk LCAmZW5naW5lLT5pOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncyk7CiB9CiAKLXN0YXRp YyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2hhbmdjaGVjayh1bnNpZ25lZCBsb25nIGRhdGEpCitz dGF0aWMgdm9pZCBpbnRlbF9icmVhZGNydW1ic19oYW5nY2hlY2soc3RydWN0IHRpbWVyX2xpc3Qg KnQpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKilkYXRhOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGZyb21f dGltZXIoZW5naW5lLCB0LAorCQkJCQkJICAgIGJyZWFkY3J1bWJzLmhhbmdjaGVjayk7CiAJc3Ry dWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7CiAKIAlpZiAo IWItPmlycV9hcm1lZCkKQEAgLTEwOCw5ICsxMDksMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYnJl YWRjcnVtYnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAl9CiB9CiAKLXN0YXRpYyB2 b2lkIGludGVsX2JyZWFkY3J1bWJzX2Zha2VfaXJxKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3N0YXRp YyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2Zha2VfaXJxKHN0cnVjdCB0aW1lcl9saXN0ICp0KQog ewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICopZGF0YTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBmcm9tX3RpbWVy KGVuZ2luZSwgdCwKKwkJCQkJCSAgICBicmVhZGNydW1icy5mYWtlX2lycSk7CiAJc3RydWN0IGlu dGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7CiAKIAkvKiBUaGUgdGlt ZXIgcGVyc2lzdHMgaW4gY2FzZSB3ZSBjYW5ub3QgZW5hYmxlIGludGVycnVwdHMsCkBAIC03ODcs MTIgKzc4OSw4IEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3Bpbl9sb2NrX2luaXQoJmItPnJiX2xvY2spOwogCXNw aW5fbG9ja19pbml0KCZiLT5pcnFfbG9jayk7CiAKLQlzZXR1cF90aW1lcigmYi0+ZmFrZV9pcnEs Ci0JCSAgICBpbnRlbF9icmVhZGNydW1ic19mYWtlX2lycSwKLQkJICAgICh1bnNpZ25lZCBsb25n KWVuZ2luZSk7Ci0Jc2V0dXBfdGltZXIoJmItPmhhbmdjaGVjaywKLQkJICAgIGludGVsX2JyZWFk Y3J1bWJzX2hhbmdjaGVjaywKLQkJICAgICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7CisJdGltZXJf c2V0dXAoJmItPmZha2VfaXJxLCBpbnRlbF9icmVhZGNydW1ic19mYWtlX2lycSwgMCk7CisJdGlt ZXJfc2V0dXAoJmItPmhhbmdjaGVjaywgaW50ZWxfYnJlYWRjcnVtYnNfaGFuZ2NoZWNrLCAwKTsK IAogCS8qIFNwYXduIGEgdGhyZWFkIHRvIHByb3ZpZGUgYSBjb21tb24gYm90dG9tLWhhbGYgZm9y IGFsbCBzaWduYWxzLgogCSAqIEFzIHRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGludGVyZmFjZSB3 ZSBjYW5ub3Qgc3RlYWwgdGhlIGN1cnJlbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL21vY2tfZW5naW5lLmMKaW5kZXggZmMwZmQ3NDk4Njg5Li4zMzFjMmIwOTg2OWUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCkBAIC0zMiw5ICsz Miw5IEBAIHN0YXRpYyBzdHJ1Y3QgbW9ja19yZXF1ZXN0ICpmaXJzdF9yZXF1ZXN0KHN0cnVjdCBt b2NrX2VuZ2luZSAqZW5naW5lKQogCQkJCQlsaW5rKTsKIH0KIAotc3RhdGljIHZvaWQgaHdfZGVs YXlfY29tcGxldGUodW5zaWduZWQgbG9uZyBkYXRhKQorc3RhdGljIHZvaWQgaHdfZGVsYXlfY29t cGxldGUoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiB7Ci0Jc3RydWN0IG1vY2tfZW5naW5lICplbmdp bmUgPSAodHlwZW9mKGVuZ2luZSkpZGF0YTsKKwlzdHJ1Y3QgbW9ja19lbmdpbmUgKmVuZ2luZSA9 IGZyb21fdGltZXIoZW5naW5lLCB0LCBod19kZWxheSk7CiAJc3RydWN0IG1vY2tfcmVxdWVzdCAq cmVxdWVzdDsKIAogCXNwaW5fbG9jaygmZW5naW5lLT5od19sb2NrKTsKQEAgLTE2MSw5ICsxNjEs NyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAogCS8qIGZha2UgaHcgcXVldWUgKi8KIAlzcGluX2xvY2tfaW5pdCgm ZW5naW5lLT5od19sb2NrKTsKLQlzZXR1cF90aW1lcigmZW5naW5lLT5od19kZWxheSwKLQkJICAg IGh3X2RlbGF5X2NvbXBsZXRlLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsKKwl0aW1l cl9zZXR1cCgmZW5naW5lLT5od19kZWxheSwgaHdfZGVsYXlfY29tcGxldGUsIDApOwogCUlOSVRf TElTVF9IRUFEKCZlbmdpbmUtPmh3X3F1ZXVlKTsKIAogCXJldHVybiAmZW5naW5lLT5iYXNlOwot LSAKMi43LjQKCgotLSAKS2VlcyBDb29rClBpeGVsIFNlY3VyaXR5Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757310AbdJPWzY (ORCPT ); Mon, 16 Oct 2017 18:55:24 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:54439 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756162AbdJPWzW (ORCPT ); Mon, 16 Oct 2017 18:55:22 -0400 X-Google-Smtp-Source: AOwi7QBJ8NqT7CiyDrA2bOYnhG4NeWkd3OCDwhfIoJSsYf3/StkI/2RPn840tfpMpZFxdWiXU5LxHw== Date: Mon, 16 Oct 2017 15:55:19 -0700 From: Kees Cook To: Daniel Vetter Cc: Jani Nikula , David Airlie , Chris Wilson , Joonas Lahtinen , Tvrtko Ursulin , Oscar Mateo , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/i915: Convert timers to use timer_setup() Message-ID: <20171016225519.GA99023@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: Daniel Vetter Cc: Jani Nikula Cc: David Airlie Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Tvrtko Ursulin Cc: Oscar Mateo Cc: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Kees Cook Reviewed-by: Joonas Lahtinen # for mock_engine --- This patch includes additional timers since the last time it was sent. --- drivers/gpu/drm/i915/i915_sw_fence.c | 8 +++----- drivers/gpu/drm/i915/intel_breadcrumbs.c | 18 ++++++++---------- drivers/gpu/drm/i915/selftests/mock_engine.c | 8 +++----- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c index ca33cc08cb07..e8ca67a129d2 100644 --- a/drivers/gpu/drm/i915/i915_sw_fence.c +++ b/drivers/gpu/drm/i915/i915_sw_fence.c @@ -369,9 +369,9 @@ struct i915_sw_dma_fence_cb { struct irq_work work; }; -static void timer_i915_sw_fence_wake(unsigned long data) +static void timer_i915_sw_fence_wake(struct timer_list *t) { - struct i915_sw_dma_fence_cb *cb = (struct i915_sw_dma_fence_cb *)data; + struct i915_sw_dma_fence_cb *cb = from_timer(cb, t, timer); struct i915_sw_fence *fence; fence = xchg(&cb->fence, NULL); @@ -434,9 +434,7 @@ int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence, i915_sw_fence_await(fence); cb->dma = NULL; - __setup_timer(&cb->timer, - timer_i915_sw_fence_wake, (unsigned long)cb, - TIMER_IRQSAFE); + timer_setup(&cb->timer, timer_i915_sw_fence_wake, TIMER_IRQSAFE); init_irq_work(&cb->work, irq_i915_sw_fence_work); if (timeout) { cb->dma = dma_fence_get(dma); diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c index 29c62d481cef..48e1ba01ccf8 100644 --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c @@ -74,9 +74,10 @@ static noinline void missed_breadcrumb(struct intel_engine_cs *engine) set_bit(engine->id, &engine->i915->gpu_error.missed_irq_rings); } -static void intel_breadcrumbs_hangcheck(unsigned long data) +static void intel_breadcrumbs_hangcheck(struct timer_list *t) { - struct intel_engine_cs *engine = (struct intel_engine_cs *)data; + struct intel_engine_cs *engine = from_timer(engine, t, + breadcrumbs.hangcheck); struct intel_breadcrumbs *b = &engine->breadcrumbs; if (!b->irq_armed) @@ -108,9 +109,10 @@ static void intel_breadcrumbs_hangcheck(unsigned long data) } } -static void intel_breadcrumbs_fake_irq(unsigned long data) +static void intel_breadcrumbs_fake_irq(struct timer_list *t) { - struct intel_engine_cs *engine = (struct intel_engine_cs *)data; + struct intel_engine_cs *engine = from_timer(engine, t, + breadcrumbs.fake_irq); struct intel_breadcrumbs *b = &engine->breadcrumbs; /* The timer persists in case we cannot enable interrupts, @@ -787,12 +789,8 @@ int intel_engine_init_breadcrumbs(struct intel_engine_cs *engine) spin_lock_init(&b->rb_lock); spin_lock_init(&b->irq_lock); - setup_timer(&b->fake_irq, - intel_breadcrumbs_fake_irq, - (unsigned long)engine); - setup_timer(&b->hangcheck, - intel_breadcrumbs_hangcheck, - (unsigned long)engine); + timer_setup(&b->fake_irq, intel_breadcrumbs_fake_irq, 0); + timer_setup(&b->hangcheck, intel_breadcrumbs_hangcheck, 0); /* Spawn a thread to provide a common bottom-half for all signals. * As this is an asynchronous interface we cannot steal the current diff --git a/drivers/gpu/drm/i915/selftests/mock_engine.c b/drivers/gpu/drm/i915/selftests/mock_engine.c index fc0fd7498689..331c2b09869e 100644 --- a/drivers/gpu/drm/i915/selftests/mock_engine.c +++ b/drivers/gpu/drm/i915/selftests/mock_engine.c @@ -32,9 +32,9 @@ static struct mock_request *first_request(struct mock_engine *engine) link); } -static void hw_delay_complete(unsigned long data) +static void hw_delay_complete(struct timer_list *t) { - struct mock_engine *engine = (typeof(engine))data; + struct mock_engine *engine = from_timer(engine, t, hw_delay); struct mock_request *request; spin_lock(&engine->hw_lock); @@ -161,9 +161,7 @@ struct intel_engine_cs *mock_engine(struct drm_i915_private *i915, /* fake hw queue */ spin_lock_init(&engine->hw_lock); - setup_timer(&engine->hw_delay, - hw_delay_complete, - (unsigned long)engine); + timer_setup(&engine->hw_delay, hw_delay_complete, 0); INIT_LIST_HEAD(&engine->hw_queue); return &engine->base; -- 2.7.4 -- Kees Cook Pixel Security