X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e84fbded9840e445b7cb9f74b5a1ed80440a3f33..c1ae60e7df285725b5ba0b8050c58ec8bc664408:/package/madwifi/patches/200-no_debug.patch?ds=inline diff --git a/package/madwifi/patches/200-no_debug.patch b/package/madwifi/patches/200-no_debug.patch index 6a7392942..ed443893a 100644 --- a/package/madwifi/patches/200-no_debug.patch +++ b/package/madwifi/patches/200-no_debug.patch @@ -1,128 +1,160 @@ -diff -urN madwifi-ng-r2377-20070526.old/ath/if_ath.c madwifi-ng-r2377-20070526.dev/ath/if_ath.c ---- madwifi-ng-r2377-20070526.old/ath/if_ath.c 2007-05-26 18:51:09.199688976 +0200 -+++ madwifi-ng-r2377-20070526.dev/ath/if_ath.c 2007-05-26 18:51:09.207687760 +0200 -@@ -75,7 +75,7 @@ - #include - #endif - +--- a/ath/if_ath.c ++++ b/ath/if_ath.c +@@ -42,7 +42,6 @@ + * This software is derived from work of Atsushi Onoe; his contribution + * is greatly appreciated. + */ -#define AR_DEBUG -+#undef AR_DEBUG + #include "if_ath_debug.h" + #include "opt_ah.h" - #include "net80211/if_athproto.h" - #include "if_athvar.h" -@@ -368,7 +368,7 @@ - ath_keyprint(sc, __func__, ix, hk, mac); \ - } while (0) - #else /* defined(AR_DEBUG) */ --#define IFF_DUMPPKTS(sc, _m) netif_msg_dumppkts(&sc->sc_ic) -+#define IFF_DUMPPKTS(sc, _m) 0 - #define DPRINTF(sc, _m, _fmt, ...) - #define KEYPRINTF(sc, k, ix, mac) - #endif /* defined(AR_DEBUG) */ -diff -urN madwifi-ng-r2377-20070526.old/ath_rate/amrr/amrr.c madwifi-ng-r2377-20070526.dev/ath_rate/amrr/amrr.c ---- madwifi-ng-r2377-20070526.old/ath_rate/amrr/amrr.c 2007-05-21 19:33:26.000000000 +0200 -+++ madwifi-ng-r2377-20070526.dev/ath_rate/amrr/amrr.c 2007-05-26 18:51:09.208687608 +0200 -@@ -69,7 +69,7 @@ +@@ -368,8 +367,10 @@ static unsigned int ath_get_dfs_cac_time + static void ath_set_dfs_cac_time(struct ieee80211com *, unsigned int seconds); + + static unsigned int ath_test_radar(struct ieee80211com *); +-static unsigned int ath_dump_hal_map(struct ieee80211com *ic); ++#ifdef AR_DEBUG + ++static unsigned int ath_dump_hal_map(struct ieee80211com *ic); ++#endif + static u_int32_t ath_get_clamped_maxtxpower(struct ath_softc *sc); + static u_int32_t ath_set_clamped_maxtxpower(struct ath_softc *sc, + u_int32_t new_clamped_maxtxpower); +@@ -520,9 +521,11 @@ ath_attach(u_int16_t devid, struct net_d + u_int8_t csz; + + sc->devid = devid; ++#ifdef AR_DEBUG + ath_debug_global = (ath_debug & ATH_DEBUG_GLOBAL); + sc->sc_debug = (ath_debug & ~ATH_DEBUG_GLOBAL); + DPRINTF(sc, ATH_DEBUG_ANY, "%s: devid 0x%x\n", __func__, devid); ++#endif + + /* Allocate space for dynamically determined maximum VAP count */ + sc->sc_bslot = +@@ -1038,8 +1041,9 @@ ath_attach(u_int16_t devid, struct net_d + ic->ic_vap_delete = ath_vap_delete; + + ic->ic_test_radar = ath_test_radar; ++#ifdef AR_DEBUG + ic->ic_dump_hal_map = ath_dump_hal_map; +- ++#endif + ic->ic_set_dfs_testmode = ath_set_dfs_testmode; + ic->ic_get_dfs_testmode = ath_get_dfs_testmode; + +@@ -1297,12 +1301,14 @@ ath_vap_create(struct ieee80211com *ic, + /* If no default VAP debug flags are passed, allow a few to + * transfer down from the driver to new VAPs so we can have load + * time debugging for VAPs too. */ ++#ifdef AR_DEBUG + vap->iv_debug = 0 | + ((sc->sc_debug & ATH_DEBUG_RATE) ? IEEE80211_MSG_XRATE : 0) | + ((sc->sc_debug & ATH_DEBUG_XMIT) ? IEEE80211_MSG_OUTPUT : 0) | + ((sc->sc_debug & ATH_DEBUG_RECV) ? IEEE80211_MSG_INPUT : 0) | + 0 + ; ++#endif + } + ic->ic_debug = (sc->sc_default_ieee80211_debug & IEEE80211_MSG_IC); + +@@ -10496,9 +10502,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl + /* XXX validate? */ + sc->sc_ledpin = val; + break; ++#ifdef AR_DEBUG + case ATH_DEBUG: + sc->sc_debug = (val & ~ATH_DEBUG_GLOBAL); + ath_debug_global = (val & ATH_DEBUG_GLOBAL); ++#endif + break; + case ATH_TXANTENNA: + /* +@@ -10918,9 +10926,11 @@ ath_dynamic_sysctl_register(struct ath_s + } + + /* initialize values */ ++#ifdef AR_DEBUG + ath_debug_global = (ath_debug & ATH_DEBUG_GLOBAL); + sc->sc_debug = (ath_debug & ~ATH_DEBUG_GLOBAL); + sc->sc_default_ieee80211_debug = ieee80211_debug; ++#endif + sc->sc_txantenna = 0; /* default to auto-selection */ + sc->sc_txintrperiod = ATH_TXQ_INTR_PERIOD; + } +@@ -11762,6 +11772,7 @@ ath_test_radar(struct ieee80211com *ic) + } + + /* This is called by a private ioctl (iwpriv) to dump the HAL obfuscation table */ ++#ifdef AR_DEBUG + static unsigned int + ath_dump_hal_map(struct ieee80211com *ic) + { +@@ -11770,7 +11781,7 @@ ath_dump_hal_map(struct ieee80211com *ic + ath_hal_dump_map(sc->sc_ah); + return 0; + } +- ++#endif + /* If we are shutting down or blowing off the DFS channel availability check + * then we call this to stop the behavior before we take the rest of the + * necessary actions (such as a DFS reaction to radar). */ +--- a/ath_rate/amrr/amrr.c ++++ b/ath_rate/amrr/amrr.c +@@ -70,7 +70,9 @@ #include "amrr.h" --#define AMRR_DEBUG -+#undef AMRR_DEBUG ++#ifdef AR_DEBUG + #define AMRR_DEBUG ++#endif #ifdef AMRR_DEBUG #define DPRINTF(sc, _fmt, ...) do { \ if (sc->sc_debug & 0x10) \ -diff -urN madwifi-ng-r2377-20070526.old/ath_rate/minstrel/minstrel.c madwifi-ng-r2377-20070526.dev/ath_rate/minstrel/minstrel.c ---- madwifi-ng-r2377-20070526.old/ath_rate/minstrel/minstrel.c 2007-05-26 18:51:08.653771968 +0200 -+++ madwifi-ng-r2377-20070526.dev/ath_rate/minstrel/minstrel.c 2007-05-26 18:51:09.208687608 +0200 -@@ -116,7 +116,7 @@ +--- a/ath_rate/minstrel/minstrel.c ++++ b/ath_rate/minstrel/minstrel.c +@@ -117,7 +117,9 @@ #include "minstrel.h" --#define MINSTREL_DEBUG -+#undef MINSTREL_DEBUG ++#ifdef AR_DEBUG + #define MINSTREL_DEBUG ++#endif #ifdef MINSTREL_DEBUG enum { - ATH_DEBUG_RATE = 0x00000010 /* rate control */ -diff -urN madwifi-ng-r2377-20070526.old/ath_rate/onoe/onoe.c madwifi-ng-r2377-20070526.dev/ath_rate/onoe/onoe.c ---- madwifi-ng-r2377-20070526.old/ath_rate/onoe/onoe.c 2007-05-21 19:33:26.000000000 +0200 -+++ madwifi-ng-r2377-20070526.dev/ath_rate/onoe/onoe.c 2007-05-26 18:51:09.209687456 +0200 -@@ -65,7 +65,7 @@ + ATH_DEBUG_RATE = 0x00000010 /* rate control */ +--- a/ath_rate/onoe/onoe.c ++++ b/ath_rate/onoe/onoe.c +@@ -66,7 +66,9 @@ #include "onoe.h" --#define ONOE_DEBUG -+#undef ONOE_DEBUG ++#ifdef AR_DEBUG + #define ONOE_DEBUG ++#endif #ifdef ONOE_DEBUG enum { ATH_DEBUG_RATE = 0x00000010, /* rate control */ -diff -urN madwifi-ng-r2377-20070526.old/ath_rate/sample/sample.c madwifi-ng-r2377-20070526.dev/ath_rate/sample/sample.c ---- madwifi-ng-r2377-20070526.old/ath_rate/sample/sample.c 2007-05-21 19:33:26.000000000 +0200 -+++ madwifi-ng-r2377-20070526.dev/ath_rate/sample/sample.c 2007-05-26 18:51:09.209687456 +0200 -@@ -67,7 +67,7 @@ +--- a/ath_rate/sample/sample.c ++++ b/ath_rate/sample/sample.c +@@ -68,7 +68,9 @@ #include "sample.h" -#define SAMPLE_DEBUG -+#undef SAMPLE_DEBUG ++#ifdef AR_DEBUG ++#define SAMPLE_DEBUG ++#endif #ifdef SAMPLE_DEBUG enum { - ATH_DEBUG_NODE = 0x00080000, /* node management */ -diff -urN madwifi-ng-r2377-20070526.old/net80211/ieee80211_proto.c madwifi-ng-r2377-20070526.dev/net80211/ieee80211_proto.c ---- madwifi-ng-r2377-20070526.old/net80211/ieee80211_proto.c 2007-05-21 17:53:39.000000000 +0200 -+++ madwifi-ng-r2377-20070526.dev/net80211/ieee80211_proto.c 2007-05-26 18:51:09.210687304 +0200 -@@ -312,6 +312,7 @@ - } - EXPORT_SYMBOL(ieee80211_print_essid); - -+#ifdef IEEE80211_DEBUG - void - ieee80211_dump_pkt(struct ieee80211com *ic, - const u_int8_t *buf, int len, int rate, int rssi) -@@ -390,6 +391,7 @@ - } - } - EXPORT_SYMBOL(ieee80211_dump_pkt); -+#endif /* IEEE80211_DEBUG */ - - int - ieee80211_fix_rate(struct ieee80211_node *ni, int flags) -diff -urN madwifi-ng-r2377-20070526.old/net80211/ieee80211_proto.h madwifi-ng-r2377-20070526.dev/net80211/ieee80211_proto.h ---- madwifi-ng-r2377-20070526.old/net80211/ieee80211_proto.h 2007-01-30 05:01:29.000000000 +0100 -+++ madwifi-ng-r2377-20070526.dev/net80211/ieee80211_proto.h 2007-05-26 18:51:09.211687152 +0200 -@@ -247,7 +247,11 @@ - #endif - int ieee80211_new_state(struct ieee80211vap *, enum ieee80211_state, int); - void ieee80211_print_essid(const u_int8_t *, int); -+#ifdef IEEE80211_DEBUG - void ieee80211_dump_pkt(struct ieee80211com *, const u_int8_t *, int, int, int); -+#else -+#define ieee80211_dump_pkt(...) -+#endif - struct sk_buff *ieee80211_getcfframe(struct ieee80211vap *, int); - - /* -diff -urN madwifi-ng-r2377-20070526.old/net80211/ieee80211_var.h madwifi-ng-r2377-20070526.dev/net80211/ieee80211_var.h ---- madwifi-ng-r2377-20070526.old/net80211/ieee80211_var.h 2007-05-24 23:26:38.000000000 +0200 -+++ madwifi-ng-r2377-20070526.dev/net80211/ieee80211_var.h 2007-05-26 18:51:09.211687152 +0200 -@@ -35,8 +35,8 @@ - #ifndef _NET80211_IEEE80211_VAR_H_ - #define _NET80211_IEEE80211_VAR_H_ - --#define IEEE80211_DEBUG --#define IEEE80211_DEBUG_REFCNT /* Node reference count debugging */ -+#undef IEEE80211_DEBUG -+#undef IEEE80211_DEBUG_REFCNT /* Node reference count debugging */ - - /* Definitions for IEEE 802.11 drivers. */ - #include -diff -urN madwifi-ng-r2377-20070526.old/tools/do_multi.c madwifi-ng-r2377-20070526.dev/tools/do_multi.c ---- madwifi-ng-r2377-20070526.old/tools/do_multi.c 2007-05-26 18:51:08.203840368 +0200 -+++ madwifi-ng-r2377-20070526.dev/tools/do_multi.c 2007-05-26 18:51:09.212687000 +0200 -@@ -9,16 +9,20 @@ + ATH_DEBUG_RATE = 0x00000010, /* rate control */ +--- a/tools/do_multi.c ++++ b/tools/do_multi.c +@@ -10,16 +10,20 @@ main(int argc, char *argv[]) progname = basename(argv[0]); -+#if 0 ++#ifdef AR_DEBUG if(strcmp(progname, "80211debug") == 0) ret = a80211debug_init(argc, argv); +#endif @@ -132,31 +164,242 @@ diff -urN madwifi-ng-r2377-20070526.old/tools/do_multi.c madwifi-ng-r2377-200705 ret = athchans_init(argc, argv); if(strcmp(progname, "athctrl") == 0) ret = athctrl_init(argc, argv); -+#if 0 ++#ifdef AR_DEBUG if(strcmp(progname, "athdebug") == 0) ret = athdebug_init(argc, argv); +#endif if(strcmp(progname, "athkey") == 0) ret = athkey_init(argc, argv); if(strcmp(progname, "athstats") == 0) -diff -urN madwifi-ng-r2377-20070526.old/tools/Makefile madwifi-ng-r2377-20070526.dev/tools/Makefile ---- madwifi-ng-r2377-20070526.old/tools/Makefile 2007-05-26 18:51:08.203840368 +0200 -+++ madwifi-ng-r2377-20070526.dev/tools/Makefile 2007-05-26 18:51:09.212687000 +0200 -@@ -52,7 +52,7 @@ - - ifdef DOMULTI - OBJS= do_multi.o athstats.o 80211stats.o athkey.o athchans.o athctrl.o \ -- athdebug.o 80211debug.o wlanconfig.o -+ wlanconfig.o - ALL= ${OBJS} madwifi_multi - endif - -@@ -85,7 +85,7 @@ - ${CC} -c -o do_multi.o -DDOMULTI=1 ${ALL_CFLAGS} do_multi.c - madwifi_multi: - ${CC} -o madwifi_multi ${LDFLAGS} ${OBJS} -- for i in athstats 80211stats athkey athchans athctrl athdebug wlanconfig 80211debug; do \ -+ for i in athstats 80211stats athkey athchans athctrl wlanconfig; do \ - ln -s -f madwifi_multi $$i; \ - done +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -48,6 +48,8 @@ endif + + all: compile + ++DEBUG = -DAR_DEBUG ++ + ALLPROGS= athstats 80211stats athkey athchans athctrl \ + athdebug 80211debug wlanconfig ath_info + +@@ -55,7 +57,7 @@ OBJS= $(patsubst %,%.o,$(ALLPROGS)) + + INCS= -I. -I../ath -I$(HAL) -I$(TOP) -I$(ATH_HAL) + CFLAGS= -g -O2 -Wall +-ALL_CFLAGS= $(CFLAGS) $(INCS) ++ALL_CFLAGS= $(CFLAGS) $(INCS) $(DEBUG) + LDFLAGS= + + +--- a/net80211/ieee80211_linux.h ++++ b/net80211/ieee80211_linux.h +@@ -29,8 +29,6 @@ + #ifndef _NET80211_IEEE80211_LINUX_H_ + #define _NET80211_IEEE80211_LINUX_H_ + +-#define IEEE80211_DEBUG +-#define IEEE80211_DEBUG_REFCNT /* Node reference count debugging */ + /* #define ATH_DEBUG_SPINLOCKS */ /* announce before spinlocking */ + + #include +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -148,7 +148,8 @@ ATH_RATE= $(TOP)/ath_rate + TOOLS= $(TOP)/tools + + WARNINGS = -Werror +-COPTS+= $(WARNINGS) ++DEBUG = -DAR_DEBUG -DIEEE80211_DEBUG ++COPTS+= $(WARNINGS) $(DEBUG) + INCS= -include $(TOP)/include/compat.h -I$(TOP)/include + + # TARGET defines the target platform architecture. It must match one of +--- a/ath/if_ath_radar.c ++++ b/ath/if_ath_radar.c +@@ -19,8 +19,6 @@ + * $Id: if_ath_radar.c 2464 2007-06-15 22:51:56Z mtaylor $ + */ + #include "opt_ah.h" +- +-#define AR_DEBUG + #include "if_ath_debug.h" + + #ifndef AUTOCONF_INCLUDED +@@ -56,8 +54,6 @@ + #include + #endif + +-#define AR_DEBUG +- + #include "net80211/if_athproto.h" + #include "if_athvar.h" + +--- a/ath/if_ath_hal.h ++++ b/ath/if_ath_hal.h +@@ -1081,6 +1081,7 @@ static inline HAL_BOOL ath_hal_disable(s + + tail -f /var/log/messages | sed -f hal_unmangle.sed + */ ++#ifdef AR_DEBUG + static inline void ath_hal_dump_map(struct ath_hal *ah) + { + #ifdef CONFIG_KALLSYMS +@@ -1345,7 +1346,7 @@ static inline void ath_hal_dump_map(stru + #endif /* #ifndef CONFIG_KALLSYMS */ + + } +- ++#endif + #include "if_ath_hal_wrappers.h" + + #endif /* #ifndef _IF_ATH_HAL_H_ */ +--- a/net80211/ieee80211_var.h ++++ b/net80211/ieee80211_var.h +@@ -492,9 +492,10 @@ struct ieee80211com { + /* inject a fake radar signal -- used while on a 802.11h DFS channels */ + unsigned int (*ic_test_radar)(struct ieee80211com *); + ++#ifdef AR_DEBUG + /* dump HAL */ + unsigned int (*ic_dump_hal_map)(struct ieee80211com *); +- ++#endif + /* DFS channel availability check time (in seconds) */ + void (*ic_set_dfs_cac_time)(struct ieee80211com *, unsigned int); + unsigned int (*ic_get_dfs_cac_time)(struct ieee80211com *); +--- a/net80211/ieee80211_wireless.c ++++ b/net80211/ieee80211_wireless.c +@@ -1548,6 +1548,7 @@ ieee80211_get_txcont_power(struct net_de + return 0; + } + ++#ifdef AR_DEBUG + static int + ieee80211_ioctl_hal_map(struct net_device *dev, struct iw_request_info *info, + void *w, char *extra) +@@ -1558,7 +1559,7 @@ ieee80211_ioctl_hal_map(struct net_devic + params[0] = ic->ic_dump_hal_map(ic); + return 0; + } +- ++#endif + + static int + ieee80211_ioctl_radar(struct net_device *dev, struct iw_request_info *info, +@@ -5258,8 +5259,10 @@ static const struct iw_priv_args ieee802 + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getwmmparams" }, + { IEEE80211_IOCTL_RADAR, + 0, 0, "doth_radar" }, ++#ifdef AR_DEBUG + { IEEE80211_IOCTL_HALMAP, + 0, 0, "dump_hal_map" }, ++#endif + /* + * These depends on sub-ioctl support which added in version 12. + */ +@@ -5695,7 +5698,9 @@ static const iw_handler ieee80211_priv_h + set_priv(IEEE80211_IOCTL_SETMLME, ieee80211_ioctl_setmlme), + set_priv(IEEE80211_IOCTL_SETKEY, ieee80211_ioctl_setkey), + set_priv(IEEE80211_IOCTL_DELKEY, ieee80211_ioctl_delkey), ++#ifdef AR_DEBUG + set_priv(IEEE80211_IOCTL_HALMAP, ieee80211_ioctl_hal_map), ++#endif + set_priv(IEEE80211_IOCTL_ADDMAC, ieee80211_ioctl_addmac), + set_priv(IEEE80211_IOCTL_DELMAC, ieee80211_ioctl_delmac), + set_priv(IEEE80211_IOCTL_WDSADDMAC, ieee80211_ioctl_wdsmac), +--- a/ath/if_ath_debug.h ++++ b/ath/if_ath_debug.h +@@ -54,6 +54,10 @@ enum { + ATH_DEBUG_GLOBAL = (ATH_DEBUG_SKB|ATH_DEBUG_SKB_REF) + }; + ++#define EPRINTF(_sc, _fmt, ...) \ ++ printk(KERN_ERR "%s: %s: " _fmt, \ ++ SC_DEV_NAME(_sc), __func__, ## __VA_ARGS__) ++ + #ifdef AR_DEBUG + + /* DEBUG-ONLY DEFINITIONS */ +@@ -68,20 +72,9 @@ enum { + ath_keyprint((_sc), __func__, _ix, _hk, _mac); \ + } while (0) + +-#else /* #ifdef AR_DEBUG */ +- +-#define DFLAG_ISSET(sc, _m) 0 +-#define DPRINTF(sc, _m, _fmt, ...) +-#define KEYPRINTF(sc, k, ix, mac) +- +-#endif /* #ifdef AR_DEBUG */ + + #define IFF_DUMPPKTS(_sc, _m) DFLAG_ISSET((_sc), (_m)) + +-#define EPRINTF(_sc, _fmt, ...) \ +- printk(KERN_ERR "%s: %s: " _fmt, \ +- SC_DEV_NAME(_sc), __func__, ## __VA_ARGS__) +- + #define WPRINTF(_sc, _fmt, ...) \ + printk(KERN_WARNING "%s: %s: " _fmt, \ + SC_DEV_NAME(_sc), __func__, ## __VA_ARGS__) +@@ -89,5 +82,14 @@ enum { + #define IPRINTF(_sc, _fmt, ...) \ + printk(KERN_INFO "%s: %s: " _fmt, \ + SC_DEV_NAME(_sc), __func__, ## __VA_ARGS__) ++#else ++#define DFLAG_ISSET(sc, _m) 0 ++#define DPRINTF(sc, _m, _fmt, ...) ++#define KEYPRINTF(sc, k, ix, mac) ++#define WPRINTF(...) ++#define IPRINTF(...) ++#define IFF_DUMPPKTS(...) 0 ++ ++#endif + + #endif /* #ifndef _IF_ATH_DEBUG_H_ */ +--- a/net80211/ieee80211_node.c ++++ b/net80211/ieee80211_node.c +@@ -920,6 +920,9 @@ node_cleanup(struct ieee80211_node *ni) + ni->ni_rxkeyoff = 0; + } + ++#ifndef IEEE80211_DEBUG ++#define node_print_message(...) do {} while(0) ++#else + static void node_print_message( + u_int32_t flags, + int show_counter, +@@ -972,7 +975,7 @@ static void node_print_message( + adjusted_refcount); + va_end(args); + } +-EXPORT_SYMBOL(node_print_message); ++#endif + + static void + #ifdef IEEE80211_DEBUG_REFCNT +--- a/ath/if_ath_pci.c ++++ b/ath/if_ath_pci.c +@@ -134,8 +134,10 @@ ath_pci_probe(struct pci_dev *pdev, cons + u16 vdevice; + int i; + +- if (pci_enable_device(pdev)) ++ if (pci_enable_device(pdev)) { ++ printk(KERN_ERR "%s: failed to enable PCI device\n", dev_info); + return -EIO; ++ } + + /* XXX 32-bit addressing only */ + if (pci_set_dma_mask(pdev, 0xffffffff)) { +@@ -244,8 +246,10 @@ ath_pci_probe(struct pci_dev *pdev, cons + sc->aps_sc.sc_ledpin = 1; + } + +- if (ath_attach(vdevice, dev, NULL) != 0) ++ if ((i = ath_attach(vdevice, dev, NULL)) != 0) { ++ printk(KERN_ERR "%s: ath_attach failed: %d\n", dev_info, i); + goto bad4; ++ } + athname = ath_hal_probe(id->vendor, vdevice); + printk(KERN_INFO "%s: %s: %s: mem=0x%lx, irq=%d\n",