Move irqs_disabled() and in_dbg_master() out of the i386/amd64 ifdef block
authorjsg <jsg@openbsd.org>
Fri, 10 Apr 2015 12:06:52 +0000 (12:06 +0000)
committerjsg <jsg@openbsd.org>
Fri, 10 Apr 2015 12:06:52 +0000 (12:06 +0000)
and change drm_can_sleep() to only use in_atomic() on i386/amd64 as
it isn't defined for other archs currently.  Unbreaks the sparc64 build.
Found the hard way by benoit@

sys/dev/pci/drm/drmP.h
sys/dev/pci/drm/drm_linux.h

index 36dc022..129b3c0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: drmP.h,v 1.189 2015/04/10 06:00:39 jsg Exp $ */
+/* $OpenBSD: drmP.h,v 1.190 2015/04/10 12:06:52 jsg Exp $ */
 /* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
  * Created: Mon Jan  4 10:05:05 1999 by faith@precisioninsight.com
  */
@@ -159,7 +159,11 @@ extern struct cfdriver drm_cd;
 static inline bool
 drm_can_sleep(void)
 {
+#if defined(__i386__) || defined(__amd64__)
        if (in_atomic() || in_dbg_master() || irqs_disabled())
+#else
+       if (in_dbg_master() || irqs_disabled())
+#endif
                return false;
        return true;
 }
index e6d71f7..8fac1c8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: drm_linux.h,v 1.16 2015/04/10 05:31:25 jsg Exp $      */
+/*     $OpenBSD: drm_linux.h,v 1.17 2015/04/10 12:06:52 jsg Exp $      */
 /*
  * Copyright (c) 2013, 2014 Mark Kettenis
  *
@@ -513,6 +513,21 @@ static inline uint32_t ror32(uint32_t word, unsigned int shift)
        return (word >> shift) | (word << (32 - shift));
 }
 
+static inline int
+irqs_disabled(void)
+{
+       return (cold);
+}
+
+static inline int
+in_dbg_master(void)
+{
+#ifdef DDB
+       return (db_is_active);
+#endif
+       return (0);
+}
+
 #ifdef __macppc__
 static __inline int
 of_machine_is_compatible(const char *model)
@@ -544,21 +559,6 @@ in_atomic(void)
        return curcpu()->ci_inatomic;
 }
 
-static inline int
-irqs_disabled(void)
-{
-       return (cold);
-}
-
-static inline int
-in_dbg_master(void)
-{
-#ifdef DDB
-       return (db_is_active);
-#endif
-       return (0);
-}
-
 static inline void *
 kmap_atomic(struct vm_page *pg)
 {