netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] infiniband: use %p6 for printing message ids
@ 2008-10-28 21:38 Harvey Harrison
  2008-10-28 22:00 ` Roland Dreier
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Harvey Harrison @ 2008-10-28 21:38 UTC (permalink / raw)
  To: David Miller; +Cc: Joe Perches, linux-netdev

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
---
 drivers/infiniband/core/sysfs.c         |   10 +---------
 drivers/infiniband/hw/mthca/mthca_mcg.c |   23 ++---------------------
 drivers/infiniband/ulp/srp/ib_srp.c     |   31 ++++---------------------------
 drivers/net/mlx4/mcg.c                  |   23 ++---------------------
 4 files changed, 9 insertions(+), 78 deletions(-)

diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
index 4d10421..e985193 100644
--- a/drivers/infiniband/core/sysfs.c
+++ b/drivers/infiniband/core/sysfs.c
@@ -262,15 +262,7 @@ static ssize_t show_port_gid(struct ib_port *p, struct port_attribute *attr,
 	if (ret)
 		return ret;
 
-	return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-		       be16_to_cpu(((__be16 *) gid.raw)[0]),
-		       be16_to_cpu(((__be16 *) gid.raw)[1]),
-		       be16_to_cpu(((__be16 *) gid.raw)[2]),
-		       be16_to_cpu(((__be16 *) gid.raw)[3]),
-		       be16_to_cpu(((__be16 *) gid.raw)[4]),
-		       be16_to_cpu(((__be16 *) gid.raw)[5]),
-		       be16_to_cpu(((__be16 *) gid.raw)[6]),
-		       be16_to_cpu(((__be16 *) gid.raw)[7]));
+	return sprintf(buf, "%p6\n", gid.raw);
 }
 
 static ssize_t show_port_pkey(struct ib_port *p, struct port_attribute *attr,
diff --git a/drivers/infiniband/hw/mthca/mthca_mcg.c b/drivers/infiniband/hw/mthca/mthca_mcg.c
index 3f5f948..693bed0 100644
--- a/drivers/infiniband/hw/mthca/mthca_mcg.c
+++ b/drivers/infiniband/hw/mthca/mthca_mcg.c
@@ -87,17 +87,7 @@ static int find_mgm(struct mthca_dev *dev,
 	}
 
 	if (0)
-		mthca_dbg(dev, "Hash for %04x:%04x:%04x:%04x:"
-			  "%04x:%04x:%04x:%04x is %04x\n",
-			  be16_to_cpu(((__be16 *) gid)[0]),
-			  be16_to_cpu(((__be16 *) gid)[1]),
-			  be16_to_cpu(((__be16 *) gid)[2]),
-			  be16_to_cpu(((__be16 *) gid)[3]),
-			  be16_to_cpu(((__be16 *) gid)[4]),
-			  be16_to_cpu(((__be16 *) gid)[5]),
-			  be16_to_cpu(((__be16 *) gid)[6]),
-			  be16_to_cpu(((__be16 *) gid)[7]),
-			  *hash);
+		mthca_dbg(dev, "Hash for %p6 is %04x\n", gid, *hash);
 
 	*index = *hash;
 	*prev  = -1;
@@ -264,16 +254,7 @@ int mthca_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
 		goto out;
 
 	if (index == -1) {
-		mthca_err(dev, "MGID %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x "
-			  "not found\n",
-			  be16_to_cpu(((__be16 *) gid->raw)[0]),
-			  be16_to_cpu(((__be16 *) gid->raw)[1]),
-			  be16_to_cpu(((__be16 *) gid->raw)[2]),
-			  be16_to_cpu(((__be16 *) gid->raw)[3]),
-			  be16_to_cpu(((__be16 *) gid->raw)[4]),
-			  be16_to_cpu(((__be16 *) gid->raw)[5]),
-			  be16_to_cpu(((__be16 *) gid->raw)[6]),
-			  be16_to_cpu(((__be16 *) gid->raw)[7]));
+		mthca_err(dev, "MGID %p6 not found\n", gid->raw);
 		err = -EINVAL;
 		goto out;
 	}
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 5b8b533..bc82531 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -1514,15 +1514,7 @@ static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
 	    target->state == SRP_TARGET_REMOVED)
 		return -ENODEV;
 
-	return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[0]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[1]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[2]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[3]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[4]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[5]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[6]),
-		       be16_to_cpu(((__be16 *) target->path.dgid.raw)[7]));
+	return sprintf(buf, "%p6\n", target->path.dgid.raw);
 }
 
 static ssize_t show_orig_dgid(struct device *dev,
@@ -1534,15 +1526,7 @@ static ssize_t show_orig_dgid(struct device *dev,
 	    target->state == SRP_TARGET_REMOVED)
 		return -ENODEV;
 
-	return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-		       be16_to_cpu(target->orig_dgid[0]),
-		       be16_to_cpu(target->orig_dgid[1]),
-		       be16_to_cpu(target->orig_dgid[2]),
-		       be16_to_cpu(target->orig_dgid[3]),
-		       be16_to_cpu(target->orig_dgid[4]),
-		       be16_to_cpu(target->orig_dgid[5]),
-		       be16_to_cpu(target->orig_dgid[6]),
-		       be16_to_cpu(target->orig_dgid[7]));
+	return sprintf(buf, "%p6\n", target->orig_dgid);
 }
 
 static ssize_t show_zero_req_lim(struct device *dev,
@@ -1883,19 +1867,12 @@ static ssize_t srp_create_target(struct device *dev,
 
 	shost_printk(KERN_DEBUG, target->scsi_host, PFX
 		     "new target: id_ext %016llx ioc_guid %016llx pkey %04x "
-		     "service_id %016llx dgid %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
+		     "service_id %016llx dgid %p6\n",
 	       (unsigned long long) be64_to_cpu(target->id_ext),
 	       (unsigned long long) be64_to_cpu(target->ioc_guid),
 	       be16_to_cpu(target->path.pkey),
 	       (unsigned long long) be64_to_cpu(target->service_id),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[0]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[2]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[4]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[6]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[8]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[10]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[12]),
-	       (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[14]));
+	       target->path.dgid.raw);
 
 	ret = srp_create_target_ib(target);
 	if (ret)
diff --git a/drivers/net/mlx4/mcg.c b/drivers/net/mlx4/mcg.c
index 592c01a..6f79e84 100644
--- a/drivers/net/mlx4/mcg.c
+++ b/drivers/net/mlx4/mcg.c
@@ -118,17 +118,7 @@ static int find_mgm(struct mlx4_dev *dev,
 		return err;
 
 	if (0)
-		mlx4_dbg(dev, "Hash for %04x:%04x:%04x:%04x:"
-			  "%04x:%04x:%04x:%04x is %04x\n",
-			  be16_to_cpu(((__be16 *) gid)[0]),
-			  be16_to_cpu(((__be16 *) gid)[1]),
-			  be16_to_cpu(((__be16 *) gid)[2]),
-			  be16_to_cpu(((__be16 *) gid)[3]),
-			  be16_to_cpu(((__be16 *) gid)[4]),
-			  be16_to_cpu(((__be16 *) gid)[5]),
-			  be16_to_cpu(((__be16 *) gid)[6]),
-			  be16_to_cpu(((__be16 *) gid)[7]),
-			  *hash);
+		mlx4_dbg(dev, "Hash for %p6 is %04x\n", gid, *hash);
 
 	*index = *hash;
 	*prev  = -1;
@@ -277,16 +267,7 @@ int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16])
 		goto out;
 
 	if (index == -1) {
-		mlx4_err(dev, "MGID %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x "
-			  "not found\n",
-			  be16_to_cpu(((__be16 *) gid)[0]),
-			  be16_to_cpu(((__be16 *) gid)[1]),
-			  be16_to_cpu(((__be16 *) gid)[2]),
-			  be16_to_cpu(((__be16 *) gid)[3]),
-			  be16_to_cpu(((__be16 *) gid)[4]),
-			  be16_to_cpu(((__be16 *) gid)[5]),
-			  be16_to_cpu(((__be16 *) gid)[6]),
-			  be16_to_cpu(((__be16 *) gid)[7]));
+		mlx4_err(dev, "MGID %p6 not found\n", gid);
 		err = -EINVAL;
 		goto out;
 	}
-- 
1.6.0.3.729.g6ea410




^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] infiniband: use %p6 for printing message ids
  2008-10-28 21:38 [PATCH] infiniband: use %p6 for printing message ids Harvey Harrison
@ 2008-10-28 22:00 ` Roland Dreier
  2008-10-28 23:02 ` Joe Perches
  2008-10-29  5:36 ` [PATCH] infiniband: use %p6 for printing message ids David Miller
  2 siblings, 0 replies; 11+ messages in thread
From: Roland Dreier @ 2008-10-28 22:00 UTC (permalink / raw)
  To: Harvey Harrison; +Cc: David Miller, Joe Perches, linux-netdev

Looks fine (once the p6 support goes in of course).  You could also look
at IPOIB_GID_FMT in drivers/infiniband/ulp/ipoib for further things
worth converting.  And I didn't notice if you already did it, but
drivers/net/mlx4 has lots of similar stuff to convert the same way as
you did for mthca.

Thanks,
  Roland

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] infiniband: use %p6 for printing message ids
  2008-10-28 21:38 [PATCH] infiniband: use %p6 for printing message ids Harvey Harrison
  2008-10-28 22:00 ` Roland Dreier
@ 2008-10-28 23:02 ` Joe Perches
  2008-10-28 23:07   ` Roland Dreier
  2008-10-29  5:36 ` [PATCH] infiniband: use %p6 for printing message ids David Miller
  2 siblings, 1 reply; 11+ messages in thread
From: Joe Perches @ 2008-10-28 23:02 UTC (permalink / raw)
  To: Harvey Harrison, Roland Dreier; +Cc: David Miller, linux-netdev

On Tue, 2008-10-28 at 14:38 -0700, Harvey Harrison wrote:
> diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
> index 4d10421..e985193 100644
> --- a/drivers/infiniband/core/sysfs.c
> +++ b/drivers/infiniband/core/sysfs.c
> @@ -262,15 +262,7 @@ static ssize_t show_port_gid(struct ib_port *p, struct port_attribute *attr,
>  	if (ret)
>  		return ret;
>  
> -	return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
> -		       be16_to_cpu(((__be16 *) gid.raw)[0]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[1]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[2]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[3]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[4]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[5]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[6]),
> -		       be16_to_cpu(((__be16 *) gid.raw)[7]));
> +	return sprintf(buf, "%p6\n", gid.raw);


I'm not sure any of these should be converted like this.
Infiniband gids are not IPv6 addresses.

I think a new %p<foo> type (maybe: IB) type should be defined for these.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] infiniband: use %p6 for printing message ids
  2008-10-28 23:02 ` Joe Perches
@ 2008-10-28 23:07   ` Roland Dreier
  2008-10-28 23:22     ` Joe Perches
  0 siblings, 1 reply; 11+ messages in thread
From: Roland Dreier @ 2008-10-28 23:07 UTC (permalink / raw)
  To: Joe Perches; +Cc: Harvey Harrison, David Miller, linux-netdev

 > I'm not sure any of these should be converted like this.
 > Infiniband gids are not IPv6 addresses.

Actually, they are.  The IB specification section 4.1 says:

 "A GID is a valid 128-bit IPv6 address (per RFC 2373) with additional
  properties / restrictions defined...."

and it makes sense to format an IB GID as an IPv6 address for display
(that's what the IB spec does; eg it mentions the "Multicast GID
FF02:0:0:0:0:0:0:1").

 - R.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] infiniband: use %p6 for printing message ids
  2008-10-28 23:07   ` Roland Dreier
@ 2008-10-28 23:22     ` Joe Perches
  2008-10-29  0:16       ` [ofa-general] ***SPAM*** [PATCH] infiniband: Add struct in6_addr addr to union ib_gib Joe Perches
  0 siblings, 1 reply; 11+ messages in thread
From: Joe Perches @ 2008-10-28 23:22 UTC (permalink / raw)
  To: Roland Dreier; +Cc: Harvey Harrison, David Miller, linux-netdev

On Tue, 2008-10-28 at 16:07 -0700, Roland Dreier wrote:
> > I'm not sure any of these should be converted like this.
>  > Infiniband gids are not IPv6 addresses.
> 
> Actually, they are.  The IB specification section 4.1 says:
> 
>  "A GID is a valid 128-bit IPv6 address (per RFC 2373) with additional
>   properties / restrictions defined...."
> 
> and it makes sense to format an IB GID as an IPv6 address for display
> (that's what the IB spec does; eg it mentions the "Multicast GID
> FF02:0:0:0:0:0:0:1").

Perhaps the union in ib_verbs

union ib_gid {
	u8	raw[16];
	struct {
		__be64	subnet_prefix;
		__be64	interface_id;
	} global;
};

could/should include a struct in6_addr?



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ofa-general] ***SPAM*** [PATCH] infiniband: Add struct in6_addr addr to union ib_gib
  2008-10-28 23:22     ` Joe Perches
@ 2008-10-29  0:16       ` Joe Perches
  2008-10-29  5:39         ` [ofa-general] " David Miller
  0 siblings, 1 reply; 11+ messages in thread
From: Joe Perches @ 2008-10-29  0:16 UTC (permalink / raw)
  To: Roland Dreier
  Cc: linux-netdev, David Miller, general, Sean Hefty, Harvey Harrison

ib_gid's can be print'd using the new %p6 facility

Signed-off-by: Joe Perches <joe@perches.com>

diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 936e333..464ed9d 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -47,6 +47,7 @@
 #include <linux/list.h>
 #include <linux/rwsem.h>
 #include <linux/scatterlist.h>
+#include <linux/in6.h>
 
 #include <asm/atomic.h>
 #include <asm/uaccess.h>
@@ -57,6 +58,7 @@ union ib_gid {
 		__be64	subnet_prefix;
 		__be64	interface_id;
 	} global;
+	struct in6_addr	addr;
 };
 
 enum rdma_node_type {

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] infiniband: use %p6 for printing message ids
  2008-10-28 21:38 [PATCH] infiniband: use %p6 for printing message ids Harvey Harrison
  2008-10-28 22:00 ` Roland Dreier
  2008-10-28 23:02 ` Joe Perches
@ 2008-10-29  5:36 ` David Miller
  2 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2008-10-29  5:36 UTC (permalink / raw)
  To: harvey.harrison; +Cc: joe, netdev

From: Harvey Harrison <harvey.harrison@gmail.com>
Date: Tue, 28 Oct 2008 14:38:21 -0700

> Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>

Applied, thanks!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ofa-general] Re: [PATCH] infiniband: Add struct in6_addr addr to union ib_gib
  2008-10-29  0:16       ` [ofa-general] ***SPAM*** [PATCH] infiniband: Add struct in6_addr addr to union ib_gib Joe Perches
@ 2008-10-29  5:39         ` David Miller
  2008-10-29  6:58           ` Joe Perches
  0 siblings, 1 reply; 11+ messages in thread
From: David Miller @ 2008-10-29  5:39 UTC (permalink / raw)
  To: joe; +Cc: netdev, rdreier, general, sean.hefty, harvey.harrison

From: Joe Perches <joe@perches.com>
Date: Tue, 28 Oct 2008 17:16:14 -0700

> ib_gid's can be print'd using the new %p6 facility
> 
> Signed-off-by: Joe Perches <joe@perches.com>

Joe, please provide something relative to Harvey's patches
so that this new union member gets passed into the %p6
uses.

Thanks!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ofa-general] Re: [PATCH] infiniband: Add struct in6_addr addr to union ib_gib
  2008-10-29  5:39         ` [ofa-general] " David Miller
@ 2008-10-29  6:58           ` Joe Perches
  2008-10-29  8:39             ` David Miller
  2008-10-29 18:15             ` Roland Dreier
  0 siblings, 2 replies; 11+ messages in thread
From: Joe Perches @ 2008-10-29  6:58 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, rdreier, general, sean.hefty, harvey.harrison

On Tue, 2008-10-28 at 22:39 -0700, David Miller wrote:
> From: Joe Perches <joe@perches.com>
> Date: Tue, 28 Oct 2008 17:16:14 -0700
> > ib_gid's can be print'd using the new %p6 facility
> > Signed-off-by: Joe Perches <joe@perches.com>
> Joe, please provide something relative to Harvey's patches
> so that this new union member gets passed into the %p6
> uses.

Sure.  After Harvey's patches show up in
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=summary
I'll make a patchset including this union ib_gid addition as
well as changes to drivers/infiniband/

Roland, in a separate question, are the infiniband maintainers
also the maintainers of include/rdma/?  If "F: patterns" ever
gets accepted into MAINTAINERS, should include/rdma/ be listed
under infiniband?

You and Sean Hefty seem to be the primary authors.

$ git log include/rdma/ | grep Author: | \
  sort | uniq -c | sort -nr | head -5
     32 Author: Sean Hefty <sean.hefty@intel.com>
     23 Author: Roland Dreier <rolandd@cisco.com>
      6 Author: Michael S. Tsirkin <mst@mellanox.co.il>
      5 Author: Or Gerlitz <ogerlitz@voltaire.com>
      4 Author: Jack Morgenstein <jackm@mellanox.co.il>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ofa-general] Re: [PATCH] infiniband: Add struct in6_addr addr to union ib_gib
  2008-10-29  6:58           ` Joe Perches
@ 2008-10-29  8:39             ` David Miller
  2008-10-29 18:15             ` Roland Dreier
  1 sibling, 0 replies; 11+ messages in thread
From: David Miller @ 2008-10-29  8:39 UTC (permalink / raw)
  To: joe; +Cc: netdev, rdreier, general, sean.hefty, harvey.harrison

From: Joe Perches <joe@perches.com>
Date: Tue, 28 Oct 2008 23:58:40 -0700

> On Tue, 2008-10-28 at 22:39 -0700, David Miller wrote:
> > From: Joe Perches <joe@perches.com>
> > Date: Tue, 28 Oct 2008 17:16:14 -0700
> > > ib_gid's can be print'd using the new %p6 facility
> > > Signed-off-by: Joe Perches <joe@perches.com>
> > Joe, please provide something relative to Harvey's patches
> > so that this new union member gets passed into the %p6
> > uses.
> 
> Sure.  After Harvey's patches show up in
> http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=summary

They should be there now.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ofa-general] Re: [PATCH] infiniband: Add struct in6_addr addr to union ib_gib
  2008-10-29  6:58           ` Joe Perches
  2008-10-29  8:39             ` David Miller
@ 2008-10-29 18:15             ` Roland Dreier
  1 sibling, 0 replies; 11+ messages in thread
From: Roland Dreier @ 2008-10-29 18:15 UTC (permalink / raw)
  To: Joe Perches; +Cc: netdev, rdreier, general, David Miller, harvey.harrison

> Sure.  After Harvey's patches show up in
> http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=summary
> I'll make a patchset including this union ib_gid addition as
> well as changes to drivers/infiniband/

OK I guess.  I also don't have any objection to using a different
format letter but the
same underlying code as the p6 implementation as an alternative for handling
the type checking.

> Roland, in a separate question, are the infiniband maintainers
> also the maintainers of include/rdma/?  If "F: patterns" ever
> gets accepted into MAINTAINERS, should include/rdma/ be listed
> under infiniband?

Yes, drivers/infiniband and include/rdma are all part of the
InfiniBand/RDMA stack.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-10-29 18:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-28 21:38 [PATCH] infiniband: use %p6 for printing message ids Harvey Harrison
2008-10-28 22:00 ` Roland Dreier
2008-10-28 23:02 ` Joe Perches
2008-10-28 23:07   ` Roland Dreier
2008-10-28 23:22     ` Joe Perches
2008-10-29  0:16       ` [ofa-general] ***SPAM*** [PATCH] infiniband: Add struct in6_addr addr to union ib_gib Joe Perches
2008-10-29  5:39         ` [ofa-general] " David Miller
2008-10-29  6:58           ` Joe Perches
2008-10-29  8:39             ` David Miller
2008-10-29 18:15             ` Roland Dreier
2008-10-29  5:36 ` [PATCH] infiniband: use %p6 for printing message ids David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).