~ubuntu-branches/ubuntu/maverick/nvidia-graphics-drivers-96/maverick-proposed

« back to all changes in this revision

Viewing changes to debian.binary/patches/nvidia-rt-compat-legacy.patch

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone
  • Date: 2010-01-08 23:34:51 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20100108233451-f1142o5r7z0ou4o0
Tags: 96.43.14-0ubuntu1
* Rework packaging taking Mandriva's as a model:
  - Use alternatives instead of diversions.
  - Reduce the number of binary packages to nvidia-96,
    nvidia-96-dev and nvidia-96-modaliases.
* debian/rules:
  - Switch to CDBS.
  - Remove libGL.la as no static library is provided.
* debian/nvidia-current.README.Debian.in:
  - Document the update process.
* nvidia-current.postinst: try to build the module for the most
  recent kernel in addition to building it for the current kernel
  (LP: #474917).
* New upstream release (LP: #494166):
 - Add support for xserver 1.7.x.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
diff -Nurp nv.orig/os-interface.c nv/os-interface.c
2
 
--- nv.orig/os-interface.c      2009-06-26 03:59:39.000000000 +0200
3
 
+++ nv/os-interface.c   2009-10-25 12:51:50.542528175 +0100
4
 
@@ -75,7 +75,7 @@ typedef struct os_sema_s
5
 
 {
6
 
     struct completion  completion;
7
 
 #if defined(CONFIG_PREEMPT_RT)
8
 
-    raw_spinlock_t     lock;
9
 
+    atomic_spinlock_t     lock;
10
 
 #else
11
 
     spinlock_t         lock;
12
 
 #endif
13
 
@@ -101,7 +101,11 @@ RM_STATUS NV_API_CALL os_alloc_sema
14
 
 
15
 
     os_sema = (os_sema_t *)*ppSema;
16
 
     init_completion(&os_sema->completion);
17
 
+#if defined(CONFIG_PREEMPT_RT)
18
 
+    atomic_spin_lock_init(&os_sema->lock);
19
 
+#else
20
 
     spin_lock_init(&os_sema->lock);
21
 
+#endif
22
 
     os_sema->count = 1;
23
 
 
24
 
     return RM_OK;
25
 
@@ -140,18 +144,30 @@ RM_STATUS NV_API_CALL os_acquire_sema
26
 
     os_sema_t *os_sema = (os_sema_t *)pSema;
27
 
     unsigned long old_irq;
28
 
 
29
 
+#if defined(CONFIG_PREEMPT_RT)
30
 
+    atomic_spin_lock_irqsave(&os_sema->lock, old_irq);
31
 
+#else
32
 
     spin_lock_irqsave(&os_sema->lock, old_irq);
33
 
+#endif
34
 
     if (os_sema->count <= 0)
35
 
     {
36
 
         os_sema->count--;
37
 
+#if defined(CONFIG_PREEMPT_RT)
38
 
+        atomic_spin_unlock_irqrestore(&os_sema->lock, old_irq);
39
 
+#else
40
 
         spin_unlock_irqrestore(&os_sema->lock, old_irq);
41
 
+#endif
42
 
         wait_for_completion(&os_sema->completion);
43
 
     }
44
 
     else
45
 
     {
46
 
         os_sema->count--;
47
 
         rm_disable_interrupts();
48
 
+#if defined(CONFIG_PREEMPT_RT)
49
 
+        atomic_spin_unlock_irqrestore(&os_sema->lock, old_irq);
50
 
+#else
51
 
         spin_unlock_irqrestore(&os_sema->lock, old_irq);
52
 
+#endif
53
 
     }
54
 
 
55
 
     return RM_OK;
56
 
@@ -174,17 +190,29 @@ BOOL NV_API_CALL os_cond_acquire_sema
57
 
     os_sema_t *os_sema = (os_sema_t *)pSema;
58
 
     unsigned long old_irq;
59
 
 
60
 
+#if defined(CONFIG_PREEMPT_RT)
61
 
+    atomic_spin_lock_irqsave(&os_sema->lock, old_irq);
62
 
+#else
63
 
     spin_lock_irqsave(&os_sema->lock, old_irq);
64
 
+#endif
65
 
     if (os_sema->count <= 0)
66
 
     {
67
 
+#if defined(CONFIG_PREEMPT_RT)
68
 
+        atomic_spin_unlock_irqrestore(&os_sema->lock, old_irq);
69
 
+#else
70
 
         spin_unlock_irqrestore(&os_sema->lock, old_irq);
71
 
+#endif
72
 
         return FALSE;
73
 
     }
74
 
     else
75
 
     {
76
 
         os_sema->count--;
77
 
         rm_disable_interrupts();
78
 
+#if defined(CONFIG_PREEMPT_RT)
79
 
+        atomic_spin_unlock_irqrestore(&os_sema->lock, old_irq);
80
 
+#else
81
 
         spin_unlock_irqrestore(&os_sema->lock, old_irq);
82
 
+#endif
83
 
         return TRUE;
84
 
     }
85
 
 
86
 
@@ -208,7 +236,11 @@ RM_STATUS NV_API_CALL os_release_sema
87
 
     unsigned long old_irq;
88
 
     BOOL doWakeup;
89
 
 
90
 
+#if defined(CONFIG_PREEMPT_RT)
91
 
+    atomic_spin_lock_irqsave(&os_sema->lock, old_irq);
92
 
+#else
93
 
     spin_lock_irqsave(&os_sema->lock, old_irq);
94
 
+#endif
95
 
     if (os_sema->count < 0)
96
 
     {
97
 
         doWakeup = TRUE;
98
 
@@ -219,7 +251,11 @@ RM_STATUS NV_API_CALL os_release_sema
99
 
         rm_enable_interrupts();
100
 
     }
101
 
     os_sema->count++;
102
 
+#if defined(CONFIG_PREEMPT_RT)
103
 
+    atomic_spin_unlock_irqrestore(&os_sema->lock, old_irq);
104
 
+#else
105
 
     spin_unlock_irqrestore(&os_sema->lock, old_irq);
106
 
+#endif
107
 
 
108
 
     if (doWakeup)
109
 
         complete(&os_sema->completion);