Explorar o código

qeth module size reduction.

Replace complex macro for s390dbf calls by equivalent function. This reduces
module size about 10% without visible performance impact.

Signed-off-by: Peter Tiedemann <ptiedem@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Peter Tiedemann %!s(int64=17) %!d(string=hai) anos
pai
achega
cd023216e6

+ 2 - 16
drivers/s390/net/qeth_core.h

@@ -72,22 +72,7 @@ struct qeth_dbf_info {
 	debug_sprintf_event(qeth_dbf[QETH_DBF_MSG].id, level, text)
 	debug_sprintf_event(qeth_dbf[QETH_DBF_MSG].id, level, text)
 
 
 #define QETH_DBF_TEXT_(name, level, text...) \
 #define QETH_DBF_TEXT_(name, level, text...) \
-	do { \
-		if (qeth_dbf_passes(qeth_dbf[QETH_DBF_##name].id, level)) { \
-			char *dbf_txt_buf = \
-				get_cpu_var(QETH_DBF_TXT_BUF); \
-			sprintf(dbf_txt_buf, text); \
-			debug_text_event(qeth_dbf[QETH_DBF_##name].id, \
-					level, dbf_txt_buf); \
-			put_cpu_var(QETH_DBF_TXT_BUF); \
-		} \
-	} while (0)
-
-/* Allow to sort out low debug levels early to avoid wasted sprints */
-static inline int qeth_dbf_passes(debug_info_t *dbf_grp, int level)
-{
-	return (level <= dbf_grp->level);
-}
+	qeth_dbf_longtext(QETH_DBF_##name, level, text)
 
 
 /**
 /**
  * some more debug stuff
  * some more debug stuff
@@ -894,6 +879,7 @@ void qeth_core_get_ethtool_stats(struct net_device *,
 				struct ethtool_stats *, u64 *);
 				struct ethtool_stats *, u64 *);
 void qeth_core_get_strings(struct net_device *, u32, u8 *);
 void qeth_core_get_strings(struct net_device *, u32, u8 *);
 void qeth_core_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
 void qeth_core_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
+void qeth_dbf_longtext(enum qeth_dbf_names dbf_nix, int level, char *text, ...);
 
 
 /* exports for OSN */
 /* exports for OSN */
 int qeth_osn_assist(struct net_device *, void *, int);
 int qeth_osn_assist(struct net_device *, void *, int);

+ 12 - 3
drivers/s390/net/qeth_core_main.c

@@ -26,9 +26,6 @@
 #include "qeth_core.h"
 #include "qeth_core.h"
 #include "qeth_core_offl.h"
 #include "qeth_core_offl.h"
 
 
-static DEFINE_PER_CPU(char[256], qeth_core_dbf_txt_buf);
-#define QETH_DBF_TXT_BUF qeth_core_dbf_txt_buf
-
 struct qeth_dbf_info qeth_dbf[QETH_DBF_INFOS] = {
 struct qeth_dbf_info qeth_dbf[QETH_DBF_INFOS] = {
 	/* define dbf - Name, Pages, Areas, Maxlen, Level, View, Handle */
 	/* define dbf - Name, Pages, Areas, Maxlen, Level, View, Handle */
 	/*                   N  P  A    M  L  V                      H  */
 	/*                   N  P  A    M  L  V                      H  */
@@ -4067,6 +4064,18 @@ static void qeth_unregister_dbf_views(void)
 	}
 	}
 }
 }
 
 
+void qeth_dbf_longtext(enum qeth_dbf_names dbf_nix, int level, char *text, ...)
+{
+	char dbf_txt_buf[32];
+
+	if (level > (qeth_dbf[dbf_nix].id)->level)
+		return;
+	snprintf(dbf_txt_buf, sizeof(dbf_txt_buf), text);
+	debug_text_event(qeth_dbf[dbf_nix].id, level, dbf_txt_buf);
+	
+}
+EXPORT_SYMBOL_GPL(qeth_dbf_longtext);
+
 static int qeth_register_dbf_views(void)
 static int qeth_register_dbf_views(void)
 {
 {
 	int ret;
 	int ret;

+ 0 - 3
drivers/s390/net/qeth_l2_main.c

@@ -22,9 +22,6 @@
 #include "qeth_core.h"
 #include "qeth_core.h"
 #include "qeth_core_offl.h"
 #include "qeth_core_offl.h"
 
 
-#define QETH_DBF_TXT_BUF qeth_l2_dbf_txt_buf
-static DEFINE_PER_CPU(char[256], qeth_l2_dbf_txt_buf);
-
 static int qeth_l2_set_offline(struct ccwgroup_device *);
 static int qeth_l2_set_offline(struct ccwgroup_device *);
 static int qeth_l2_stop(struct net_device *);
 static int qeth_l2_stop(struct net_device *);
 static int qeth_l2_send_delmac(struct qeth_card *, __u8 *);
 static int qeth_l2_send_delmac(struct qeth_card *, __u8 *);

+ 0 - 3
drivers/s390/net/qeth_l3.h

@@ -13,9 +13,6 @@
 
 
 #include "qeth_core.h"
 #include "qeth_core.h"
 
 
-#define QETH_DBF_TXT_BUF qeth_l3_dbf_txt_buf
-DECLARE_PER_CPU(char[256], qeth_l3_dbf_txt_buf);
-
 struct qeth_ipaddr {
 struct qeth_ipaddr {
 	struct list_head entry;
 	struct list_head entry;
 	enum qeth_ip_types type;
 	enum qeth_ip_types type;

+ 0 - 2
drivers/s390/net/qeth_l3_main.c

@@ -28,8 +28,6 @@
 #include "qeth_l3.h"
 #include "qeth_l3.h"
 #include "qeth_core_offl.h"
 #include "qeth_core_offl.h"
 
 
-DEFINE_PER_CPU(char[256], qeth_l3_dbf_txt_buf);
-
 static int qeth_l3_set_offline(struct ccwgroup_device *);
 static int qeth_l3_set_offline(struct ccwgroup_device *);
 static int qeth_l3_recover(void *);
 static int qeth_l3_recover(void *);
 static int qeth_l3_stop(struct net_device *);
 static int qeth_l3_stop(struct net_device *);