瀏覽代碼

Merge 3b88b74e9750c2db9169ebd81a279a56102ef38d on remote branch

Change-Id: I8037340f964ff9366e07143bf234b7ce3502f429
Linux Build Service Account 1 年之前
父節點
當前提交
aead81386f
共有 4 個文件被更改,包括 24 次插入4 次删除
  1. 3 0
      BUILD.bazel
  2. 2 1
      core/Kconfig
  3. 12 3
      core/rmnet_map_data.c
  4. 7 0
      define_modules.bzl

+ 3 - 0
BUILD.bazel

@@ -5,6 +5,9 @@ define_modules("pineapple", "consolidate")
 
 define_modules("pineapple", "gki")
 
+define_modules("blair", "consolidate")
+
+define_modules("blair", "gki")
 package(
     default_visibility = [
         "//visibility:public",

+ 2 - 1
core/Kconfig

@@ -4,6 +4,7 @@
 
 config RMNET_CORE
 	default m
+	depends on RMNET_MEM
 	select GRO_CELLS
 	help
 	  If you select this, you will enable the RMNET module which is used
@@ -20,7 +21,7 @@ config RMNET_CTL
 config RMNET_LA_PLATFORM
 	default y
 	bool "RMNET platform support"
-	depends on ARCH_PINEAPPLE
+	depends on ARCH_PINEAPPLE || ARCH_BLAIR
 	help
 	  Enable the functionality gated by the RMNET_LA_PLATFORM configuration
 	  in rmnet driver.

+ 12 - 3
core/rmnet_map_data.c

@@ -23,6 +23,7 @@
 #include "rmnet_private.h"
 #include "rmnet_handlers.h"
 #include "rmnet_ll.h"
+#include "rmnet_mem.h"
 
 #define RMNET_MAP_PKT_COPY_THRESHOLD 64
 #define RMNET_MAP_DEAGGR_SPACING  64
@@ -1333,7 +1334,7 @@ static void rmnet_free_agg_pages(struct rmnet_aggregation_state *state)
 
 	list_for_each_entry_safe(agg_page, idx, &state->agg_list, list) {
 		list_del(&agg_page->list);
-		put_page(agg_page->page);
+		rmnet_mem_put_page_entry(agg_page->page);
 		kfree(agg_page);
 	}
 
@@ -1345,6 +1346,8 @@ static struct page *rmnet_get_agg_pages(struct rmnet_aggregation_state *state)
 	struct rmnet_agg_page *agg_page;
 	struct page *page = NULL;
 	int i = 0;
+	int rc;
+	int pageorder = 2;
 
 	if (!(state->params.agg_features & RMNET_PAGE_RECYCLE))
 		goto alloc;
@@ -1369,7 +1372,9 @@ static struct page *rmnet_get_agg_pages(struct rmnet_aggregation_state *state)
 
 alloc:
 	if (!page) {
-		page =  __dev_alloc_pages(GFP_ATOMIC, state->agg_size_order);
+		page = rmnet_mem_get_pages_entry(GFP_ATOMIC, state->agg_size_order, &rc,
+						 &pageorder, RMNET_CORE_ID);
+
 		state->stats->ul_agg_alloc++;
 	}
 
@@ -1381,12 +1386,16 @@ __rmnet_alloc_agg_pages(struct rmnet_aggregation_state *state)
 {
 	struct rmnet_agg_page *agg_page;
 	struct page *page;
+	int rc;
+	int pageorder = 2;
 
 	agg_page = kzalloc(sizeof(*agg_page), GFP_ATOMIC);
 	if (!agg_page)
 		return NULL;
 
-	page = __dev_alloc_pages(GFP_ATOMIC, state->agg_size_order);
+	page = rmnet_mem_get_pages_entry(GFP_ATOMIC, state->agg_size_order, &rc,
+					 &pageorder, RMNET_CORE_ID);
+
 	if (!page) {
 		kfree(agg_page);
 		return NULL;

+ 7 - 0
define_modules.bzl

@@ -23,6 +23,11 @@ def define_modules(target, variant):
                     "core/rmnet_ctl_client.c",
                 ],
             },
+            "CONFIG_ARCH_BLAIR": {
+                True: [
+                    "core/rmnet_ctl_client.c",
+                ],
+            },
         },
         kernel_build = "//msm-kernel:{}".format(kernel_build_variant),
         deps = [
@@ -61,8 +66,10 @@ def define_modules(target, variant):
             ":rmnet_core_headers",
             ":{}_rmnet_ctl".format(kernel_build_variant),
             "//vendor/qcom/opensource/dataipa:{}_ipam".format(kernel_build_variant),
+            "//vendor/qcom/opensource/datarmnet-ext/mem:{}_rmnet_mem".format(kernel_build_variant),
             "//msm-kernel:all_headers",
             "//vendor/qcom/opensource/dataipa:include_headers",
+            "//vendor/qcom/opensource/datarmnet-ext/mem:rmnet_mem_headers",
         ],
     )