Thank you, i've applied this patch in svn r1688.
I've tested compiling against 2.6.21, 2.6.24, 2.6.27 - no problem.
best regards, Simon On Fri, Jun 04, 2010 at 04:18:57PM +0200, Sven Eckelmann wrote:
From: Joe Perches joe@perches.com
Remove the last uses of MAC_FMT
Signed-off-by: Joe Perches joe@perches.com [sven.eckelmann@gmx.de: Adapted for current batman-adv version] Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de
Marek, can you please test it with 2.6.21? It was rebased on top of "bonding and interface alternating"
batman-adv-kernelland/bat_printk.c | 50 +++++++++++++++++++++++++++++ batman-adv-kernelland/compat.h | 12 +++--- batman-adv-kernelland/main.c | 3 +- batman-adv-kernelland/translation-table.c | 24 ++----------- 4 files changed, 61 insertions(+), 28 deletions(-)
diff --git a/batman-adv-kernelland/bat_printk.c b/batman-adv-kernelland/bat_printk.c index 55c351a..4a02d7e 100644 --- a/batman-adv-kernelland/bat_printk.c +++ b/batman-adv-kernelland/bat_printk.c @@ -859,3 +859,53 @@ asmlinkage int bat_printk(const char *fmt, ...)
return printk("%s", buf); }
+/**
- sprintf - Format a string and place it in a buffer
- @buf: The buffer to place the result into
- @fmt: The format string to use
- @...: Arguments for the format string
- The function returns the number of characters written
- into @buf. Use snprintf() or scnprintf() in order to avoid
- buffer overflows.
- See the vsnprintf() documentation for format string extensions over C99.
- */
+int bat_sprintf(char *buf, const char *fmt, ...) +{
- va_list args;
- int i;
- va_start(args, fmt);
- i = bat_vsnprintf(buf, INT_MAX, fmt, args);
- va_end(args);
- return i;
+}
+/**
- snprintf - Format a string and place it in a buffer
- @buf: The buffer to place the result into
- @size: The size of the buffer, including the trailing null space
- @fmt: The format string to use
- @...: Arguments for the format string
- The return value is the number of characters which would be
- generated for the given input, excluding the trailing null,
- as per ISO C99. If the return is greater than or equal to
- @size, the resulting string is truncated.
- See the vsnprintf() documentation for format string extensions over C99.
- */
+int bat_snprintf(char *buf, size_t size, const char *fmt, ...) +{
- va_list args;
- int i;
- va_start(args, fmt);
- i = bat_vsnprintf(buf, size, fmt, args);
- va_end(args);
- return i;
+} diff --git a/batman-adv-kernelland/compat.h b/batman-adv-kernelland/compat.h index a211a36..614d116 100644 --- a/batman-adv-kernelland/compat.h +++ b/batman-adv-kernelland/compat.h @@ -74,12 +74,6 @@ static inline int skb_clone_writable(struct sk_buff *skb, unsigned int len)
#endif /* < KERNEL_VERSION(2, 6, 23) */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
-#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
-#endif /* < KERNEL_VERSION(2, 6, 24) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
#define strict_strtoul(cp, base, res) \ @@ -235,6 +229,12 @@ next_sibling: asmlinkage int bat_printk(const char *fmt, ...); #define printk bat_printk
+int bat_sprintf(char *buf, const char *fmt, ...); +#define sprintf bat_sprintf
+int bat_snprintf(char *buf, size_t size, const char *fmt, ...); +#define snprintf bat_snprintf
static inline struct net_device_stats *dev_get_stats(struct net_device *dev) { if (dev->get_stats) diff --git a/batman-adv-kernelland/main.c b/batman-adv-kernelland/main.c index c9132c0..20a0d54 100644 --- a/batman-adv-kernelland/main.c +++ b/batman-adv-kernelland/main.c @@ -227,8 +227,7 @@ void dec_module_count(void)
int addr_to_string(char *buff, uint8_t *addr) {
- return sprintf(buff, MAC_FMT,
addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
- return sprintf(buff, "%pM", addr);
}
/* returns 1 if they are the same originator */ diff --git a/batman-adv-kernelland/translation-table.c b/batman-adv-kernelland/translation-table.c index 009789e..8edc175 100644 --- a/batman-adv-kernelland/translation-table.c +++ b/batman-adv-kernelland/translation-table.c @@ -200,13 +200,8 @@ int hna_local_seq_print_text(struct seq_file *seq, void *offset) while (hash_iterate(hna_local_hash, &hashit)) { hna_local_entry = hashit.bucket->data;
pos += snprintf(buff + pos, 22, " * " MAC_FMT "\n",
hna_local_entry->addr[0],
hna_local_entry->addr[1],
hna_local_entry->addr[2],
hna_local_entry->addr[3],
hna_local_entry->addr[4],
hna_local_entry->addr[5]);
pos += snprintf(buff + pos, 22, " * %pM\n",
hna_local_entry->addr);
}
spin_unlock_irqrestore(&hna_local_hash_lock, flags);
@@ -418,19 +413,8 @@ int hna_global_seq_print_text(struct seq_file *seq, void *offset) hna_global_entry = hashit.bucket->data;
pos += snprintf(buff + pos, 44,
" * " MAC_FMT " via " MAC_FMT "\n",
hna_global_entry->addr[0],
hna_global_entry->addr[1],
hna_global_entry->addr[2],
hna_global_entry->addr[3],
hna_global_entry->addr[4],
hna_global_entry->addr[5],
hna_global_entry->orig_node->orig[0],
hna_global_entry->orig_node->orig[1],
hna_global_entry->orig_node->orig[2],
hna_global_entry->orig_node->orig[3],
hna_global_entry->orig_node->orig[4],
hna_global_entry->orig_node->orig[5]);
" * %pM via %pM\n", hna_global_entry->addr,
hna_global_entry->orig_node->orig);
}
spin_unlock_irqrestore(&hna_global_hash_lock, flags);
-- 1.7.1