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=-9.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,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 1FD2CC33CB3 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 D4354206B7 for ; Thu, 16 Jan 2020 10:13:50 +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 D4354206B7 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) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E5E08E003F; Thu, 16 Jan 2020 05:13:50 -0500 (EST) 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-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-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(+) 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); base-commit: 5b483a1a0ea1ab19a5734051c9692c2cfabe1327 -- 2.17.1