<!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>