<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=191140213-17072008>This checkin fixes a 
bug that caused 64 bits arming to be done like on 32 bits 
systems.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=191140213-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=191140213-17072008>Thanks</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=191140213-17072008>Tzachi & 
UriH</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index: kernel/bus/ib/mlx4_ib.h</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial 
size=2>===================================================================</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>--- kernel/bus/ib/mlx4_ib.h (revision 
1394)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>+++ kernel/bus/ib/mlx4_ib.h (working 
copy)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>@@ -171,13 +171,16 @@</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> <BR>  struct 
mlx4_uar  priv_uar;<BR>  u32   priv_pdn;<BR>- MLX4_DECLARE_DOORBELL_LOCK(uar_lock);<BR> <BR>  struct 
ib_mad_agent    
*send_agent[MLX4_MAX_PORTS][2];<BR>  struct 
ib_ah        
*sm_ah[MLX4_MAX_PORTS];<BR>  spinlock_t  sm_lock;<BR> <BR>  struct 
mutex  cap_mask_mutex;<BR>+<BR>+#ifndef 
_WIN64 <BR>+    spinlock_t 
uar_lock;<BR>+#endif    <BR> };<BR> <BR> static 
inline struct mlx4_ib_dev *to_mdev(struct ib_device *ibdev)<BR>Index: 
kernel/bus/inc/doorbell.h</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial 
size=2>===================================================================</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>--- kernel/bus/inc/doorbell.h (revision 
1394)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>+++ kernel/bus/inc/doorbell.h (working 
copy)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>@@ -38,7 +38,7 @@</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> #define MLX4_SEND_DOORBELL    
0x14<BR> #define MLX4_CQ_DOORBELL      
0x20<BR> <BR>-#if BITS_PER_LONG == 64<BR>+#if _WIN64<BR> /*<BR>  
* Assume that we can just write a 64-bit doorbell atomically.  
s390<BR>  * actually doesn't have writeq() but S/390 systems don't even 
have<BR>@@ -46,17 +46,17 @@</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>  */<BR> <BR> #define 
MLX4_DECLARE_DOORBELL_LOCK(name)<BR>-#define 
MLX4_INIT_DOORBELL_LOCK(ptr)    do { } while (0)<BR>+#define 
MLX4_INIT_DOORBELL_LOCK(ptr)    <BR> #define 
MLX4_GET_DOORBELL_LOCK(ptr)      
(NULL)<BR> <BR> static inline void mlx4_write64(__be32 val[2], void 
__iomem *dest,<BR>     spinlock_t 
*doorbell_lock)<BR> {<BR>- __raw_writeq(*(u64 *) val, 
dest);<BR>+    
UNREFERENCED_PARAMETER(doorbell_lock);<BR>+ *(volatile u64 *)dest = 
*(volatile u64 
*)val;<BR> }<BR> <BR> #else<BR>-<BR> /*<BR>  * Just 
fall back to a spinlock to protect the doorbell if<BR>  * BITS_PER_LONG is 
32 -- there's no portable way to do atomic 64-bit</FONT></DIV></BODY></HTML>