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=-16.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT 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 58E7AC43460 for ; Wed, 31 Mar 2021 16:40:25 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0000F60FDC for ; Wed, 31 Mar 2021 16:40:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0000F60FDC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 79B456B0080; Wed, 31 Mar 2021 12:40:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 771AC6B0081; Wed, 31 Mar 2021 12:40:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 614496B0082; Wed, 31 Mar 2021 12:40:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0219.hostedemail.com [216.40.44.219]) by kanga.kvack.org (Postfix) with ESMTP id 43C506B0080 for ; Wed, 31 Mar 2021 12:40:24 -0400 (EDT) Received: from smtpin31.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id EF9B84DB8 for ; Wed, 31 Mar 2021 16:40:23 +0000 (UTC) X-FDA: 77980732326.31.E5DEB8B Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by imf13.hostedemail.com (Postfix) with ESMTP id 741DBE000406 for ; Wed, 31 Mar 2021 16:40:22 +0000 (UTC) Received: by mail-pf1-f179.google.com with SMTP id c17so14965741pfn.6 for ; Wed, 31 Mar 2021 09:40:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+8O1Kepk8u9e69UHvhlXgHoRhJWdtX98dvXPlXkqqCI=; b=q3P49nJW+79IJcklQRQbFAQrBiv6GAqj1qHKy6Dy7k3WBIlSs873rpBGk+0BewE71Y n1BpDet1J3A4wqzQAo34sAi23UfFIbSt6yVZOHgUZAWr4KvCm07+7Gk4/EUGb/Y4bnh6 UGLdAh6I705R33tb1iTS68XrNL+bbE1dqV2l/NPLyoCnhBKxzFSA+kjZdIyZr/1UT0lt cLefNK7rt3KRFYCL8XTtBxGoENSFC5AmwQk0ojtnhBWn33tb9HopaZgabCyPE7ngJrIU pCbEcFuVNxthweekixEJdjGu5pMSB25jFqWQ/3gEM3tXnJoRV0Kd78XIkLb8m/e9lKx0 n2mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=+8O1Kepk8u9e69UHvhlXgHoRhJWdtX98dvXPlXkqqCI=; b=bqMtHiAncAdscVCoNCEasEN8VOPsxk4Nqi1nGC4DmG+Wc5RHajrUxHg37otP/dFXnY RvwDYqUa8VYX/L7xlbV6E8biLBb3IOsUtzprcr+pHpv2th94FAv6if8jmotOp3ygo+xm pb37ep9QpjoPxhIDzkqT/1BnfHXmCB5D7IPClkDoX5UiW3Okyix6/3EJ/6mnjrwxk8e2 5Wcy/F0afzNskhHpun9T0vHdnrtl8SQhua+6simURURX3M05d/hnz7M2Wc6Nc1HMlwpC lfJSyDlU7K8096MGyLlEHd9+rlNm3wdsujZjT3fKL2SL9O9eY3UOUThzb1glXIoIzIvI a9VA== X-Gm-Message-State: AOAM532VthPS1nB2pCd6GbRq8ImmDKPnsqMwqb2Gc6z/Liu0ucstSkZS cD1zhwDpBHnuDsztgAxtXFM= X-Google-Smtp-Source: ABdhPJxIF8btRcrQ285U2uiqWN2V4N5+MARH+tYgNKk/E876qf/BZkz33VGbkcfo1gdrHe9sUWkrlA== X-Received: by 2002:a63:2e87:: with SMTP id u129mr3999808pgu.107.1617208822452; Wed, 31 Mar 2021 09:40:22 -0700 (PDT) Received: from bbox-1.mtv.corp.google.com ([2620:15c:211:201:ec18:28bb:cb6b:bff3]) by smtp.gmail.com with ESMTPSA id n2sm2940880pga.57.2021.03.31.09.40.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Mar 2021 09:40:21 -0700 (PDT) From: Minchan Kim To: Andrew Morton Cc: linux-mm , LKML , joaodias@google.com, Minchan Kim , Matthew Wilcox , David Hildenbrand Subject: [PATCH] mm: use proper type for cma_[alloc|release] Date: Wed, 31 Mar 2021 09:40:18 -0700 Message-Id: <20210331164018.710560-1-minchan@kernel.org> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog MIME-Version: 1.0 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 741DBE000406 X-Stat-Signature: u8p4ord3sr7diuoirtoi3ay44h45yz4w Received-SPF: none (gmail.com>: No applicable sender policy available) receiver=imf13; identity=mailfrom; envelope-from=""; helo=mail-pf1-f179.google.com; client-ip=209.85.210.179 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1617208822-31412 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: size_t in cma_alloc is confusing since it makes people think it's byte count, not pages. Change it to unsigned long[1]. The unsigned int in cma_release is also not right so change it. Since we have unsigned long in cma_release, free_contig_range should also respect it. [1] 67a2e213e7e9, mm: cma: fix incorrect type conversion for size during = dma allocation Link: https://lore.kernel.org/linux-mm/20210324043434.GP1719932@casper.in= fradead.org/ Cc: Matthew Wilcox Cc: David Hildenbrand Signed-off-by: Minchan Kim --- include/linux/cma.h | 4 ++-- include/linux/gfp.h | 2 +- include/trace/events/cma.h | 22 +++++++++++----------- mm/cma.c | 17 +++++++++-------- mm/page_alloc.c | 6 +++--- 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/linux/cma.h b/include/linux/cma.h index 217999c8a762..53fd8c3cdbd0 100644 --- a/include/linux/cma.h +++ b/include/linux/cma.h @@ -44,9 +44,9 @@ extern int cma_init_reserved_mem(phys_addr_t base, phys= _addr_t size, unsigned int order_per_bit, const char *name, struct cma **res_cma); -extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned in= t align, +extern struct page *cma_alloc(struct cma *cma, unsigned long count, unsi= gned int align, bool no_warn); -extern bool cma_release(struct cma *cma, const struct page *pages, unsig= ned int count); +extern bool cma_release(struct cma *cma, const struct page *pages, unsig= ned long count); =20 extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), voi= d *data); #endif diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 0a88f84b08f4..529c27c6cb15 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -639,7 +639,7 @@ extern int alloc_contig_range(unsigned long start, un= signed long end, extern struct page *alloc_contig_pages(unsigned long nr_pages, gfp_t gfp= _mask, int nid, nodemask_t *nodemask); #endif -void free_contig_range(unsigned long pfn, unsigned int nr_pages); +void free_contig_range(unsigned long pfn, unsigned long nr_pages); =20 #ifdef CONFIG_CMA /* CMA stuff */ diff --git a/include/trace/events/cma.h b/include/trace/events/cma.h index 5cf385ae7c08..c3d354702cb0 100644 --- a/include/trace/events/cma.h +++ b/include/trace/events/cma.h @@ -11,7 +11,7 @@ DECLARE_EVENT_CLASS(cma_alloc_class, =20 TP_PROTO(const char *name, unsigned long pfn, const struct page *page, - unsigned int count, unsigned int align), + unsigned long count, unsigned int align), =20 TP_ARGS(name, pfn, page, count, align), =20 @@ -19,7 +19,7 @@ DECLARE_EVENT_CLASS(cma_alloc_class, __string(name, name) __field(unsigned long, pfn) __field(const struct page *, page) - __field(unsigned int, count) + __field(unsigned long, count) __field(unsigned int, align) ), =20 @@ -31,7 +31,7 @@ DECLARE_EVENT_CLASS(cma_alloc_class, __entry->align =3D align; ), =20 - TP_printk("name=3D%s pfn=3D%lx page=3D%p count=3D%u align=3D%u", + TP_printk("name=3D%s pfn=3D%lx page=3D%p count=3D%lu align=3D%u", __get_str(name), __entry->pfn, __entry->page, @@ -42,7 +42,7 @@ DECLARE_EVENT_CLASS(cma_alloc_class, TRACE_EVENT(cma_release, =20 TP_PROTO(const char *name, unsigned long pfn, const struct page *page, - unsigned int count), + unsigned long count), =20 TP_ARGS(name, pfn, page, count), =20 @@ -50,7 +50,7 @@ TRACE_EVENT(cma_release, __string(name, name) __field(unsigned long, pfn) __field(const struct page *, page) - __field(unsigned int, count) + __field(unsigned long, count) ), =20 TP_fast_assign( @@ -60,7 +60,7 @@ TRACE_EVENT(cma_release, __entry->count =3D count; ), =20 - TP_printk("name=3D%s pfn=3D%lx page=3D%p count=3D%u", + TP_printk("name=3D%s pfn=3D%lx page=3D%p count=3D%lu", __get_str(name), __entry->pfn, __entry->page, @@ -69,13 +69,13 @@ TRACE_EVENT(cma_release, =20 TRACE_EVENT(cma_alloc_start, =20 - TP_PROTO(const char *name, unsigned int count, unsigned int align), + TP_PROTO(const char *name, unsigned long count, unsigned int align), =20 TP_ARGS(name, count, align), =20 TP_STRUCT__entry( __string(name, name) - __field(unsigned int, count) + __field(unsigned long, count) __field(unsigned int, align) ), =20 @@ -85,7 +85,7 @@ TRACE_EVENT(cma_alloc_start, __entry->align =3D align; ), =20 - TP_printk("name=3D%s count=3D%u align=3D%u", + TP_printk("name=3D%s count=3D%lu align=3D%u", __get_str(name), __entry->count, __entry->align) @@ -94,7 +94,7 @@ TRACE_EVENT(cma_alloc_start, DEFINE_EVENT(cma_alloc_class, cma_alloc_finish, =20 TP_PROTO(const char *name, unsigned long pfn, const struct page *page, - unsigned int count, unsigned int align), + unsigned long count, unsigned int align), =20 TP_ARGS(name, pfn, page, count, align) ); @@ -102,7 +102,7 @@ DEFINE_EVENT(cma_alloc_class, cma_alloc_finish, DEFINE_EVENT(cma_alloc_class, cma_alloc_busy_retry, =20 TP_PROTO(const char *name, unsigned long pfn, const struct page *page, - unsigned int count, unsigned int align), + unsigned long count, unsigned int align), =20 TP_ARGS(name, pfn, page, count, align) ); diff --git a/mm/cma.c b/mm/cma.c index de6b9f01be53..f3bca4178c7f 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -80,7 +80,7 @@ static unsigned long cma_bitmap_pages_to_bits(const str= uct cma *cma, } =20 static void cma_clear_bitmap(struct cma *cma, unsigned long pfn, - unsigned int count) + unsigned long count) { unsigned long bitmap_no, bitmap_count; =20 @@ -423,21 +423,21 @@ static inline void cma_debug_show_areas(struct cma = *cma) { } * This function allocates part of contiguous memory on specific * contiguous memory area. */ -struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align= , - bool no_warn) +struct page *cma_alloc(struct cma *cma, unsigned long count, + unsigned int align, bool no_warn) { unsigned long mask, offset; unsigned long pfn =3D -1; unsigned long start =3D 0; unsigned long bitmap_maxno, bitmap_no, bitmap_count; - size_t i; + unsigned long i; struct page *page =3D NULL; int ret =3D -ENOMEM; =20 if (!cma || !cma->count || !cma->bitmap) goto out; =20 - pr_debug("%s(cma %p, count %zu, align %d)\n", __func__, (void *)cma, + pr_debug("%s(cma %p, count %lu, align %d)\n", __func__, (void *)cma, count, align); =20 if (!count) @@ -505,7 +505,7 @@ struct page *cma_alloc(struct cma *cma, size_t count,= unsigned int align, } =20 if (ret && !no_warn) { - pr_err_ratelimited("%s: %s: alloc failed, req-size: %zu pages, ret: %d= \n", + pr_err_ratelimited("%s: %s: alloc failed, req-size: %lu pages, ret: %d= \n", __func__, cma->name, count, ret); cma_debug_show_areas(cma); } @@ -534,14 +534,15 @@ struct page *cma_alloc(struct cma *cma, size_t coun= t, unsigned int align, * It returns false when provided pages do not belong to contiguous area= and * true otherwise. */ -bool cma_release(struct cma *cma, const struct page *pages, unsigned int= count) +bool cma_release(struct cma *cma, const struct page *pages, + unsigned long count) { unsigned long pfn; =20 if (!cma || !pages) return false; =20 - pr_debug("%s(page %p, count %u)\n", __func__, (void *)pages, count); + pr_debug("%s(page %p, count %lu)\n", __func__, (void *)pages, count); =20 pfn =3D page_to_pfn(pages); =20 diff --git a/mm/page_alloc.c b/mm/page_alloc.c index c53fe4fa10bf..21540fb29b0d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8817,9 +8817,9 @@ struct page *alloc_contig_pages(unsigned long nr_pa= ges, gfp_t gfp_mask, } #endif /* CONFIG_CONTIG_ALLOC */ =20 -void free_contig_range(unsigned long pfn, unsigned int nr_pages) +void free_contig_range(unsigned long pfn, unsigned long nr_pages) { - unsigned int count =3D 0; + unsigned long count =3D 0; =20 for (; nr_pages--; pfn++) { struct page *page =3D pfn_to_page(pfn); @@ -8827,7 +8827,7 @@ void free_contig_range(unsigned long pfn, unsigned = int nr_pages) count +=3D page_count(page) !=3D 1; __free_page(page); } - WARN(count !=3D 0, "%d pages are still in use!\n", count); + WARN(count !=3D 0, "%lu pages are still in use!\n", count); } EXPORT_SYMBOL(free_contig_range); =20 --=20 2.31.0.208.g409f899ff0-goog