From patchwork Tue Jan 14 07:51:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: buddy.zhang@aliyun.com X-Patchwork-Id: 11331487 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7CAC14B7 for ; Tue, 14 Jan 2020 07:52:09 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B4014207FF for ; Tue, 14 Jan 2020 07:52:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=aliyun.com header.i=@aliyun.com header.b="PP4PqHcm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B4014207FF Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=aliyun.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E4CED8E0006; Tue, 14 Jan 2020 02:52:08 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id DFD758E0003; Tue, 14 Jan 2020 02:52:08 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D39418E0006; Tue, 14 Jan 2020 02:52:08 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0158.hostedemail.com [216.40.44.158]) by kanga.kvack.org (Postfix) with ESMTP id BF4358E0003 for ; Tue, 14 Jan 2020 02:52:08 -0500 (EST) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with SMTP id 679BC246B for ; Tue, 14 Jan 2020 07:52:08 +0000 (UTC) X-FDA: 76375471536.11.cough05_2fa928ffcee0f X-Spam-Summary: 2,0,0,ae1aa280609a4527,d41d8cd98f00b204,buddy.zhang@aliyun.com,:akpm@linux-foundation.org::linux-kernel@vger.kernel.org:buddy.zhang@aliyun.com,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1261:1345:1437:1534:1541:1711:1730:1747:1777:1792:2393:2559:2562:2693:3138:3139:3140:3141:3142:3352:3865:3867:3868:4250:4321:5007:6261:6653:7576:7901:7903:8957:10004:11026:11473:11658:11914:12043:12297:12555:12679:12895:12986:13069:13161:13229:13311:13357:14181:14384:14394:14721:21080:21094:21323:21324:21451:21627:21990:30029:30054,0,RBL:115.124.30.14:@aliyun.com:.lbl8.mailshell.net-62.50.2.100 64.100.201.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:23,LUA_SUMMARY:none X-HE-Tag: cough05_2fa928ffcee0f X-Filterd-Recvd-Size: 2608 Received: from out30-14.freemail.mail.aliyun.com (out30-14.freemail.mail.aliyun.com [115.124.30.14]) by imf27.hostedemail.com (Postfix) with ESMTP for ; Tue, 14 Jan 2020 07:52:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aliyun.com; s=s1024; t=1578988324; h=From:To:Subject:Date:Message-Id; bh=jxgZqhRqODMF32JvDFnrmQHe/NTijMN414mHW484aSE=; b=PP4PqHcmXqMwERZLpCZTnsa5Q2/qdmALwdLX4gBprk65OqkmpsBCGcGN9dWi7DkhxKF6tX6/W27kEIiFf2IPqnAkQ1XGCrnrvzVa4jX/ghfaKVdTbTnfrOsCj67K0uY3zptXcg5BnTZZcDNDxZefRr7bNQWigmgM284VXyrHzv8= X-Alimail-AntiSpam: AC=CONTINUE;BC=0.3761178|-1;CH=green;DM=CONTINUE|CONTINUE|true|0.476074-0.0241466-0.499779;DS=CONTINUE|ham_system_inform|0.201038-0.00517612-0.793786;FP=0|0|0|0|0|-1|-1|-1;HT=e01f04452;MF=buddy.zhang@aliyun.com;NM=1;PH=DS;RN=4;RT=4;SR=0;TI=SMTPD_---0TnhpXyc_1578988319; Received: from localhost.localdomain(mailfrom:buddy.zhang@aliyun.com fp:SMTPD_---0TnhpXyc_1578988319) by smtp.aliyun-inc.com(127.0.0.1); Tue, 14 Jan 2020 15:52:03 +0800 From: buddy.zhang@aliyun.com To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, BuddyZhang Subject: [PATCH] mm/cma.c: find a named CMA area by name Date: Tue, 14 Jan 2020 15:51:47 +0800 Message-Id: <20200114075147.30672-1-buddy.zhang@aliyun.com> X-Mailer: git-send-email 2.17.1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000051, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: BuddyZhang This function could help developer who want to find a special named CMA area. The CMA supports multiple named CMA areas, and the device could use or exclusive a special CAM arae via "cma_area" on "struct device". When probing, the device can setup special CMA area which find by "cma_find_by_name()". If device can't find named CMA area, "cma_find_by_name()" will return NULL, and device will used default CMA area. Signed-off-by: BuddyZhang Reported-by: kbuild test robot Reported-by: kbuild test robot --- mm/cma.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mm/cma.c b/mm/cma.c index be55d1988c67..b562557572c4 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -40,6 +40,18 @@ struct cma cma_areas[MAX_CMA_AREAS]; unsigned cma_area_count; static DEFINE_MUTEX(cma_mutex); +struct cma *cma_find_by_name(const char *name) +{ + int idx; + + for (idx = 0; idx < MAX_CMA_AREAS; idx++) { + if (cma_areas[idx].name && !strcmp(name, cma_areas[idx].name)) + return &cma_areas[idx]; + } + return NULL; +} +EXPORT_SYMBOL(cma_find_by_name) + phys_addr_t cma_get_base(const struct cma *cma) { return PFN_PHYS(cma->base_pfn);