[ofa-general] Re: [RFC/PATCH] mthca: ensure alignment of doorbell	writes
    akepner at sgi.com 
    akepner at sgi.com
       
    Thu Jul 26 08:33:54 PDT 2007
    
    
  
On Thu, Jul 26, 2007 at 06:39:46AM +0300, Michael S. Tsirkin wrote:
> ....
> These should be getting 'union mthca_doorbell *db' I think.
> 
Hi Michael;
Want to make sure I understand your point. Are you saying, e.g., 
that the function:
static inline void mthca_ring_db(union mthca_doorbell db, 
				 void __iomem *dest,
                                 spinlock_t *doorbell_lock)
should instead have the prototype:
static inline void mthca_ring_db(union mthca_doorbell* db,
                                 void __iomem *dest,
                                 spinlock_t *doorbell_lock)
?
If so, I'm not sure I agree. The union mthca_doorbell is 
64 bits so can be passed in a register, but passing a pointer 
requires a few extra operations to calculate the address, 
and dereference the pointer. But maybe I misunderstand you...
Now that I look at this again, the __attribute__ ((aligned...))
thing on union mthca_doorbell is pretty silly - of course the  
alignment is going to be sizeof(__be64)....
+union mthca_doorbell {
+       __be64 val64;
+       __be32 val32[2];
+} __attribute__ ((aligned (sizeof(__be64))));
+
-- 
Arthur
    
    
More information about the general
mailing list