From patchwork Thu Jan 16 10:13:22 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: 11336443 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 7938B921 for ; Thu, 16 Jan 2020 10:13:51 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 465C924679 for ; Thu, 16 Jan 2020 10:13:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=aliyun.com header.i=@aliyun.com header.b="BcWjfhzB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 465C924679 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 85B038E0061; Thu, 16 Jan 2020 05:13:50 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7E5E08E003F; Thu, 16 Jan 2020 05:13:50 -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 6FAFC8E0061; Thu, 16 Jan 2020 05:13:50 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0224.hostedemail.com [216.40.44.224]) by kanga.kvack.org (Postfix) with ESMTP id 554DB8E003F for ; Thu, 16 Jan 2020 05:13:50 -0500 (EST) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with SMTP id E04601EF0 for ; Thu, 16 Jan 2020 10:13:49 +0000 (UTC) X-FDA: 76383086178.10.lock22_5b8a809b98309 X-Spam-Summary: 2,0,0,9b6bc7ef72e66de8,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:2282: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:12266:12297:12438:12555:12679:12895:13069:13161:13229:13311:13357:14181:14384:14394:14721:21080:21094:21323:21324:21365:21451:21627:21990:30029:30054,0,RBL:115.124.30.50:@aliyun.com:.lbl8.mailshell.net-62.18.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:24,LUA_SUMMARY:none X-HE-Tag: lock22_5b8a809b98309 X-Filterd-Recvd-Size: 2666 Received: from out30-50.freemail.mail.aliyun.com (out30-50.freemail.mail.aliyun.com [115.124.30.50]) by imf12.hostedemail.com (Postfix) with ESMTP for ; Thu, 16 Jan 2020 10:13:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aliyun.com; s=s1024; t=1579169626; h=From:To:Subject:Date:Message-Id; bh=EnNuzawY4KJzQgYRroonJlPa4WraXb+P5GGqwKdHdYY=; b=BcWjfhzBHElz1kTFEZ2M+IlVZ0Dp5kY7WZ1/lJ+3HkfEZkk0IWK/r90YBwpDKr1XnY8jdXyyU1zlvzPbhyGqZByUoEoHNiHNtnoCtixX2+SfQ+gftDWA3HxhbUNK3UkOdwBsbhiYunRvJBY0B5+DnMw5syXJn/gwW9dgG9xq6Pc= X-Alimail-AntiSpam: AC=CONTINUE;BC=0.3761178|-1;CH=green;DM=CONTINUE|CONTINUE|true|0.422712-0.0250836-0.552205;DS=CONTINUE|ham_system_inform|0.236951-0.00577149-0.757277;FP=0|0|0|0|0|-1|-1|-1;HT=e01f04396;MF=buddy.zhang@aliyun.com;NM=1;PH=DS;RN=4;RT=4;SR=0;TI=SMTPD_---0Tnt1dzE_1579169616; Received: from localhost.localdomain(mailfrom:buddy.zhang@aliyun.com fp:SMTPD_---0Tnt1dzE_1579169616) by smtp.aliyun-inc.com(127.0.0.1); Thu, 16 Jan 2020 18:13:45 +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: Thu, 16 Jan 2020 18:13:22 +0800 Message-Id: <20200116101322.17795-1-buddy.zhang@aliyun.com> X-Mailer: git-send-email 2.17.1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000017, 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 --- mm/cma.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) base-commit: 5b483a1a0ea1ab19a5734051c9692c2cfabe1327 diff --git a/mm/cma.c b/mm/cma.c index be55d1988c67..6581dabcaf34 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);