From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933945AbcJUOLr (ORCPT ); Fri, 21 Oct 2016 10:11:47 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:34367 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933641AbcJUOLk (ORCPT ); Fri, 21 Oct 2016 10:11:40 -0400 From: Tvrtko Ursulin X-Google-Original-From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Chris Wilson , Tvrtko Ursulin , Masahiro Yamada , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Tomasz Stanislawski , Matt Porter , Alexandre Bounine Subject: [PATCH 1/5] lib/scatterlist: Fix offset type in sg_alloc_table_from_pages Date: Fri, 21 Oct 2016 15:11:19 +0100 Message-Id: <1477059083-3500-2-git-send-email-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1477059083-3500-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1477059083-3500-1-git-send-email-tvrtko.ursulin@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tvrtko Ursulin Scatterlist entries have an unsigned int for the offset so correct the sg_alloc_table_from_pages function accordingly. Since these are offsets withing a page, unsigned int is wide enough. Also converts callers which were using unsigned long locally with the lower_32_bits annotation to make it explicitly clear what is happening. Signed-off-by: Tvrtko Ursulin Cc: Masahiro Yamada Cc: Pawel Osciak Cc: Marek Szyprowski Cc: Kyungmin Park Cc: Tomasz Stanislawski Cc: Matt Porter Cc: Alexandre Bounine Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/videobuf2-dma-contig.c | 4 ++-- drivers/rapidio/devices/rio_mport_cdev.c | 4 ++-- include/linux/scatterlist.h | 2 +- lib/scatterlist.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c index fb6a177be461..a3aac7533241 100644 --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c @@ -478,7 +478,7 @@ static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr, { struct vb2_dc_buf *buf; struct frame_vector *vec; - unsigned long offset; + unsigned int offset; int n_pages, i; int ret = 0; struct sg_table *sgt; @@ -506,7 +506,7 @@ static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr, buf->dev = dev; buf->dma_dir = dma_dir; - offset = vaddr & ~PAGE_MASK; + offset = lower_32_bits(vaddr & ~PAGE_MASK); vec = vb2_create_framevec(vaddr, size, dma_dir == DMA_FROM_DEVICE); if (IS_ERR(vec)) { ret = PTR_ERR(vec); diff --git a/drivers/rapidio/devices/rio_mport_cdev.c b/drivers/rapidio/devices/rio_mport_cdev.c index 436dfe871d32..f545cf20561f 100644 --- a/drivers/rapidio/devices/rio_mport_cdev.c +++ b/drivers/rapidio/devices/rio_mport_cdev.c @@ -876,10 +876,10 @@ rio_dma_transfer(struct file *filp, u32 transfer_mode, * offset within the internal buffer specified by handle parameter. */ if (xfer->loc_addr) { - unsigned long offset; + unsigned int offset; long pinned; - offset = (unsigned long)(uintptr_t)xfer->loc_addr & ~PAGE_MASK; + offset = lower_32_bits(xfer->loc_addr & ~PAGE_MASK); nr_pages = PAGE_ALIGN(xfer->length + offset) >> PAGE_SHIFT; page_list = kmalloc_array(nr_pages, diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index cb3c8fe6acd7..c981bee1a3ae 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h @@ -263,7 +263,7 @@ int __sg_alloc_table(struct sg_table *, unsigned int, unsigned int, int sg_alloc_table(struct sg_table *, unsigned int, gfp_t); int sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages, unsigned int n_pages, - unsigned long offset, unsigned long size, + unsigned int offset, unsigned long size, gfp_t gfp_mask); size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf, diff --git a/lib/scatterlist.c b/lib/scatterlist.c index 004fc70fc56a..e05e7fc98892 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -391,7 +391,7 @@ EXPORT_SYMBOL(sg_alloc_table); */ int sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages, unsigned int n_pages, - unsigned long offset, unsigned long size, + unsigned int offset, unsigned long size, gfp_t gfp_mask) { unsigned int chunks; -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/5] lib/scatterlist: Fix offset type in sg_alloc_table_from_pages Date: Fri, 21 Oct 2016 15:11:19 +0100 Message-ID: <1477059083-3500-2-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1477059083-3500-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF7886E02C for ; Fri, 21 Oct 2016 14:11:40 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id l131so5858830lfl.0 for ; Fri, 21 Oct 2016 07:11:40 -0700 (PDT) In-Reply-To: <1477059083-3500-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Tomasz Stanislawski , Pawel Osciak , linux-kernel@vger.kernel.org, Masahiro Yamada , Kyungmin Park , Matt Porter , Marek Szyprowski , Alexandre Bounine , linux-media@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNjYXR0ZXJs aXN0IGVudHJpZXMgaGF2ZSBhbiB1bnNpZ25lZCBpbnQgZm9yIHRoZSBvZmZzZXQgc28KY29ycmVj dCB0aGUgc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyBmdW5jdGlvbiBhY2NvcmRpbmdseS4KClNp bmNlIHRoZXNlIGFyZSBvZmZzZXRzIHdpdGhpbmcgYSBwYWdlLCB1bnNpZ25lZCBpbnQgaXMKd2lk ZSBlbm91Z2guCgpBbHNvIGNvbnZlcnRzIGNhbGxlcnMgd2hpY2ggd2VyZSB1c2luZyB1bnNpZ25l ZCBsb25nIGxvY2FsbHkKd2l0aCB0aGUgbG93ZXJfMzJfYml0cyBhbm5vdGF0aW9uIHRvIG1ha2Ug aXQgZXhwbGljaXRseQpjbGVhciB3aGF0IGlzIGhhcHBlbmluZy4KClNpZ25lZC1vZmYtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBNYXNhaGlybyBZYW1h ZGEgPHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQuY29tPgpDYzogUGF3ZWwgT3NjaWFrIDxwYXdl bEBvc2NpYWsuY29tPgpDYzogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcu Y29tPgpDYzogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KQ2M6IFRv bWFzeiBTdGFuaXNsYXdza2kgPHQuc3RhbmlzbGF3c0BzYW1zdW5nLmNvbT4KQ2M6IE1hdHQgUG9y dGVyIDxtcG9ydGVyQGtlcm5lbC5jcmFzaGluZy5vcmc+CkNjOiBBbGV4YW5kcmUgQm91bmluZSA8 YWxleGFuZHJlLmJvdW5pbmVAaWR0LmNvbT4KQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9y ZwpDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotLS0KIGRyaXZlcnMvbWVkaWEvdjRs Mi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMgfCA0ICsrLS0KIGRyaXZlcnMvcmFwaWRpby9k ZXZpY2VzL3Jpb19tcG9ydF9jZGV2LmMgICAgICAgfCA0ICsrLS0KIGluY2x1ZGUvbGludXgvc2Nh dHRlcmxpc3QuaCAgICAgICAgICAgICAgICAgICAgfCAyICstCiBsaWIvc2NhdHRlcmxpc3QuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3ZpZGVvYnVmMi1kbWEtY29udGlnLmMKaW5kZXggZmI2YTE3N2JlNDYxLi5hM2FhYzc1MzMyNDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGln LmMKKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYwpA QCAtNDc4LDcgKzQ3OCw3IEBAIHN0YXRpYyB2b2lkICp2YjJfZGNfZ2V0X3VzZXJwdHIoc3RydWN0 IGRldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIHZhZGRyLAogewogCXN0cnVjdCB2YjJfZGNfYnVm ICpidWY7CiAJc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjOwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0 OworCXVuc2lnbmVkIGludCBvZmZzZXQ7CiAJaW50IG5fcGFnZXMsIGk7CiAJaW50IHJldCA9IDA7 CiAJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGljIHZvaWQg KnZiMl9kY19nZXRfdXNlcnB0cihzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgdmFk ZHIsCiAJYnVmLT5kZXYgPSBkZXY7CiAJYnVmLT5kbWFfZGlyID0gZG1hX2RpcjsKIAotCW9mZnNl dCA9IHZhZGRyICYgflBBR0VfTUFTSzsKKwlvZmZzZXQgPSBsb3dlcl8zMl9iaXRzKHZhZGRyICYg flBBR0VfTUFTSyk7CiAJdmVjID0gdmIyX2NyZWF0ZV9mcmFtZXZlYyh2YWRkciwgc2l6ZSwgZG1h X2RpciA9PSBETUFfRlJPTV9ERVZJQ0UpOwogCWlmIChJU19FUlIodmVjKSkgewogCQlyZXQgPSBQ VFJfRVJSKHZlYyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3JhcGlkaW8vZGV2aWNlcy9yaW9fbXBv cnRfY2Rldi5jIGIvZHJpdmVycy9yYXBpZGlvL2RldmljZXMvcmlvX21wb3J0X2NkZXYuYwppbmRl eCA0MzZkZmU4NzFkMzIuLmY1NDVjZjIwNTYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9yYXBpZGlv L2RldmljZXMvcmlvX21wb3J0X2NkZXYuYworKysgYi9kcml2ZXJzL3JhcGlkaW8vZGV2aWNlcy9y aW9fbXBvcnRfY2Rldi5jCkBAIC04NzYsMTAgKzg3NiwxMCBAQCByaW9fZG1hX3RyYW5zZmVyKHN0 cnVjdCBmaWxlICpmaWxwLCB1MzIgdHJhbnNmZXJfbW9kZSwKIAkgKiBvZmZzZXQgd2l0aGluIHRo ZSBpbnRlcm5hbCBidWZmZXIgc3BlY2lmaWVkIGJ5IGhhbmRsZSBwYXJhbWV0ZXIuCiAJICovCiAJ aWYgKHhmZXItPmxvY19hZGRyKSB7Ci0JCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OworCQl1bnNpZ25l ZCBpbnQgb2Zmc2V0OwogCQlsb25nIHBpbm5lZDsKIAotCQlvZmZzZXQgPSAodW5zaWduZWQgbG9u ZykodWludHB0cl90KXhmZXItPmxvY19hZGRyICYgflBBR0VfTUFTSzsKKwkJb2Zmc2V0ID0gbG93 ZXJfMzJfYml0cyh4ZmVyLT5sb2NfYWRkciAmIH5QQUdFX01BU0spOwogCQlucl9wYWdlcyA9IFBB R0VfQUxJR04oeGZlci0+bGVuZ3RoICsgb2Zmc2V0KSA+PiBQQUdFX1NISUZUOwogCiAJCXBhZ2Vf bGlzdCA9IGttYWxsb2NfYXJyYXkobnJfcGFnZXMsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3NjYXR0ZXJsaXN0LmggYi9pbmNsdWRlL2xpbnV4L3NjYXR0ZXJsaXN0LmgKaW5kZXggY2IzYzhm ZTZhY2Q3Li5jOTgxYmVlMWEzYWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2NhdHRlcmxp c3QuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NjYXR0ZXJsaXN0LmgKQEAgLTI2Myw3ICsyNjMsNyBA QCBpbnQgX19zZ19hbGxvY190YWJsZShzdHJ1Y3Qgc2dfdGFibGUgKiwgdW5zaWduZWQgaW50LCB1 bnNpZ25lZCBpbnQsCiBpbnQgc2dfYWxsb2NfdGFibGUoc3RydWN0IHNnX3RhYmxlICosIHVuc2ln bmVkIGludCwgZ2ZwX3QpOwogaW50IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMoc3RydWN0IHNn X3RhYmxlICpzZ3QsCiAJc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IG5fcGFnZXMs Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwl1bnNpZ25lZCBp bnQgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCiAJZ2ZwX3QgZ2ZwX21hc2spOwogCiBzaXpl X3Qgc2dfY29weV9idWZmZXIoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsIHVuc2lnbmVkIGludCBu ZW50cywgdm9pZCAqYnVmLApkaWZmIC0tZ2l0IGEvbGliL3NjYXR0ZXJsaXN0LmMgYi9saWIvc2Nh dHRlcmxpc3QuYwppbmRleCAwMDRmYzcwZmM1NmEuLmUwNWU3ZmM5ODg5MiAxMDA2NDQKLS0tIGEv bGliL3NjYXR0ZXJsaXN0LmMKKysrIGIvbGliL3NjYXR0ZXJsaXN0LmMKQEAgLTM5MSw3ICszOTEs NyBAQCBFWFBPUlRfU1lNQk9MKHNnX2FsbG9jX3RhYmxlKTsKICAqLwogaW50IHNnX2FsbG9jX3Rh YmxlX2Zyb21fcGFnZXMoc3RydWN0IHNnX3RhYmxlICpzZ3QsCiAJc3RydWN0IHBhZ2UgKipwYWdl cywgdW5zaWduZWQgaW50IG5fcGFnZXMsCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVk IGxvbmcgc2l6ZSwKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCiAJ Z2ZwX3QgZ2ZwX21hc2spCiB7CiAJdW5zaWduZWQgaW50IGNodW5rczsKLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK