- patches.suse/slab-handle-memoryless-nodes-v2a.patch: Refresh.
[linux-flexiantxendom0-3.2.10.git] / arch / blackfin / kernel / kgdb_test.c
index 59fc42d..9a4b075 100644 (file)
@@ -17,8 +17,9 @@
 
 #include <asm/blackfin.h>
 
+/* Symbols are here for kgdb test to poke directly */
 static char cmdline[256];
-static unsigned long len;
+static size_t len;
 
 #ifndef CONFIG_SMP
 static int num1 __attribute__((l1_data));
@@ -27,11 +28,10 @@ void kgdb_l1_test(void) __attribute__((l1_text));
 
 void kgdb_l1_test(void)
 {
-       printk(KERN_ALERT "L1(before change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
-       printk(KERN_ALERT "L1 : code function addr = 0x%p\n", kgdb_l1_test);
-       num1 = num1 + 10 ;
-       printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
-       return ;
+       pr_alert("L1(before change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
+       pr_alert("L1 : code function addr = 0x%p\n", kgdb_l1_test);
+       num1 = num1 + 10;
+       pr_alert("L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
 }
 #endif
 
@@ -42,11 +42,10 @@ void kgdb_l2_test(void) __attribute__((l2));
 
 void kgdb_l2_test(void)
 {
-       printk(KERN_ALERT "L2(before change) : data variable addr = 0x%p, data value is %d\n", &num2, num2);
-       printk(KERN_ALERT "L2 : code function addr = 0x%p\n", kgdb_l2_test);
-       num2 = num2 + 20 ;
-       printk(KERN_ALERT "L2(after change) : data variable addr = 0x%p, data value is %d\n", &num2, num2);
-       return ;
+       pr_alert("L2(before change) : data variable addr = 0x%p, data value is %d\n", &num2, num2);
+       pr_alert("L2 : code function addr = 0x%p\n", kgdb_l2_test);
+       num2 = num2 + 20;
+       pr_alert("L2(after change) : data variable addr = 0x%p, data value is %d\n", &num2, num2);
 }
 
 #endif
@@ -54,12 +53,14 @@ void kgdb_l2_test(void)
 
 int kgdb_test(char *name, int len, int count, int z)
 {
-       printk(KERN_ALERT "kgdb name(%d): %s, %d, %d\n", len, name, count, z);
+       pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z);
        count = z;
        return count;
 }
 
-static int test_proc_output(char *buf)
+static ssize_t
+kgdb_test_proc_read(struct file *file, char __user *buf,
+                    size_t count, loff_t *ppos)
 {
        kgdb_test("hello world!", 12, 0x55, 0x10);
 #ifndef CONFIG_SMP
@@ -72,49 +73,31 @@ static int test_proc_output(char *buf)
        return 0;
 }
 
-static int test_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
+static ssize_t
+kgdb_test_proc_write(struct file *file, const char __user *buffer,
+                     size_t count, loff_t *pos)
 {
-       int len;
-
-       len = test_proc_output(page);
-       if (len <= off+count)
-               *eof = 1;
-       *start = page + off;
-       len -= off;
-       if (len > count)
-               len = count;
-       if (len < 0)
-               len = 0;
-       return len;
-}
-
-static int test_write_proc(struct file *file, const char *buffer,
-                                unsigned long count, void *data)
-{
-       if (count >= 256)
-               len = 255;
-       else
-               len = count;
-
+       len = min_t(size_t, 255, count);
        memcpy(cmdline, buffer, count);
        cmdline[len] = 0;
 
        return len;
 }
 
+static const struct file_operations kgdb_test_proc_fops = {
+       .owner = THIS_MODULE,
+       .read  = kgdb_test_proc_read,
+       .write = kgdb_test_proc_write,
+};
+
 static int __init kgdbtest_init(void)
 {
        struct proc_dir_entry *entry;
 
-       entry = create_proc_entry("kgdbtest", 0, NULL);
+       entry = proc_create("kgdbtest", 0, NULL, &kgdb_test_proc_fops);
        if (entry == NULL)
                return -ENOMEM;
 
-       entry->read_proc = test_read_proc;
-       entry->write_proc = test_write_proc;
-       entry->data = NULL;
-
        return 0;
 }