public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [patch 47/54] Staging: hv: make gVmbusConnection.ChannelLock a real spinlock
       [not found] ` <20090717180923.620590305@mini.kroah.org>
@ 2009-07-20 23:39   ` Arnd Bergmann
  2009-07-21  2:11     ` Greg KH
  0 siblings, 1 reply; 11+ messages in thread
From: Arnd Bergmann @ 2009-07-20 23:39 UTC (permalink / raw)
  To: virtualization
  Cc: Greg Kroah-Hartman, linux-kernel, devel, virtualization,
	Sam Ramji, Haiyang Zhang, Hank Janssen, shemminger

On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> I don't think we really want to be doing a irqsave for this code, but I
> left it alone to preserve the original codepath.  It should be reviewed
> later.

This patch does not preserve the original code path if any of the
callers has a different irq state from the others. When flags is
shared, releasing the lock actually sets the irq state to whatever
another thread was using when failing to acquire the lock while
it was held.

The patch of course looks good, but the comment is misleading.

	Arnd <><

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

* Re: [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines
       [not found] ` <20090717180921.448023599@mini.kroah.org>
@ 2009-07-20 23:46   ` Arnd Bergmann
  2009-07-24 21:32     ` Jörn Engel
  0 siblings, 1 reply; 11+ messages in thread
From: Arnd Bergmann @ 2009-07-20 23:46 UTC (permalink / raw)
  To: virtualization
  Cc: Greg Kroah-Hartman, linux-kernel, devel, virtualization,
	Sam Ramji, Haiyang Zhang, Hank Janssen, shemminger

On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> @@ -43,7 +43,7 @@ typedef struct _RING_BUFFER {
>         // volatile u32 InterruptMask;
>         // Ring data starts here + RingDataStartOffset !!! DO NOT place any fields below this !!!
>      u8         Buffer[0];
> -} STRUCT_PACKED RING_BUFFER;
> +} __attribute__((packed)) RING_BUFFER;
>  

The data structure is actually packed already, the attribute does not make it better
and could be removed. We also have __packed as a shortcut for __attribute__((packed)).

	Arnd <><

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

* Re: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs
       [not found] ` <20090717180920.285605541@mini.kroah.org>
@ 2009-07-21  0:00   ` Arnd Bergmann
  2009-07-21  0:44     ` Hank Janssen
                       ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Arnd Bergmann @ 2009-07-21  0:00 UTC (permalink / raw)
  To: virtualization
  Cc: Greg Kroah-Hartman, linux-kernel, devel, virtualization, Greg KH,
	Sam Ramji, Haiyang Zhang, Hank Janssen, shemminger

On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <gregkh@suse.de>
> 
> The ULONG and LONG typedefs are now removed from the Hyper-V driver
> code
> 

This conversion is not equivalent:

>  //
> -// unsigned types
> -//
> -typedef unsigned int		ULONG;
> -
> -//
> -// signed types
> -//
> -typedef int					LONG;

- // redefine the world, because we can
- extern char *i;
- void abs(unsigned u);
- #define FALSE (2)

;-)

> --- a/drivers/staging/hv/include/StorVscApi.h
> +++ b/drivers/staging/hv/include/StorVscApi.h
> @@ -117,7 +117,7 @@ typedef struct _STORVSC_DRIVER_OBJECT {
>  } STORVSC_DRIVER_OBJECT;
>  
>  typedef struct _STORVSC_DEVICE_INFO {
> -	ULONG	PortNumber;
> +	unsigned long	PortNumber;
>      unsigned char	PathId;
>      unsigned char	TargetId;
>  } STORVSC_DEVICE_INFO;

If this is an API (as the header file name suggests), you just changed it.
Same for the other hunks in this patch.

	Arnd <><

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

* RE: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs
  2009-07-21  0:00   ` [patch 27/54] Staging: hv: remove ULONG and LONG typedefs Arnd Bergmann
@ 2009-07-21  0:44     ` Hank Janssen
  2009-07-21  2:38     ` Greg KH
  2009-07-21  8:26     ` Bernd Petrovitsch
  2 siblings, 0 replies; 11+ messages in thread
From: Hank Janssen @ 2009-07-21  0:44 UTC (permalink / raw)
  To: Arnd Bergmann, virtualization@lists.linux-foundation.org
  Cc: Greg Kroah-Hartman, linux-kernel@vger.kernel.org,
	devel@driverdev.osuosl.org, virtualization@lists.osdl.org,
	Greg KH, Sam Ramji, Haiyang Zhang,
	shemminger@linux-foundation.org



Arnd,

Thanks for this and the other mails reviewing the code.

My TODO list keeps on getting bigger :). I will check into all of these and correct them.

Keep them coming!

Thanks!

Hank.


-----Original Message-----
From: Arnd Bergmann [mailto:arnd@arndb.de]
Sent: Monday, July 20, 2009 5:00 PM
To: virtualization@lists.linux-foundation.org
Cc: Greg Kroah-Hartman; linux-kernel@vger.kernel.org; devel@driverdev.osuosl.org; virtualization@lists.osdl.org; Greg KH; Sam Ramji; Haiyang Zhang; Hank Janssen; shemminger@linux-foundation.org
Subject: Re: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs

On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <gregkh@suse.de>
>
> The ULONG and LONG typedefs are now removed from the Hyper-V driver
> code
>

This conversion is not equivalent:

>  //
> -// unsigned types
> -//
> -typedef unsigned int         ULONG;
> -
> -//
> -// signed types
> -//
> -typedef int                                  LONG;

- // redefine the world, because we can
- extern char *i;
- void abs(unsigned u);
- #define FALSE (2)

;-)

> --- a/drivers/staging/hv/include/StorVscApi.h
> +++ b/drivers/staging/hv/include/StorVscApi.h
> @@ -117,7 +117,7 @@ typedef struct _STORVSC_DRIVER_OBJECT {
>  } STORVSC_DRIVER_OBJECT;
>
>  typedef struct _STORVSC_DEVICE_INFO {
> -     ULONG   PortNumber;
> +     unsigned long   PortNumber;
>      unsigned char    PathId;
>      unsigned char    TargetId;
>  } STORVSC_DEVICE_INFO;

If this is an API (as the header file name suggests), you just changed it.
Same for the other hunks in this patch.

        Arnd <><


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

* Re: [patch 47/54] Staging: hv: make gVmbusConnection.ChannelLock a real spinlock
  2009-07-20 23:39   ` [patch 47/54] Staging: hv: make gVmbusConnection.ChannelLock a real spinlock Arnd Bergmann
@ 2009-07-21  2:11     ` Greg KH
  0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2009-07-21  2:11 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: virtualization, linux-kernel, devel, virtualization, Sam Ramji,
	Haiyang Zhang, Hank Janssen, shemminger

On Tue, Jul 21, 2009 at 01:39:19AM +0200, Arnd Bergmann wrote:
> On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > I don't think we really want to be doing a irqsave for this code, but I
> > left it alone to preserve the original codepath.  It should be reviewed
> > later.
> 
> This patch does not preserve the original code path if any of the
> callers has a different irq state from the others. When flags is
> shared, releasing the lock actually sets the irq state to whatever
> another thread was using when failing to acquire the lock while
> it was held.
> 
> The patch of course looks good, but the comment is misleading.

Good point, sorry for the misleading comment.

I'll let Hank work out the details as to if the irqsave mode is needed
or not :)

thanks,

greg k-h

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

* Re: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs
  2009-07-21  0:00   ` [patch 27/54] Staging: hv: remove ULONG and LONG typedefs Arnd Bergmann
  2009-07-21  0:44     ` Hank Janssen
@ 2009-07-21  2:38     ` Greg KH
  2009-07-21  2:45       ` Greg KH
  2009-07-21  8:26     ` Bernd Petrovitsch
  2 siblings, 1 reply; 11+ messages in thread
From: Greg KH @ 2009-07-21  2:38 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: virtualization, linux-kernel, devel, virtualization, Greg KH,
	Sam Ramji, Haiyang Zhang, Hank Janssen, shemminger

On Tue, Jul 21, 2009 at 02:00:16AM +0200, Arnd Bergmann wrote:
> On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > From: Greg Kroah-Hartman <gregkh@suse.de>
> > 
> > The ULONG and LONG typedefs are now removed from the Hyper-V driver
> > code
> > 
> 
> This conversion is not equivalent:
> 
> >  //
> > -// unsigned types
> > -//
> > -typedef unsigned int		ULONG;
> > -
> > -//
> > -// signed types
> > -//
> > -typedef int					LONG;
> 
> - // redefine the world, because we can
> - extern char *i;
> - void abs(unsigned u);
> - #define FALSE (2)
> 
> ;-)
> 
> > --- a/drivers/staging/hv/include/StorVscApi.h
> > +++ b/drivers/staging/hv/include/StorVscApi.h
> > @@ -117,7 +117,7 @@ typedef struct _STORVSC_DRIVER_OBJECT {
> >  } STORVSC_DRIVER_OBJECT;
> >  
> >  typedef struct _STORVSC_DEVICE_INFO {
> > -	ULONG	PortNumber;
> > +	unsigned long	PortNumber;
> >      unsigned char	PathId;
> >      unsigned char	TargetId;
> >  } STORVSC_DEVICE_INFO;
> 
> If this is an API (as the header file name suggests), you just changed it.
> Same for the other hunks in this patch.

Ah crap, you're right, that's all wrong, nice catch.

I'll go redo it to be "unsigned int", but for some reason, the code
still seems to work properly :)

thanks,

greg k-h

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

* Re: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs
  2009-07-21  2:38     ` Greg KH
@ 2009-07-21  2:45       ` Greg KH
  0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2009-07-21  2:45 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: virtualization, linux-kernel, devel, virtualization, Greg KH,
	Sam Ramji, Haiyang Zhang, Hank Janssen, shemminger

On Mon, Jul 20, 2009 at 07:38:23PM -0700, Greg KH wrote:
> On Tue, Jul 21, 2009 at 02:00:16AM +0200, Arnd Bergmann wrote:
> > On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > > From: Greg Kroah-Hartman <gregkh@suse.de>
> > > 
> > > The ULONG and LONG typedefs are now removed from the Hyper-V driver
> > > code
> > > 
> > 
> > This conversion is not equivalent:
> > 
> > >  //
> > > -// unsigned types
> > > -//
> > > -typedef unsigned int		ULONG;
> > > -
> > > -//
> > > -// signed types
> > > -//
> > > -typedef int					LONG;
> > 
> > - // redefine the world, because we can
> > - extern char *i;
> > - void abs(unsigned u);
> > - #define FALSE (2)
> > 
> > ;-)
> > 
> > > --- a/drivers/staging/hv/include/StorVscApi.h
> > > +++ b/drivers/staging/hv/include/StorVscApi.h
> > > @@ -117,7 +117,7 @@ typedef struct _STORVSC_DRIVER_OBJECT {
> > >  } STORVSC_DRIVER_OBJECT;
> > >  
> > >  typedef struct _STORVSC_DEVICE_INFO {
> > > -	ULONG	PortNumber;
> > > +	unsigned long	PortNumber;
> > >      unsigned char	PathId;
> > >      unsigned char	TargetId;
> > >  } STORVSC_DEVICE_INFO;
> > 
> > If this is an API (as the header file name suggests), you just changed it.
> > Same for the other hunks in this patch.
> 
> Ah crap, you're right, that's all wrong, nice catch.
> 
> I'll go redo it to be "unsigned int", but for some reason, the code
> still seems to work properly :)

Ok, here's the updated version.  Thanks for the review.

Hank, a lot of these should probably be converted to "real" kernel
types, like u32, or u64 if it's really needed.  Especially if they are
crossing the kernel/hypervisor boundry.

thanks,

greg k-h

-------------
From: Greg Kroah-Hartman <gregkh@suse.de>
Subject: Staging: hv: remove ULONG and LONG typedefs

From: Greg Kroah-Hartman <gregkh@suse.de>

The ULONG and LONG typedefs are now removed from the Hyper-V driver
code.

Cc: Hank Janssen <hjanssen@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/staging/hv/StorVsc.c            |    2 +-
 drivers/staging/hv/include/StorVscApi.h |    2 +-
 drivers/staging/hv/include/osd.h        |   10 ----------
 drivers/staging/hv/include/vstorage.h   |   12 ++++++------
 4 files changed, 8 insertions(+), 18 deletions(-)

--- a/drivers/staging/hv/StorVsc.c
+++ b/drivers/staging/hv/StorVsc.c
@@ -62,7 +62,7 @@ typedef struct _STORVSC_DEVICE{
 
 	//  Each unique Port/Path/Target represents 1 channel ie scsi controller. In reality, the pathid, targetid is always 0
 	// and the port is set by us
-	ULONG						PortNumber;
+	unsigned int						PortNumber;
     unsigned char						PathId;
     unsigned char						TargetId;
 
--- a/drivers/staging/hv/include/StorVscApi.h
+++ b/drivers/staging/hv/include/StorVscApi.h
@@ -117,7 +117,7 @@ typedef struct _STORVSC_DRIVER_OBJECT {
 } STORVSC_DRIVER_OBJECT;
 
 typedef struct _STORVSC_DEVICE_INFO {
-	ULONG	PortNumber;
+	unsigned int	PortNumber;
     unsigned char	PathId;
     unsigned char	TargetId;
 } STORVSC_DEVICE_INFO;
--- a/drivers/staging/hv/include/osd.h
+++ b/drivers/staging/hv/include/osd.h
@@ -95,16 +95,6 @@ typedef struct _DLIST_ENTRY {
 } DLIST_ENTRY;
 
 //
-// unsigned types
-//
-typedef unsigned int		ULONG;
-
-//
-// signed types
-//
-typedef int					LONG;
-
-//
 // Other types
 //
 typedef unsigned long		SIZE_T;
--- a/drivers/staging/hv/include/vstorage.h
+++ b/drivers/staging/hv/include/vstorage.h
@@ -155,7 +155,7 @@ typedef struct
     unsigned char DataIn;
     unsigned char Reserved;
 
-    ULONG DataTransferLength;
+    unsigned int DataTransferLength;
 
     union
     {
@@ -185,11 +185,11 @@ typedef struct
     //
     // Note: port number is only really known on the client side
     //
-    ULONG  PortNumber;
+    unsigned int  PortNumber;
 
-    ULONG  Flags;
+    unsigned int  Flags;
 
-    ULONG  MaxTransferBytes;
+    unsigned int  MaxTransferBytes;
 
     //
     //  This id is unique for each channel and will correspond with
@@ -249,13 +249,13 @@ typedef struct _VSTOR_PACKET
     //  Flags - see below for values
     //
 
-    ULONG     Flags;
+    unsigned int     Flags;
 
     //
     // Status of the request returned from the server side.
     //
 
-    ULONG     Status;
+    unsigned int     Status;
 
     //
     // Data payload area

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

* Re: [patch 27/54] Staging: hv: remove ULONG and LONG typedefs
  2009-07-21  0:00   ` [patch 27/54] Staging: hv: remove ULONG and LONG typedefs Arnd Bergmann
  2009-07-21  0:44     ` Hank Janssen
  2009-07-21  2:38     ` Greg KH
@ 2009-07-21  8:26     ` Bernd Petrovitsch
  2 siblings, 0 replies; 11+ messages in thread
From: Bernd Petrovitsch @ 2009-07-21  8:26 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: virtualization, devel, Haiyang Zhang, Greg Kroah-Hartman,
	linux-kernel, virtualization, Sam Ramji, shemminger

On Tue, 2009-07-21 at 02:00 +0200, Arnd Bergmann wrote:
> On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > From: Greg Kroah-Hartman <gregkh@suse.de>
> > 
> > The ULONG and LONG typedefs are now removed from the Hyper-V driver
> > code
> 
> This conversion is not equivalent:
[...]
> - // redefine the world, because we can
[...]
> - #define FALSE (2)
That has been done already by the SNMP folks - see
http://www.faqs.org/rfcs/rfc1903.html under "TruthValue".
S,CNR and for off-topic ...

> ;-)
;-) either ....

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



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

* Re: [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines
  2009-07-20 23:46   ` [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines Arnd Bergmann
@ 2009-07-24 21:32     ` Jörn Engel
  2009-07-24 21:50       ` Stephen Hemminger
  0 siblings, 1 reply; 11+ messages in thread
From: Jörn Engel @ 2009-07-24 21:32 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: virtualization, Greg Kroah-Hartman, linux-kernel, devel,
	virtualization, Sam Ramji, Haiyang Zhang, Hank Janssen,
	shemminger

On Tue, 21 July 2009 01:46:41 +0200, Arnd Bergmann wrote:
> On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > @@ -43,7 +43,7 @@ typedef struct _RING_BUFFER {
> >         // volatile u32 InterruptMask;
> >         // Ring data starts here + RingDataStartOffset !!! DO NOT place any fields below this !!!
> >      u8         Buffer[0];
> > -} STRUCT_PACKED RING_BUFFER;
> > +} __attribute__((packed)) RING_BUFFER;
> >  
> 
> The data structure is actually packed already, the attribute does not make it better
> and could be removed. We also have __packed as a shortcut for __attribute__((packed)).

Honestly, I don't know how useful __packed really is.  In a shared
kernel/userspace header, it is only defined for the kernel.

Jörn

-- 
Do not stop an army on its way home.
-- Sun Tzu

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

* Re: [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines
  2009-07-24 21:32     ` Jörn Engel
@ 2009-07-24 21:50       ` Stephen Hemminger
  2009-07-24 23:06         ` Jörn Engel
  0 siblings, 1 reply; 11+ messages in thread
From: Stephen Hemminger @ 2009-07-24 21:50 UTC (permalink / raw)
  To: Jörn Engel
  Cc: Arnd Bergmann, virtualization, Greg Kroah-Hartman, linux-kernel,
	devel, virtualization, Sam Ramji, Haiyang Zhang, Hank Janssen

On Fri, 24 Jul 2009 23:32:19 +0200
Jörn Engel <joern@logfs.org> wrote:

> On Tue, 21 July 2009 01:46:41 +0200, Arnd Bergmann wrote:
> > On Friday 17 July 2009, Greg Kroah-Hartman wrote:
> > > @@ -43,7 +43,7 @@ typedef struct _RING_BUFFER {
> > >         // volatile u32 InterruptMask;
> > >         // Ring data starts here + RingDataStartOffset !!! DO NOT place any fields below this !!!
> > >      u8         Buffer[0];
> > > -} STRUCT_PACKED RING_BUFFER;
> > > +} __attribute__((packed)) RING_BUFFER;
> > >  
> > 
> > The data structure is actually packed already, the attribute does not make it better
> > and could be removed. We also have __packed as a shortcut for __attribute__((packed)).
> 
> Honestly, I don't know how useful __packed really is.  In a shared
> kernel/userspace header, it is only defined for the kernel.
> 

As I remember, gcc generates worse code for packed structures on many architectures
since it may have to do byte fetchs/recombining to avoid unaligned
accesses.

-- 

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

* Re: [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines
  2009-07-24 21:50       ` Stephen Hemminger
@ 2009-07-24 23:06         ` Jörn Engel
  0 siblings, 0 replies; 11+ messages in thread
From: Jörn Engel @ 2009-07-24 23:06 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Arnd Bergmann, virtualization, Greg Kroah-Hartman, linux-kernel,
	devel, virtualization, Sam Ramji, Haiyang Zhang, Hank Janssen

On Fri, 24 July 2009 14:50:25 -0700, Stephen Hemminger wrote:
> On Fri, 24 Jul 2009 23:32:19 +0200
> Jörn Engel <joern@logfs.org> wrote:
> 
> > On Tue, 21 July 2009 01:46:41 +0200, Arnd Bergmann wrote:
> > > 
> > > The data structure is actually packed already, the attribute does not make it better
> > > and could be removed. We also have __packed as a shortcut for __attribute__((packed)).
> > 
> > Honestly, I don't know how useful __packed really is.  In a shared
> > kernel/userspace header, it is only defined for the kernel.
> 
> As I remember, gcc generates worse code for packed structures on many architectures
> since it may have to do byte fetchs/recombining to avoid unaligned
> accesses.

I was talking about "__packed" vs. "__attribute__((packed))".  But yes,
avoiding packed structures where possible is a good idea.

Jörn

-- 
"[One] doesn't need to know [...] how to cause a headache in order
to take an aspirin."
-- Scott Culp, Manager of the Microsoft Security Response Center, 2001

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

end of thread, other threads:[~2009-07-24 23:06 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20090717180850.873962925@mini.kroah.org>
     [not found] ` <20090717180923.620590305@mini.kroah.org>
2009-07-20 23:39   ` [patch 47/54] Staging: hv: make gVmbusConnection.ChannelLock a real spinlock Arnd Bergmann
2009-07-21  2:11     ` Greg KH
     [not found] ` <20090717180921.448023599@mini.kroah.org>
2009-07-20 23:46   ` [patch 34/54] Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED defines Arnd Bergmann
2009-07-24 21:32     ` Jörn Engel
2009-07-24 21:50       ` Stephen Hemminger
2009-07-24 23:06         ` Jörn Engel
     [not found] ` <20090717180920.285605541@mini.kroah.org>
2009-07-21  0:00   ` [patch 27/54] Staging: hv: remove ULONG and LONG typedefs Arnd Bergmann
2009-07-21  0:44     ` Hank Janssen
2009-07-21  2:38     ` Greg KH
2009-07-21  2:45       ` Greg KH
2009-07-21  8:26     ` Bernd Petrovitsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox