s390 fixes (12/12).

s390 fixes (12/12).

Post by Martin Schwidefsk » Tue, 04 Feb 2003 19:40:08



trivial s390 fixes
diff -urN linux-2.5.59/arch/s390/kernel/setup.c
linux-2.5.59-s390/arch/s390/kernel/setup.c
--- linux-2.5.59/arch/s390/kernel/setup.c       Fri Jan 17 03:21:38 2003

 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-       return *pos <= NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
+       return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
 {
diff -urN linux-2.5.59/arch/s390x/kernel/setup.c
linux-2.5.59-s390/arch/s390x/kernel/setup.c
--- linux-2.5.59/arch/s390x/kernel/setup.c      Fri Jan 17 03:22:02 2003

 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-       return *pos <= NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
+       return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
 {
diff -urN linux-2.5.59/include/asm-s390/spinlock.h
linux-2.5.59-s390/include/asm-s390/spinlock.h
--- linux-2.5.59/include/asm-s390/spinlock.h    Fri Jan 17 03:23:01 2003

                      : "+m" ((rw)->lock) : "a" (&(rw)->lock) \
                     : "2", "3", "cc" )

+extern inline int _raw_write_trylock(rwlock_t *rw)
+{
+       unsigned int result, reg;
+      
+       __asm__ __volatile__("   lhi  %0,1\n"
+                            "   sll  %0,31\n"
+                            "   basr %1,0\n"
+                            "0: cs   %0,%1,0(%3)\n"
+                            : "=&d" (result), "=&d" (reg), "+m" (rw->lock)
+                            : "a" (&rw->lock) : "cc" );
+       return !result;
+}
+
 #endif /* __ASM_SPINLOCK_H */
diff -urN linux-2.5.59/include/asm-s390x/spinlock.h
linux-2.5.59-s390/include/asm-s390x/spinlock.h
--- linux-2.5.59/include/asm-s390x/spinlock.h   Fri Jan 17 03:21:41 2003

                     : "a" (&(rw)->lock), "i" (__DIAG44_OPERAND) \
                     : "2", "3", "cc" )

+extern inline int _raw_write_trylock(rwlock_t *rw)
+{
+       unsigned int result, reg;
+      
+       __asm__ __volatile__("   llihh %0,0x8000\n"
+                            "   basr  %1,0\n"
+                            "0: csg %0,%1,0(%3)\n"
+                            : "=&d" (result), "=&d" (reg), "+m" (rw->lock)
+                            : "a" (&rw->lock) : "cc" );
+       return !result;
+}
+
 #endif /* __ASM_SPINLOCK_H */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

s390 fixes (12/12).

Post by Martin Schwidefsk » Tue, 04 Feb 2003 22:30:20


trivial s390 fixes
diff -urN linux-2.5.59/arch/s390/kernel/setup.c linux-2.5.59-s390/arch/s390/kernel/setup.c
--- linux-2.5.59/arch/s390/kernel/setup.c       Fri Jan 17 03:21:38 2003

 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-       return *pos <= NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
+       return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
 {
diff -urN linux-2.5.59/arch/s390x/kernel/setup.c linux-2.5.59-s390/arch/s390x/kernel/setup.c
--- linux-2.5.59/arch/s390x/kernel/setup.c      Fri Jan 17 03:22:02 2003

 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-       return *pos <= NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
+       return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
 {
diff -urN linux-2.5.59/fs/partitions/ibm.c linux-2.5.59-s390/fs/partitions/ibm.c
--- linux-2.5.59/fs/partitions/ibm.c    Fri Jan 17 03:22:56 2003

        EBCASC(type, 4);
        EBCASC(name, 6);

+/* FIXME: this no longer works.
+       if(name[0] != '\0')
+               register_disk_label(hd, name);
+*/
+
        /*
         * Three different types: CMS1, VOL1 and LNX1/unlabeled
         */
diff -urN linux-2.5.59/include/asm-s390/spinlock.h linux-2.5.59-s390/include/asm-s390/spinlock.h
--- linux-2.5.59/include/asm-s390/spinlock.h    Fri Jan 17 03:23:01 2003

                      : "+m" ((rw)->lock) : "a" (&(rw)->lock) \
                     : "2", "3", "cc" )

+extern inline int _raw_write_trylock(rwlock_t *rw)
+{
+       unsigned int result, reg;
+      
+       __asm__ __volatile__("   lhi  %0,1\n"
+                            "   sll  %0,31\n"
+                            "   basr %1,0\n"
+                            "0: cs   %0,%1,0(%3)\n"
+                            : "=&d" (result), "=&d" (reg), "+m" (rw->lock)
+                            : "a" (&rw->lock) : "cc" );
+       return !result;
+}
+
 #endif /* __ASM_SPINLOCK_H */
diff -urN linux-2.5.59/include/asm-s390x/spinlock.h linux-2.5.59-s390/include/asm-s390x/spinlock.h
--- linux-2.5.59/include/asm-s390x/spinlock.h   Fri Jan 17 03:21:41 2003

                     : "a" (&(rw)->lock), "i" (__DIAG44_OPERAND) \
                     : "2", "3", "cc" )

+extern inline int _raw_write_trylock(rwlock_t *rw)
+{
+       unsigned int result, reg;
+      
+       __asm__ __volatile__("   llihh %0,0x8000\n"
+                            "   basr  %1,0\n"
+                            "0: csg %0,%1,0(%3)\n"
+                            : "=&d" (result), "=&d" (reg), "+m" (rw->lock)
+                            : "a" (&rw->lock) : "cc" );
+       return !result;
+}
+
 #endif /* __ASM_SPINLOCK_H */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/