From 49c9c9fc1b37610a87fe3cf9f5e7b5785672264d Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 30 Jan 2011 19:15:54 -0600 Subject: Short circuit add module if it already exists in image Rather than go through all the hoops, check if the module has already been added by looking for its file path and skip the addition early if we can. This helps especially in modules with many recursive dependencies, and is most noticable when generating a full image with many modules. Signed-off-by: Dan McGee --- functions | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'functions') diff --git a/functions b/functions index 96d5fe2..334938b 100644 --- a/functions +++ b/functions @@ -171,9 +171,13 @@ add_module () #find pattern - replace _ with [-_] to match either fil="${m//_/[-_]}" - msg " adding module ${fil}" found=0 for path in $(find "${MODULEDIR}" -type f -name "${fil}.ko" -or -name "${fil}.ko.gz"); do + #skip expensive stuff if this module has already been added + if grep -q "file ${path} " "${FILELIST}"; then + found=1 + continue + fi #get needed firmware files for fw in $(/sbin/modinfo -F firmware "${path}"); do [ -f "/lib/firmware/$fw" ] && add_file "/lib/firmware/$fw" @@ -186,6 +190,7 @@ add_module () fi done HAS_MODULES="y" + msg " adding module ${fil}" add_file "${path}" && found=1 done if [ ${found} -eq 1 ]; then -- cgit v1.2.3-24-g4f1b