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 9A6DCC33CB1 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 55469207FF 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 55469207FF 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) Received: by kanga.kvack.org (Postfix, from userid 40) id DFD758E0003; Tue, 14 Jan 2020 02:52:08 -0500 (EST) 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-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-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 --- 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); -- 2.17.1