modpost: factorize symbol pretty print in get_pretty_name().
authorQuentin Casasnovas <quentin.casasnovas@oracle.com>
Mon, 13 Apr 2015 11:13:34 +0000 (20:43 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 13 Apr 2015 11:33:00 +0000 (21:03 +0930)
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
scripts/mod/modpost.c

index 0f48f8b..c69681e 100644 (file)
@@ -1270,6 +1270,15 @@ static void print_section_list(const char * const list[20])
        fprintf(stderr, "\n");
 }
 
+static inline void get_pretty_name(int is_func, const char** name, const char** name_p)
+{
+       switch (is_func) {
+       case 0: *name = "variable"; *name_p = ""; break;
+       case 1: *name = "function"; *name_p = "()"; break;
+       default: *name = "(unknown reference)"; *name_p = ""; break;
+       }
+}
+
 /*
  * Print a warning about a section mismatch.
  * Try to find symbols near it so user can find it.
@@ -1289,21 +1298,13 @@ static void report_sec_mismatch(const char *modname,
        char *prl_from;
        char *prl_to;
 
-       switch (from_is_func) {
-       case 0: from = "variable"; from_p = "";   break;
-       case 1: from = "function"; from_p = "()"; break;
-       default: from = "(unknown reference)"; from_p = ""; break;
-       }
-       switch (to_is_func) {
-       case 0: to = "variable"; to_p = "";   break;
-       case 1: to = "function"; to_p = "()"; break;
-       default: to = "(unknown reference)"; to_p = ""; break;
-       }
-
        sec_mismatch_count++;
        if (!sec_mismatch_verbose)
                return;
 
+       get_pretty_name(from_is_func, &from, &from_p);
+       get_pretty_name(to_is_func, &to, &to_p);
+
        warn("%s(%s+0x%llx): Section mismatch in reference from the %s %s%s "
             "to the %s %s:%s%s\n",
             modname, fromsec, fromaddr, from, fromsym, from_p, to, tosec,