]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-inline-bug-for-linux-20060831
authorChas Williams <chas@cmf.nrl.navy.mil>
Thu, 31 Aug 2006 05:54:52 +0000 (05:54 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 31 Aug 2006 05:54:52 +0000 (05:54 +0000)
FIXES 38854

inline bug so we get sane oopses

(cherry picked from commit d86f0c44d3c5910a6b54895484dc0286eac9bc73)

src/afs/afs_osi.h
src/rx/rx_kcommon.c
src/rx/rx_prototypes.h

index 771c12214e037d83d1fedb2e5b0e2bf9312d6999..36b4c579ccd877a2a0735bc7fbdcddaf976664b4 100644 (file)
@@ -220,7 +220,7 @@ typedef struct timeval osi_timeval_t;
 
 #ifdef AFS_GLOBAL_SUNLOCK
 #define AFS_ASSERT_GLOCK() \
-    (ISAFS_GLOCK() || (osi_Panic("afs global lock not held at %s:%d\n", __FILE__, __LINE__), 0))
+    do { if (!ISAFS_GLOCK()) osi_Panic("afs global lock not held at %s:%d\n", __FILE__, __LINE__); } while (0)
 #endif /* AFS_GLOBAL_SUNLOCK */
 
 #ifdef RX_ENABLE_LOCKS
index 47f9db7efe94a0c3c4a1aa52e2829115a585f4ce..1fb24e91da4001487267e5f89adc8e616c5f50a7 100644 (file)
@@ -124,6 +124,7 @@ rxi_GetUDPSocket(u_short port)
     return rxi_GetHostUDPSocket(htonl(INADDR_ANY), port);
 }
 
+#if !defined(AFS_LINUX26_ENV)
 void
 osi_Panic(msg, a1, a2, a3)
      char *msg;
@@ -132,7 +133,7 @@ osi_Panic(msg, a1, a2, a3)
        msg = "Unknown AFS panic";
 
     printf(msg, a1, a2, a3);
-#ifdef AFS_LINUX24_ENV
+#ifdef AFS_LINUX20_ENV
     * ((char *) 0) = 0; 
 #else
     panic(msg);
@@ -261,6 +262,13 @@ osi_AssertFailK(const char *expr, const char *file, int line)
 
     osi_Panic(buf);
 }
+#else
+void
+osi_AssertFailK(const char *expr, const char *file, int line)
+{
+    printk(KERN_CRIT "assertion failed: %s, file: %s, line: %d\n", expr, file, line);
+}
+#endif
 
 #ifndef UKERNEL
 /* This is the server process request loop. Kernel server
index 2599a003b46527e3b79597a0d119271e1b9f5d01..c8b1a05eafd7d77845173da7a7454a87b930cd45 100644 (file)
@@ -334,7 +334,14 @@ extern int rxk_DelPort(u_short aport);
 extern void rxk_shutdownPorts(void);
 extern osi_socket rxi_GetUDPSocket(u_short port);
 extern osi_socket rxi_GetHostUDPSocket(u_int host, u_short port);
-extern void osi_Panic();
+#if defined(KERNEL) && defined(AFS_LINUX26_ENV)
+#define osi_Panic(msg...) do { printk(KERN_CRIT "openafs: " msg); BUG(); } while (0)
+#undef osi_Assert
+#define osi_Assert(expr) \
+    do { if (!(expr)) { osi_AssertFailK(#expr, __FILE__, __LINE__); BUG(); } } while (0)
+#else
+extern void osi_Panic();       /* leave without args till stdarg rewrite */
+#endif
 extern int osi_utoa(char *buf, size_t len, unsigned long val);
 extern void rxi_InitPeerParams(register struct rx_peer *pp);
 extern void shutdown_rxkernel(void);
@@ -565,7 +572,6 @@ extern pthread_mutex_t rx_if_mutex;
 extern osi_socket rxi_GetUDPSocket(u_short port);
 extern void osi_AssertFailU(const char *expr, const char *file, int line);
 extern int rx_getAllAddr(afs_int32 * buffer, int maxSize);
-extern void osi_Panic();       /* leave without args till stdarg rewrite */
 extern void rxi_InitPeerParams(struct rx_peer *pp);
 
 #if defined(AFS_AIX32_ENV) && !defined(KERNEL)