Patchwork %pI4 vs. NIPQUAD: %pI4 doing it wrong?

login
register
mail settings
Submitter Jay Vosburgh
Date Nov. 4, 2008, 1:05 a.m.
Message ID <15026.1225760729@death.nxdomain.ibm.com>
Download mbox | patch
Permalink /patch/7028/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Jay Vosburgh - Nov. 4, 2008, 1:05 a.m.
Running the latest net-next-2.6, I notice that %pI4 is
apparently printing IPv4 addresses incorrectly (and differently than the
NIPQUAD it replaced).

	The following is excerpted from the bonding driver's
/proc/net/bonding/bond0 status file:

[...]
ARP IP target/s (n.n.n.n form): 01.0.1.1 (10.0.1.1), 01.02.03.04 (10.20.30.40)

	The first (incorrect) values are from %pI4, the ones in
parentheses (which are correct) I added as a check using NIPQUAD with
this patch:


	Is anybody else seeing this, or is it just me?

	I'm working on an x86.

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julius Volz - Nov. 4, 2008, 1:11 a.m.
Hey Jay,

I noticed the same thing and Harvey already posted a fix - Dave just
applied it a second ago :)

Julius

On Tue, Nov 4, 2008 at 2:05 AM, Jay Vosburgh <fubar@us.ibm.com> wrote:
>
>        Running the latest net-next-2.6, I notice that %pI4 is
> apparently printing IPv4 addresses incorrectly (and differently than the
> NIPQUAD it replaced).
>
>        The following is excerpted from the bonding driver's
> /proc/net/bonding/bond0 status file:
>
> [...]
> ARP IP target/s (n.n.n.n form): 01.0.1.1 (10.0.1.1), 01.02.03.04 (10.20.30.40)
>
>        The first (incorrect) values are from %pI4, the ones in
> parentheses (which are correct) I added as a check using NIPQUAD with
> this patch:
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 56c823c..ced12ba 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -3289,7 +3289,9 @@ static void bond_info_show_master(struct seq_file *seq)
>                                continue;
>                        if (printed)
>                                seq_printf(seq, ",");
> -                       seq_printf(seq, " %pI4", &bond->params.arp_targets[i]);
> +                       seq_printf(seq, " %pI4 (%u.%u.%u.%u)",
> +                                  &bond->params.arp_targets[i],
> +                                  NIPQUAD(bond->params.arp_targets[i]));
>                        printed = 1;
>                }
>                seq_printf(seq, "\n");
>
>        Is anybody else seeing this, or is it just me?
>
>        I'm working on an x86.
>
>        -J
>
> ---
>        -Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 56c823c..ced12ba 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -3289,7 +3289,9 @@  static void bond_info_show_master(struct seq_file *seq)
 				continue;
 			if (printed)
 				seq_printf(seq, ",");
-			seq_printf(seq, " %pI4", &bond->params.arp_targets[i]);
+			seq_printf(seq, " %pI4 (%u.%u.%u.%u)",
+				   &bond->params.arp_targets[i],
+				   NIPQUAD(bond->params.arp_targets[i]));
 			printed = 1;
 		}
 		seq_printf(seq, "\n");