diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-19 08:23:28 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-19 08:23:28 -0400 |
commit | d5aeee8cb28317ef608ecac421abc4d986d585d2 (patch) | |
tree | 70ec8ed8891f26e5c58152ffca9924ea1c58fe3a /drivers/staging | |
parent | 32898a145404acbebe3256709e012c2830a2043b (diff) | |
parent | e816b57a337ea3b755de72bec38c10c864f23015 (diff) |
Merge tag 'v3.4-rc3' into staging/for_v3.5
* tag 'v3.4-rc3': (3755 commits)
Linux 3.4-rc3
x86-32: fix up strncpy_from_user() sign error
ARM: 7386/1: jump_label: fixup for rename to static_key
ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE
ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU
ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus
PCI: Fix regression in pci_restore_state(), v3
SCSI: Fix error handling when no ULD is attached
ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
ARM: dts: remove blank interrupt-parent properties
ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files
do not export kernel's NULL #define to userspace
ARM: EXYNOS: Remove broken config values for touchscren for NURI board
ARM: EXYNOS: set fix xusbxti clock for NURI and Universal210 boards
ARM: EXYNOS: fix regulator name for NURI board
ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL
cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS
sparc64: Eliminate obsolete __handle_softirq() function
sparc64: Fix bootup crash on sun4v.
ARM: msm: Fix section mismatches in proc_comm.c
...
Diffstat (limited to 'drivers/staging')
54 files changed, 129 insertions, 135 deletions
diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig index 08a3b1133d2..eb1dee26bda 100644 --- a/drivers/staging/android/Kconfig +++ b/drivers/staging/android/Kconfig | |||
@@ -27,13 +27,14 @@ config ANDROID_LOGGER | |||
27 | 27 | ||
28 | config ANDROID_PERSISTENT_RAM | 28 | config ANDROID_PERSISTENT_RAM |
29 | bool | 29 | bool |
30 | depends on HAVE_MEMBLOCK | ||
30 | select REED_SOLOMON | 31 | select REED_SOLOMON |
31 | select REED_SOLOMON_ENC8 | 32 | select REED_SOLOMON_ENC8 |
32 | select REED_SOLOMON_DEC8 | 33 | select REED_SOLOMON_DEC8 |
33 | 34 | ||
34 | config ANDROID_RAM_CONSOLE | 35 | config ANDROID_RAM_CONSOLE |
35 | bool "Android RAM buffer console" | 36 | bool "Android RAM buffer console" |
36 | depends on !S390 && !UML | 37 | depends on !S390 && !UML && HAVE_MEMBLOCK |
37 | select ANDROID_PERSISTENT_RAM | 38 | select ANDROID_PERSISTENT_RAM |
38 | default n | 39 | default n |
39 | 40 | ||
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index 59e095362c8..c2832124bb3 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c | |||
@@ -381,8 +381,7 @@ int task_get_unused_fd_flags(struct binder_proc *proc, int flags) | |||
381 | 381 | ||
382 | repeat: | 382 | repeat: |
383 | fdt = files_fdtable(files); | 383 | fdt = files_fdtable(files); |
384 | fd = find_next_zero_bit(fdt->open_fds->fds_bits, fdt->max_fds, | 384 | fd = find_next_zero_bit(fdt->open_fds, fdt->max_fds, files->next_fd); |
385 | files->next_fd); | ||
386 | 385 | ||
387 | /* | 386 | /* |
388 | * N.B. For clone tasks sharing a files structure, this test | 387 | * N.B. For clone tasks sharing a files structure, this test |
@@ -410,11 +409,11 @@ repeat: | |||
410 | goto repeat; | 409 | goto repeat; |
411 | } | 410 | } |
412 | 411 | ||
413 | FD_SET(fd, fdt->open_fds); | 412 | __set_open_fd(fd, fdt); |
414 | if (flags & O_CLOEXEC) | 413 | if (flags & O_CLOEXEC) |
415 | FD_SET(fd, fdt->close_on_exec); | 414 | __set_close_on_exec(fd, fdt); |
416 | else | 415 | else |
417 | FD_CLR(fd, fdt->close_on_exec); | 416 | __clear_close_on_exec(fd, fdt); |
418 | files->next_fd = fd + 1; | 417 | files->next_fd = fd + 1; |
419 | #if 1 | 418 | #if 1 |
420 | /* Sanity check */ | 419 | /* Sanity check */ |
@@ -455,7 +454,7 @@ static void task_fd_install( | |||
455 | static void __put_unused_fd(struct files_struct *files, unsigned int fd) | 454 | static void __put_unused_fd(struct files_struct *files, unsigned int fd) |
456 | { | 455 | { |
457 | struct fdtable *fdt = files_fdtable(files); | 456 | struct fdtable *fdt = files_fdtable(files); |
458 | __FD_CLR(fd, fdt->open_fds); | 457 | __clear_open_fd(fd, fdt); |
459 | if (fd < files->next_fd) | 458 | if (fd < files->next_fd) |
460 | files->next_fd = fd; | 459 | files->next_fd = fd; |
461 | } | 460 | } |
@@ -481,7 +480,7 @@ static long task_close_fd(struct binder_proc *proc, unsigned int fd) | |||
481 | if (!filp) | 480 | if (!filp) |
482 | goto out_unlock; | 481 | goto out_unlock; |
483 | rcu_assign_pointer(fdt->fd[fd], NULL); | 482 | rcu_assign_pointer(fdt->fd[fd], NULL); |
484 | FD_CLR(fd, fdt->close_on_exec); | 483 | __clear_close_on_exec(fd, fdt); |
485 | __put_unused_fd(files, fd); | 484 | __put_unused_fd(files, fd); |
486 | spin_unlock(&files->file_lock); | 485 | spin_unlock(&files->file_lock); |
487 | retval = filp_close(filp, files); | 486 | retval = filp_close(filp, files); |
diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 052b43e4e50..b91e4bc332a 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c | |||
@@ -55,7 +55,6 @@ static int lowmem_minfree[6] = { | |||
55 | }; | 55 | }; |
56 | static int lowmem_minfree_size = 4; | 56 | static int lowmem_minfree_size = 4; |
57 | 57 | ||
58 | static struct task_struct *lowmem_deathpending; | ||
59 | static unsigned long lowmem_deathpending_timeout; | 58 | static unsigned long lowmem_deathpending_timeout; |
60 | 59 | ||
61 | #define lowmem_print(level, x...) \ | 60 | #define lowmem_print(level, x...) \ |
@@ -64,24 +63,6 @@ static unsigned long lowmem_deathpending_timeout; | |||
64 | printk(x); \ | 63 | printk(x); \ |
65 | } while (0) | 64 | } while (0) |
66 | 65 | ||
67 | static int | ||
68 | task_notify_func(struct notifier_block *self, unsigned long val, void *data); | ||
69 | |||
70 | static struct notifier_block task_nb = { | ||
71 | .notifier_call = task_notify_func, | ||
72 | }; | ||
73 | |||
74 | static int | ||
75 | task_notify_func(struct notifier_block *self, unsigned long val, void *data) | ||
76 | { | ||
77 | struct task_struct *task = data; | ||
78 | |||
79 | if (task == lowmem_deathpending) | ||
80 | lowmem_deathpending = NULL; | ||
81 | |||
82 | return NOTIFY_OK; | ||
83 | } | ||
84 | |||
85 | static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | 66 | static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) |
86 | { | 67 | { |
87 | struct task_struct *tsk; | 68 | struct task_struct *tsk; |
@@ -97,19 +78,6 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
97 | int other_file = global_page_state(NR_FILE_PAGES) - | 78 | int other_file = global_page_state(NR_FILE_PAGES) - |
98 | global_page_state(NR_SHMEM); | 79 | global_page_state(NR_SHMEM); |
99 | 80 | ||
100 | /* | ||
101 | * If we already have a death outstanding, then | ||
102 | * bail out right away; indicating to vmscan | ||
103 | * that we have nothing further to offer on | ||
104 | * this pass. | ||
105 | * | ||
106 | * Note: Currently you need CONFIG_PROFILING | ||
107 | * for this to work correctly. | ||
108 | */ | ||
109 | if (lowmem_deathpending && | ||
110 | time_before_eq(jiffies, lowmem_deathpending_timeout)) | ||
111 | return 0; | ||
112 | |||
113 | if (lowmem_adj_size < array_size) | 81 | if (lowmem_adj_size < array_size) |
114 | array_size = lowmem_adj_size; | 82 | array_size = lowmem_adj_size; |
115 | if (lowmem_minfree_size < array_size) | 83 | if (lowmem_minfree_size < array_size) |
@@ -148,6 +116,12 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
148 | if (!p) | 116 | if (!p) |
149 | continue; | 117 | continue; |
150 | 118 | ||
119 | if (test_tsk_thread_flag(p, TIF_MEMDIE) && | ||
120 | time_before_eq(jiffies, lowmem_deathpending_timeout)) { | ||
121 | task_unlock(p); | ||
122 | rcu_read_unlock(); | ||
123 | return 0; | ||
124 | } | ||
151 | oom_score_adj = p->signal->oom_score_adj; | 125 | oom_score_adj = p->signal->oom_score_adj; |
152 | if (oom_score_adj < min_score_adj) { | 126 | if (oom_score_adj < min_score_adj) { |
153 | task_unlock(p); | 127 | task_unlock(p); |
@@ -174,15 +148,9 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
174 | lowmem_print(1, "send sigkill to %d (%s), adj %d, size %d\n", | 148 | lowmem_print(1, "send sigkill to %d (%s), adj %d, size %d\n", |
175 | selected->pid, selected->comm, | 149 | selected->pid, selected->comm, |
176 | selected_oom_score_adj, selected_tasksize); | 150 | selected_oom_score_adj, selected_tasksize); |
177 | /* | ||
178 | * If CONFIG_PROFILING is off, then we don't want to stall | ||
179 | * the killer by setting lowmem_deathpending. | ||
180 | */ | ||
181 | #ifdef CONFIG_PROFILING | ||
182 | lowmem_deathpending = selected; | ||
183 | lowmem_deathpending_timeout = jiffies + HZ; | 151 | lowmem_deathpending_timeout = jiffies + HZ; |
184 | #endif | ||
185 | send_sig(SIGKILL, selected, 0); | 152 | send_sig(SIGKILL, selected, 0); |
153 | set_tsk_thread_flag(selected, TIF_MEMDIE); | ||
186 | rem -= selected_tasksize; | 154 | rem -= selected_tasksize; |
187 | } | 155 | } |
188 | lowmem_print(4, "lowmem_shrink %lu, %x, return %d\n", | 156 | lowmem_print(4, "lowmem_shrink %lu, %x, return %d\n", |
@@ -198,7 +166,6 @@ static struct shrinker lowmem_shrinker = { | |||
198 | 166 | ||
199 | static int __init lowmem_init(void) | 167 | static int __init lowmem_init(void) |
200 | { | 168 | { |
201 | task_handoff_register(&task_nb); | ||
202 | register_shrinker(&lowmem_shrinker); | 169 | register_shrinker(&lowmem_shrinker); |
203 | return 0; | 170 | return 0; |
204 | } | 171 | } |
@@ -206,7 +173,6 @@ static int __init lowmem_init(void) | |||
206 | static void __exit lowmem_exit(void) | 173 | static void __exit lowmem_exit(void) |
207 | { | 174 | { |
208 | unregister_shrinker(&lowmem_shrinker); | 175 | unregister_shrinker(&lowmem_shrinker); |
209 | task_handoff_unregister(&task_nb); | ||
210 | } | 176 | } |
211 | 177 | ||
212 | module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); | 178 | module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); |
diff --git a/drivers/staging/android/persistent_ram.c b/drivers/staging/android/persistent_ram.c index e08f2574e30..8d8c1e33e0f 100644 --- a/drivers/staging/android/persistent_ram.c +++ b/drivers/staging/android/persistent_ram.c | |||
@@ -399,12 +399,12 @@ static __init | |||
399 | struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | 399 | struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) |
400 | { | 400 | { |
401 | struct persistent_ram_zone *prz; | 401 | struct persistent_ram_zone *prz; |
402 | int ret; | 402 | int ret = -ENOMEM; |
403 | 403 | ||
404 | prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL); | 404 | prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL); |
405 | if (!prz) { | 405 | if (!prz) { |
406 | pr_err("persistent_ram: failed to allocate persistent ram zone\n"); | 406 | pr_err("persistent_ram: failed to allocate persistent ram zone\n"); |
407 | return ERR_PTR(-ENOMEM); | 407 | goto err; |
408 | } | 408 | } |
409 | 409 | ||
410 | INIT_LIST_HEAD(&prz->node); | 410 | INIT_LIST_HEAD(&prz->node); |
@@ -412,13 +412,13 @@ struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | |||
412 | ret = persistent_ram_buffer_init(dev_name(dev), prz); | 412 | ret = persistent_ram_buffer_init(dev_name(dev), prz); |
413 | if (ret) { | 413 | if (ret) { |
414 | pr_err("persistent_ram: failed to initialize buffer\n"); | 414 | pr_err("persistent_ram: failed to initialize buffer\n"); |
415 | return ERR_PTR(ret); | 415 | goto err; |
416 | } | 416 | } |
417 | 417 | ||
418 | prz->ecc = ecc; | 418 | prz->ecc = ecc; |
419 | ret = persistent_ram_init_ecc(prz, prz->buffer_size); | 419 | ret = persistent_ram_init_ecc(prz, prz->buffer_size); |
420 | if (ret) | 420 | if (ret) |
421 | return ERR_PTR(ret); | 421 | goto err; |
422 | 422 | ||
423 | if (prz->buffer->sig == PERSISTENT_RAM_SIG) { | 423 | if (prz->buffer->sig == PERSISTENT_RAM_SIG) { |
424 | if (buffer_size(prz) > prz->buffer_size || | 424 | if (buffer_size(prz) > prz->buffer_size || |
@@ -442,6 +442,9 @@ struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | |||
442 | atomic_set(&prz->buffer->size, 0); | 442 | atomic_set(&prz->buffer->size, 0); |
443 | 443 | ||
444 | return prz; | 444 | return prz; |
445 | err: | ||
446 | kfree(prz); | ||
447 | return ERR_PTR(ret); | ||
445 | } | 448 | } |
446 | 449 | ||
447 | struct persistent_ram_zone * __init | 450 | struct persistent_ram_zone * __init |
diff --git a/drivers/staging/android/timed_gpio.c b/drivers/staging/android/timed_gpio.c index bc723eff11a..45c522cbe78 100644 --- a/drivers/staging/android/timed_gpio.c +++ b/drivers/staging/android/timed_gpio.c | |||
@@ -85,7 +85,7 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
85 | struct timed_gpio_platform_data *pdata = pdev->dev.platform_data; | 85 | struct timed_gpio_platform_data *pdata = pdev->dev.platform_data; |
86 | struct timed_gpio *cur_gpio; | 86 | struct timed_gpio *cur_gpio; |
87 | struct timed_gpio_data *gpio_data, *gpio_dat; | 87 | struct timed_gpio_data *gpio_data, *gpio_dat; |
88 | int i, j, ret = 0; | 88 | int i, ret; |
89 | 89 | ||
90 | if (!pdata) | 90 | if (!pdata) |
91 | return -EBUSY; | 91 | return -EBUSY; |
@@ -108,18 +108,12 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
108 | gpio_dat->dev.get_time = gpio_get_time; | 108 | gpio_dat->dev.get_time = gpio_get_time; |
109 | gpio_dat->dev.enable = gpio_enable; | 109 | gpio_dat->dev.enable = gpio_enable; |
110 | ret = gpio_request(cur_gpio->gpio, cur_gpio->name); | 110 | ret = gpio_request(cur_gpio->gpio, cur_gpio->name); |
111 | if (ret >= 0) { | 111 | if (ret < 0) |
112 | ret = timed_output_dev_register(&gpio_dat->dev); | 112 | goto err_out; |
113 | if (ret < 0) | 113 | ret = timed_output_dev_register(&gpio_dat->dev); |
114 | gpio_free(cur_gpio->gpio); | ||
115 | } | ||
116 | if (ret < 0) { | 114 | if (ret < 0) { |
117 | for (j = 0; j < i; j++) { | 115 | gpio_free(cur_gpio->gpio); |
118 | timed_output_dev_unregister(&gpio_data[i].dev); | 116 | goto err_out; |
119 | gpio_free(gpio_data[i].gpio); | ||
120 | } | ||
121 | kfree(gpio_data); | ||
122 | return ret; | ||
123 | } | 117 | } |
124 | 118 | ||
125 | gpio_dat->gpio = cur_gpio->gpio; | 119 | gpio_dat->gpio = cur_gpio->gpio; |
@@ -131,6 +125,15 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
131 | platform_set_drvdata(pdev, gpio_data); | 125 | platform_set_drvdata(pdev, gpio_data); |
132 | 126 | ||
133 | return 0; | 127 | return 0; |
128 | |||
129 | err_out: | ||
130 | while (--i >= 0) { | ||
131 | timed_output_dev_unregister(&gpio_data[i].dev); | ||
132 | gpio_free(gpio_data[i].gpio); | ||
133 | } | ||
134 | kfree(gpio_data); | ||
135 | |||
136 | return ret; | ||
134 | } | 137 | } |
135 | 138 | ||
136 | static int timed_gpio_remove(struct platform_device *pdev) | 139 | static int timed_gpio_remove(struct platform_device *pdev) |
diff --git a/drivers/staging/asus_oled/README b/drivers/staging/asus_oled/README index 0d82a6d5fa5..2d721232467 100644 --- a/drivers/staging/asus_oled/README +++ b/drivers/staging/asus_oled/README | |||
@@ -52,7 +52,7 @@ Configuration | |||
52 | 52 | ||
53 | There is only one option: start_off. | 53 | There is only one option: start_off. |
54 | You can use it by: 'modprobe asus_oled start_off=1', or by adding this | 54 | You can use it by: 'modprobe asus_oled start_off=1', or by adding this |
55 | line to /etc/modprobe.conf: | 55 | line to /etc/modprobe.d/asus_oled.conf: |
56 | options asus_oled start_off=1 | 56 | options asus_oled start_off=1 |
57 | 57 | ||
58 | With this option provided, asus_oled driver will switch off the display | 58 | With this option provided, asus_oled driver will switch off the display |
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index db1fd63aaab..bf185e2807d 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c | |||
@@ -42,7 +42,6 @@ | |||
42 | #include <linux/cdev.h> | 42 | #include <linux/cdev.h> |
43 | #include <linux/dma-mapping.h> | 43 | #include <linux/dma-mapping.h> |
44 | #include <linux/io.h> | 44 | #include <linux/io.h> |
45 | #include <asm/system.h> | ||
46 | 45 | ||
47 | #include "comedidev.h" | 46 | #include "comedidev.h" |
48 | #include "internal.h" | 47 | #include "internal.h" |
diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c b/drivers/staging/comedi/drivers/cb_pcidas64.c index c9e8c478576..915157d4780 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas64.c +++ b/drivers/staging/comedi/drivers/cb_pcidas64.c | |||
@@ -86,7 +86,6 @@ TODO: | |||
86 | #include "../comedidev.h" | 86 | #include "../comedidev.h" |
87 | #include <linux/delay.h> | 87 | #include <linux/delay.h> |
88 | #include <linux/interrupt.h> | 88 | #include <linux/interrupt.h> |
89 | #include <asm/system.h> | ||
90 | 89 | ||
91 | #include "comedi_pci.h" | 90 | #include "comedi_pci.h" |
92 | #include "8253.h" | 91 | #include "8253.h" |
diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c index fd274e9c7b7..13e9c807169 100644 --- a/drivers/staging/comedi/drivers/mite.c +++ b/drivers/staging/comedi/drivers/mite.c | |||
@@ -55,7 +55,6 @@ | |||
55 | #include "comedi_pci.h" | 55 | #include "comedi_pci.h" |
56 | #include "../comedidev.h" | 56 | #include "../comedidev.h" |
57 | 57 | ||
58 | #include <asm/system.h> | ||
59 | 58 | ||
60 | #define PCI_MITE_SIZE 4096 | 59 | #define PCI_MITE_SIZE 4096 |
61 | #define PCI_DAQ_SIZE 4096 | 60 | #define PCI_DAQ_SIZE 4096 |
diff --git a/drivers/staging/crystalhd/bc_dts_defs.h b/drivers/staging/crystalhd/bc_dts_defs.h index 8cd51a7aad8..647e116e10d 100644 --- a/drivers/staging/crystalhd/bc_dts_defs.h +++ b/drivers/staging/crystalhd/bc_dts_defs.h | |||
@@ -26,6 +26,8 @@ | |||
26 | #ifndef _BC_DTS_DEFS_H_ | 26 | #ifndef _BC_DTS_DEFS_H_ |
27 | #define _BC_DTS_DEFS_H_ | 27 | #define _BC_DTS_DEFS_H_ |
28 | 28 | ||
29 | #include <linux/types.h> | ||
30 | |||
29 | /* BIT Mask */ | 31 | /* BIT Mask */ |
30 | #define BC_BIT(_x) (1 << (_x)) | 32 | #define BC_BIT(_x) (1 << (_x)) |
31 | 33 | ||
diff --git a/drivers/staging/crystalhd/crystalhd.h b/drivers/staging/crystalhd/crystalhd.h index 3f4d7951502..b3a550bd5b0 100644 --- a/drivers/staging/crystalhd/crystalhd.h +++ b/drivers/staging/crystalhd/crystalhd.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _CRYSTALHD_H_ | 1 | #ifndef _CRYSTALHD_H_ |
2 | #define _CRYSTALHD_H_ | 2 | #define _CRYSTALHD_H_ |
3 | 3 | ||
4 | #include <asm/system.h> | ||
5 | #include "bc_dts_defs.h" | 4 | #include "bc_dts_defs.h" |
6 | #include "crystalhd_misc.h" | 5 | #include "crystalhd_misc.h" |
7 | #include "bc_dts_glob_lnx.h" | 6 | #include "bc_dts_glob_lnx.h" |
diff --git a/drivers/staging/crystalhd/crystalhd_lnx.h b/drivers/staging/crystalhd/crystalhd_lnx.h index a81f9298b0a..a9e36336d09 100644 --- a/drivers/staging/crystalhd/crystalhd_lnx.h +++ b/drivers/staging/crystalhd/crystalhd_lnx.h | |||
@@ -45,7 +45,6 @@ | |||
45 | #include <linux/io.h> | 45 | #include <linux/io.h> |
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/pgtable.h> | 47 | #include <asm/pgtable.h> |
48 | #include <asm/system.h> | ||
49 | #include <linux/uaccess.h> | 48 | #include <linux/uaccess.h> |
50 | 49 | ||
51 | #include "crystalhd.h" | 50 | #include "crystalhd.h" |
diff --git a/drivers/staging/crystalhd/crystalhd_misc.h b/drivers/staging/crystalhd/crystalhd_misc.h index 84c87938a83..8cdaa7a3481 100644 --- a/drivers/staging/crystalhd/crystalhd_misc.h +++ b/drivers/staging/crystalhd/crystalhd_misc.h | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/ioctl.h> | 37 | #include <linux/ioctl.h> |
38 | #include <linux/dma-mapping.h> | 38 | #include <linux/dma-mapping.h> |
39 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
40 | #include "bc_dts_glob_lnx.h" | ||
40 | 41 | ||
41 | /* Global log level variable defined in crystal_misc.c file */ | 42 | /* Global log level variable defined in crystal_misc.c file */ |
42 | extern uint32_t g_linklog_level; | 43 | extern uint32_t g_linklog_level; |
diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c index 3f919babe79..886f5650444 100644 --- a/drivers/staging/et131x/et131x.c +++ b/drivers/staging/et131x/et131x.c | |||
@@ -70,7 +70,6 @@ | |||
70 | #include <linux/delay.h> | 70 | #include <linux/delay.h> |
71 | #include <linux/bitops.h> | 71 | #include <linux/bitops.h> |
72 | #include <linux/io.h> | 72 | #include <linux/io.h> |
73 | #include <asm/system.h> | ||
74 | 73 | ||
75 | #include <linux/netdevice.h> | 74 | #include <linux/netdevice.h> |
76 | #include <linux/etherdevice.h> | 75 | #include <linux/etherdevice.h> |
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c index 7569aa0f24d..c4a8a0a26eb 100644 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
30 | #include <linux/in.h> | 30 | #include <linux/in.h> |
31 | #include <asm/io.h> | 31 | #include <asm/io.h> |
32 | #include <asm/system.h> | ||
33 | #include <asm/bitops.h> | 32 | #include <asm/bitops.h> |
34 | 33 | ||
35 | #include <linux/netdevice.h> | 34 | #include <linux/netdevice.h> |
diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c index c0ca7093e0e..02cc23420b9 100644 --- a/drivers/staging/iio/gyro/adis16060_core.c +++ b/drivers/staging/iio/gyro/adis16060_core.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/spi/spi.h> | 14 | #include <linux/spi/spi.h> |
15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
16 | #include <linux/sysfs.h> | 16 | #include <linux/sysfs.h> |
17 | #include <linux/module.h> | ||
18 | 17 | ||
19 | #include "../iio.h" | 18 | #include "../iio.h" |
20 | #include "../sysfs.h" | 19 | #include "../sysfs.h" |
diff --git a/drivers/staging/iio/inkern.c b/drivers/staging/iio/inkern.c index de2c8ea6496..ef07a02bf54 100644 --- a/drivers/staging/iio/inkern.c +++ b/drivers/staging/iio/inkern.c | |||
@@ -82,6 +82,7 @@ int iio_map_array_unregister(struct iio_dev *indio_dev, | |||
82 | ret = -ENODEV; | 82 | ret = -ENODEV; |
83 | goto error_ret; | 83 | goto error_ret; |
84 | } | 84 | } |
85 | i++; | ||
85 | } | 86 | } |
86 | error_ret: | 87 | error_ret: |
87 | mutex_unlock(&iio_map_list_lock); | 88 | mutex_unlock(&iio_map_list_lock); |
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c index d5ddac3d883..ebc2d0840ca 100644 --- a/drivers/staging/iio/magnetometer/ak8975.c +++ b/drivers/staging/iio/magnetometer/ak8975.c | |||
@@ -108,7 +108,8 @@ static const int ak8975_index_to_reg[] = { | |||
108 | static int ak8975_write_data(struct i2c_client *client, | 108 | static int ak8975_write_data(struct i2c_client *client, |
109 | u8 reg, u8 val, u8 mask, u8 shift) | 109 | u8 reg, u8 val, u8 mask, u8 shift) |
110 | { | 110 | { |
111 | struct ak8975_data *data = i2c_get_clientdata(client); | 111 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
112 | struct ak8975_data *data = iio_priv(indio_dev); | ||
112 | u8 regval; | 113 | u8 regval; |
113 | int ret; | 114 | int ret; |
114 | 115 | ||
@@ -159,7 +160,8 @@ static int ak8975_read_data(struct i2c_client *client, | |||
159 | */ | 160 | */ |
160 | static int ak8975_setup(struct i2c_client *client) | 161 | static int ak8975_setup(struct i2c_client *client) |
161 | { | 162 | { |
162 | struct ak8975_data *data = i2c_get_clientdata(client); | 163 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
164 | struct ak8975_data *data = iio_priv(indio_dev); | ||
163 | u8 device_id; | 165 | u8 device_id; |
164 | int ret; | 166 | int ret; |
165 | 167 | ||
@@ -509,6 +511,7 @@ static int ak8975_probe(struct i2c_client *client, | |||
509 | goto exit_gpio; | 511 | goto exit_gpio; |
510 | } | 512 | } |
511 | data = iio_priv(indio_dev); | 513 | data = iio_priv(indio_dev); |
514 | i2c_set_clientdata(client, indio_dev); | ||
512 | /* Perform some basic start-of-day setup of the device. */ | 515 | /* Perform some basic start-of-day setup of the device. */ |
513 | err = ak8975_setup(client); | 516 | err = ak8975_setup(client); |
514 | if (err < 0) { | 517 | if (err < 0) { |
@@ -516,7 +519,6 @@ static int ak8975_probe(struct i2c_client *client, | |||
516 | goto exit_free_iio; | 519 | goto exit_free_iio; |
517 | } | 520 | } |
518 | 521 | ||
519 | i2c_set_clientdata(client, indio_dev); | ||
520 | data->client = client; | 522 | data->client = client; |
521 | mutex_init(&data->lock); | 523 | mutex_init(&data->lock); |
522 | data->eoc_irq = client->irq; | 524 | data->eoc_irq = client->irq; |
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c index 91dd3da70cb..e00b416c4d3 100644 --- a/drivers/staging/iio/magnetometer/hmc5843.c +++ b/drivers/staging/iio/magnetometer/hmc5843.c | |||
@@ -521,7 +521,9 @@ static int hmc5843_detect(struct i2c_client *client, | |||
521 | /* Called when we have found a new HMC5843. */ | 521 | /* Called when we have found a new HMC5843. */ |
522 | static void hmc5843_init_client(struct i2c_client *client) | 522 | static void hmc5843_init_client(struct i2c_client *client) |
523 | { | 523 | { |
524 | struct hmc5843_data *data = i2c_get_clientdata(client); | 524 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
525 | struct hmc5843_data *data = iio_priv(indio_dev); | ||
526 | |||
525 | hmc5843_set_meas_conf(client, data->meas_conf); | 527 | hmc5843_set_meas_conf(client, data->meas_conf); |
526 | hmc5843_set_rate(client, data->rate); | 528 | hmc5843_set_rate(client, data->rate); |
527 | hmc5843_configure(client, data->operating_mode); | 529 | hmc5843_configure(client, data->operating_mode); |
diff --git a/drivers/staging/media/go7007/go7007-driver.c b/drivers/staging/media/go7007/go7007-driver.c index 6c9279a6d60..ece2dd14648 100644 --- a/drivers/staging/media/go7007/go7007-driver.c +++ b/drivers/staging/media/go7007/go7007-driver.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/mutex.h> | 30 | #include <linux/mutex.h> |
31 | #include <linux/uaccess.h> | 31 | #include <linux/uaccess.h> |
32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
33 | #include <asm/system.h> | ||
34 | #include <linux/videodev2.h> | 33 | #include <linux/videodev2.h> |
35 | #include <media/tuner.h> | 34 | #include <media/tuner.h> |
36 | #include <media/v4l2-common.h> | 35 | #include <media/v4l2-common.h> |
diff --git a/drivers/staging/media/go7007/go7007-i2c.c b/drivers/staging/media/go7007/go7007-i2c.c index b8cfa1a6eae..6bc82aaeef1 100644 --- a/drivers/staging/media/go7007/go7007-i2c.c +++ b/drivers/staging/media/go7007/go7007-i2c.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/mutex.h> | 27 | #include <linux/mutex.h> |
28 | #include <linux/uaccess.h> | 28 | #include <linux/uaccess.h> |
29 | #include <asm/system.h> | ||
30 | 29 | ||
31 | #include "go7007-priv.h" | 30 | #include "go7007-priv.h" |
32 | #include "wis-i2c.h" | 31 | #include "wis-i2c.h" |
diff --git a/drivers/staging/media/go7007/go7007-v4l2.c b/drivers/staging/media/go7007/go7007-v4l2.c index f91658670e3..3ef4cd8b4de 100644 --- a/drivers/staging/media/go7007/go7007-v4l2.c +++ b/drivers/staging/media/go7007/go7007-v4l2.c | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <linux/i2c.h> | 34 | #include <linux/i2c.h> |
35 | #include <linux/mutex.h> | 35 | #include <linux/mutex.h> |
36 | #include <linux/uaccess.h> | 36 | #include <linux/uaccess.h> |
37 | #include <asm/system.h> | ||
38 | 37 | ||
39 | #include "go7007.h" | 38 | #include "go7007.h" |
40 | #include "go7007-priv.h" | 39 | #include "go7007-priv.h" |
diff --git a/drivers/staging/media/go7007/snd-go7007.c b/drivers/staging/media/go7007/snd-go7007.c index d071c838ac2..5af29ff68bf 100644 --- a/drivers/staging/media/go7007/snd-go7007.c +++ b/drivers/staging/media/go7007/snd-go7007.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <linux/mutex.h> | 29 | #include <linux/mutex.h> |
30 | #include <linux/uaccess.h> | 30 | #include <linux/uaccess.h> |
31 | #include <linux/slab.h> | 31 | #include <linux/slab.h> |
32 | #include <asm/system.h> | ||
33 | #include <sound/core.h> | 32 | #include <sound/core.h> |
34 | #include <sound/pcm.h> | 33 | #include <sound/pcm.h> |
35 | #include <sound/initval.h> | 34 | #include <sound/initval.h> |
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c index 97352cf6bd9..3295ea63f3e 100644 --- a/drivers/staging/media/lirc/lirc_serial.c +++ b/drivers/staging/media/lirc/lirc_serial.c | |||
@@ -66,7 +66,6 @@ | |||
66 | #include <linux/poll.h> | 66 | #include <linux/poll.h> |
67 | #include <linux/platform_device.h> | 67 | #include <linux/platform_device.h> |
68 | 68 | ||
69 | #include <asm/system.h> | ||
70 | #include <linux/io.h> | 69 | #include <linux/io.h> |
71 | #include <linux/irq.h> | 70 | #include <linux/irq.h> |
72 | #include <linux/fcntl.h> | 71 | #include <linux/fcntl.h> |
diff --git a/drivers/staging/media/lirc/lirc_sir.c b/drivers/staging/media/lirc/lirc_sir.c index c94382b917a..945d9623550 100644 --- a/drivers/staging/media/lirc/lirc_sir.c +++ b/drivers/staging/media/lirc/lirc_sir.c | |||
@@ -49,7 +49,6 @@ | |||
49 | #include <linux/mm.h> | 49 | #include <linux/mm.h> |
50 | #include <linux/delay.h> | 50 | #include <linux/delay.h> |
51 | #include <linux/poll.h> | 51 | #include <linux/poll.h> |
52 | #include <asm/system.h> | ||
53 | #include <linux/io.h> | 52 | #include <linux/io.h> |
54 | #include <asm/irq.h> | 53 | #include <asm/irq.h> |
55 | #include <linux/fcntl.h> | 54 | #include <linux/fcntl.h> |
diff --git a/drivers/staging/mei/wd.c b/drivers/staging/mei/wd.c index a6910da78a6..cf4c29d10e7 100644 --- a/drivers/staging/mei/wd.c +++ b/drivers/staging/mei/wd.c | |||
@@ -323,6 +323,7 @@ static int mei_wd_ops_set_timeout(struct watchdog_device *wd_dev, unsigned int t | |||
323 | mutex_lock(&dev->device_lock); | 323 | mutex_lock(&dev->device_lock); |
324 | 324 | ||
325 | dev->wd_timeout = timeout; | 325 | dev->wd_timeout = timeout; |
326 | wd_dev->timeout = timeout; | ||
326 | mei_wd_set_start_timeout(dev, dev->wd_timeout); | 327 | mei_wd_set_start_timeout(dev, dev->wd_timeout); |
327 | 328 | ||
328 | mutex_unlock(&dev->device_lock); | 329 | mutex_unlock(&dev->device_lock); |
diff --git a/drivers/staging/omapdrm/omap_drv.c b/drivers/staging/omapdrm/omap_drv.c index 3df5b4c58ec..620b8d54223 100644 --- a/drivers/staging/omapdrm/omap_drv.c +++ b/drivers/staging/omapdrm/omap_drv.c | |||
@@ -803,9 +803,6 @@ static void pdev_shutdown(struct platform_device *device) | |||
803 | static int pdev_probe(struct platform_device *device) | 803 | static int pdev_probe(struct platform_device *device) |
804 | { | 804 | { |
805 | DBG("%s", device->name); | 805 | DBG("%s", device->name); |
806 | if (platform_driver_register(&omap_dmm_driver)) | ||
807 | dev_err(&device->dev, "DMM registration failed\n"); | ||
808 | |||
809 | return drm_platform_init(&omap_drm_driver, device); | 806 | return drm_platform_init(&omap_drm_driver, device); |
810 | } | 807 | } |
811 | 808 | ||
@@ -833,6 +830,10 @@ struct platform_driver pdev = { | |||
833 | static int __init omap_drm_init(void) | 830 | static int __init omap_drm_init(void) |
834 | { | 831 | { |
835 | DBG("init"); | 832 | DBG("init"); |
833 | if (platform_driver_register(&omap_dmm_driver)) { | ||
834 | /* we can continue on without DMM.. so not fatal */ | ||
835 | dev_err(NULL, "DMM registration failed\n"); | ||
836 | } | ||
836 | return platform_driver_register(&pdev); | 837 | return platform_driver_register(&pdev); |
837 | } | 838 | } |
838 | 839 | ||
diff --git a/drivers/staging/ozwpan/TODO b/drivers/staging/ozwpan/TODO index f7a9c122f59..c2d30a7112f 100644 --- a/drivers/staging/ozwpan/TODO +++ b/drivers/staging/ozwpan/TODO | |||
@@ -8,5 +8,7 @@ TODO: | |||
8 | - code review by USB developer community. | 8 | - code review by USB developer community. |
9 | - testing with as many devices as possible. | 9 | - testing with as many devices as possible. |
10 | 10 | ||
11 | Please send any patches for this driver to Chris Kelly <ckelly@ozmodevices.com> | 11 | Please send any patches for this driver to |
12 | Rupesh Gujare <rgujare@ozmodevices.com> | ||
13 | Chris Kelly <ckelly@ozmodevices.com> | ||
12 | and Greg Kroah-Hartman <gregkh@linuxfoundation.org>. | 14 | and Greg Kroah-Hartman <gregkh@linuxfoundation.org>. |
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 4683d5f355c..6183573f112 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c | |||
@@ -58,7 +58,6 @@ | |||
58 | 58 | ||
59 | #include <linux/io.h> | 59 | #include <linux/io.h> |
60 | #include <linux/uaccess.h> | 60 | #include <linux/uaccess.h> |
61 | #include <asm/system.h> | ||
62 | 61 | ||
63 | #define LCD_MINOR 156 | 62 | #define LCD_MINOR 156 |
64 | #define KEYPAD_MINOR 185 | 63 | #define KEYPAD_MINOR 185 |
diff --git a/drivers/staging/ramster/Kconfig b/drivers/staging/ramster/Kconfig index 8b57b87edda..4af1f8d4b95 100644 --- a/drivers/staging/ramster/Kconfig +++ b/drivers/staging/ramster/Kconfig | |||
@@ -1,10 +1,6 @@ | |||
1 | # Dependency on CONFIG_BROKEN is because there is a commit dependency | ||
2 | # on a cleancache naming change to be submitted by Konrad Wilk | ||
3 | # a39c00ded70339603ffe1b0ffdf3ade85bcf009a "Merge branch 'stable/cleancache.v13' | ||
4 | # into linux-next. Once this commit is present, BROKEN can be removed | ||
5 | config RAMSTER | 1 | config RAMSTER |
6 | bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem" | 2 | bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem" |
7 | depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS=y && !ZCACHE && !XVMALLOC && !HIGHMEM && BROKEN | 3 | depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS=y && !ZCACHE && !XVMALLOC && !HIGHMEM |
8 | select LZO_COMPRESS | 4 | select LZO_COMPRESS |
9 | select LZO_DECOMPRESS | 5 | select LZO_DECOMPRESS |
10 | default n | 6 | default n |
diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c index e4ade550cfe..4fe52f6b003 100644 --- a/drivers/staging/rtl8187se/r8180_core.c +++ b/drivers/staging/rtl8187se/r8180_core.c | |||
@@ -4159,7 +4159,7 @@ void GPIOChangeRFWorkItemCallBack(struct work_struct *work) | |||
4159 | argv[0] = RadioPowerPath; | 4159 | argv[0] = RadioPowerPath; |
4160 | argv[2] = NULL; | 4160 | argv[2] = NULL; |
4161 | 4161 | ||
4162 | call_usermodehelper(RadioPowerPath, argv, envp, 1); | 4162 | call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); |
4163 | } | 4163 | } |
4164 | } | 4164 | } |
4165 | 4165 | ||
diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a7fa9aad6f2..f026b7171f6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | |||
@@ -208,7 +208,7 @@ static void dm_check_ac_dc_power(struct net_device *dev) | |||
208 | 208 | ||
209 | if (priv->rtllib->state != RTLLIB_LINKED) | 209 | if (priv->rtllib->state != RTLLIB_LINKED) |
210 | return; | 210 | return; |
211 | call_usermodehelper(ac_dc_check_script_path, argv, envp, 1); | 211 | call_usermodehelper(ac_dc_check_script_path, argv, envp, UMH_WAIT_PROC); |
212 | 212 | ||
213 | return; | 213 | return; |
214 | }; | 214 | }; |
@@ -2296,7 +2296,7 @@ void dm_CheckRfCtrlGPIO(void *data) | |||
2296 | 2296 | ||
2297 | argv[0] = RadioPowerPath; | 2297 | argv[0] = RadioPowerPath; |
2298 | argv[2] = NULL; | 2298 | argv[2] = NULL; |
2299 | call_usermodehelper(RadioPowerPath, argv, envp, 1); | 2299 | call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); |
2300 | } | 2300 | } |
2301 | } | 2301 | } |
2302 | 2302 | ||
diff --git a/drivers/staging/rts_pstor/ms.c b/drivers/staging/rts_pstor/ms.c index 66341dff8c9..f9a4498984c 100644 --- a/drivers/staging/rts_pstor/ms.c +++ b/drivers/staging/rts_pstor/ms.c | |||
@@ -3498,7 +3498,8 @@ static int ms_rw_multi_sector(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 | |||
3498 | 3498 | ||
3499 | log_blk++; | 3499 | log_blk++; |
3500 | 3500 | ||
3501 | for (seg_no = 0; seg_no < sizeof(ms_start_idx)/2; seg_no++) { | 3501 | for (seg_no = 0; seg_no < ARRAY_SIZE(ms_start_idx) - 1; |
3502 | seg_no++) { | ||
3502 | if (log_blk < ms_start_idx[seg_no+1]) | 3503 | if (log_blk < ms_start_idx[seg_no+1]) |
3503 | break; | 3504 | break; |
3504 | } | 3505 | } |
diff --git a/drivers/staging/rts_pstor/rtsx.c b/drivers/staging/rts_pstor/rtsx.c index a7feb3e328a..1dccd933a7e 100644 --- a/drivers/staging/rts_pstor/rtsx.c +++ b/drivers/staging/rts_pstor/rtsx.c | |||
@@ -1000,6 +1000,11 @@ static int __devinit rtsx_probe(struct pci_dev *pci, | |||
1000 | 1000 | ||
1001 | rtsx_init_chip(dev->chip); | 1001 | rtsx_init_chip(dev->chip); |
1002 | 1002 | ||
1003 | /* set the supported max_lun and max_id for the scsi host | ||
1004 | * NOTE: the minimal value of max_id is 1 */ | ||
1005 | host->max_id = 1; | ||
1006 | host->max_lun = dev->chip->max_lun; | ||
1007 | |||
1003 | /* Start up our control thread */ | 1008 | /* Start up our control thread */ |
1004 | th = kthread_run(rtsx_control_thread, dev, CR_DRIVER_NAME); | 1009 | th = kthread_run(rtsx_control_thread, dev, CR_DRIVER_NAME); |
1005 | if (IS_ERR(th)) { | 1010 | if (IS_ERR(th)) { |
diff --git a/drivers/staging/rts_pstor/rtsx_transport.c b/drivers/staging/rts_pstor/rtsx_transport.c index 4e3d2c106af..9b2e5c99870 100644 --- a/drivers/staging/rts_pstor/rtsx_transport.c +++ b/drivers/staging/rts_pstor/rtsx_transport.c | |||
@@ -335,6 +335,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
335 | int sg_cnt, i, resid; | 335 | int sg_cnt, i, resid; |
336 | int err = 0; | 336 | int err = 0; |
337 | long timeleft; | 337 | long timeleft; |
338 | struct scatterlist *sg_ptr; | ||
338 | u32 val = TRIG_DMA; | 339 | u32 val = TRIG_DMA; |
339 | 340 | ||
340 | if ((sg == NULL) || (num_sg <= 0) || !offset || !index) | 341 | if ((sg == NULL) || (num_sg <= 0) || !offset || !index) |
@@ -371,7 +372,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
371 | sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); | 372 | sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); |
372 | 373 | ||
373 | resid = size; | 374 | resid = size; |
374 | 375 | sg_ptr = sg; | |
375 | chip->sgi = 0; | 376 | chip->sgi = 0; |
376 | /* Usually the next entry will be @sg@ + 1, but if this sg element | 377 | /* Usually the next entry will be @sg@ + 1, but if this sg element |
377 | * is part of a chained scatterlist, it could jump to the start of | 378 | * is part of a chained scatterlist, it could jump to the start of |
@@ -379,14 +380,14 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
379 | * the proper sg | 380 | * the proper sg |
380 | */ | 381 | */ |
381 | for (i = 0; i < *index; i++) | 382 | for (i = 0; i < *index; i++) |
382 | sg = sg_next(sg); | 383 | sg_ptr = sg_next(sg_ptr); |
383 | for (i = *index; i < sg_cnt; i++) { | 384 | for (i = *index; i < sg_cnt; i++) { |
384 | dma_addr_t addr; | 385 | dma_addr_t addr; |
385 | unsigned int len; | 386 | unsigned int len; |
386 | u8 option; | 387 | u8 option; |
387 | 388 | ||
388 | addr = sg_dma_address(sg); | 389 | addr = sg_dma_address(sg_ptr); |
389 | len = sg_dma_len(sg); | 390 | len = sg_dma_len(sg_ptr); |
390 | 391 | ||
391 | RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", | 392 | RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", |
392 | (unsigned int)addr, len); | 393 | (unsigned int)addr, len); |
@@ -415,7 +416,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
415 | if (!resid) | 416 | if (!resid) |
416 | break; | 417 | break; |
417 | 418 | ||
418 | sg = sg_next(sg); | 419 | sg_ptr = sg_next(sg_ptr); |
419 | } | 420 | } |
420 | 421 | ||
421 | RTSX_DEBUGP("SG table count = %d\n", chip->sgi); | 422 | RTSX_DEBUGP("SG table count = %d\n", chip->sgi); |
diff --git a/drivers/staging/sbe-2t3e3/io.c b/drivers/staging/sbe-2t3e3/io.c index b458ff03406..9a50bcc5959 100644 --- a/drivers/staging/sbe-2t3e3/io.c +++ b/drivers/staging/sbe-2t3e3/io.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/ip.h> | 13 | #include <linux/ip.h> |
14 | #include <asm/system.h> | ||
15 | #include "2t3e3.h" | 14 | #include "2t3e3.h" |
16 | #include "ctrl.h" | 15 | #include "ctrl.h" |
17 | 16 | ||
diff --git a/drivers/staging/sep/sep_main.c b/drivers/staging/sep/sep_main.c index ad54c2e5c93..f1701bc6e31 100644 --- a/drivers/staging/sep/sep_main.c +++ b/drivers/staging/sep/sep_main.c | |||
@@ -3114,7 +3114,7 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
3114 | current->pid); | 3114 | current->pid); |
3115 | if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET, | 3115 | if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET, |
3116 | &call_status->status)) { | 3116 | &call_status->status)) { |
3117 | dev_warn(&sep->pdev->dev, | 3117 | dev_dbg(&sep->pdev->dev, |
3118 | "[PID%d] dcb prep needed before send msg\n", | 3118 | "[PID%d] dcb prep needed before send msg\n", |
3119 | current->pid); | 3119 | current->pid); |
3120 | error = -EPROTO; | 3120 | error = -EPROTO; |
@@ -3122,9 +3122,9 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
3122 | } | 3122 | } |
3123 | 3123 | ||
3124 | if (!arg) { | 3124 | if (!arg) { |
3125 | dev_warn(&sep->pdev->dev, | 3125 | dev_dbg(&sep->pdev->dev, |
3126 | "[PID%d] dcb null arg\n", current->pid); | 3126 | "[PID%d] dcb null arg\n", current->pid); |
3127 | error = EINVAL; | 3127 | error = -EINVAL; |
3128 | goto end_function; | 3128 | goto end_function; |
3129 | } | 3129 | } |
3130 | 3130 | ||
diff --git a/drivers/staging/ste_rmi4/Makefile b/drivers/staging/ste_rmi4/Makefile index 176f4690057..e4c03351420 100644 --- a/drivers/staging/ste_rmi4/Makefile +++ b/drivers/staging/ste_rmi4/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | # Makefile for the RMI4 touchscreen driver. | 2 | # Makefile for the RMI4 touchscreen driver. |
3 | # | 3 | # |
4 | obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4.o | 4 | obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4.o |
5 | obj-$(CONFIG_MACH_U8500) += board-mop500-u8500uib-rmi4.o | 5 | obj-$(CONFIG_MACH_MOP500) += board-mop500-u8500uib-rmi4.o |
diff --git a/drivers/staging/telephony/phonedev.c b/drivers/staging/telephony/phonedev.c index 1915af20117..1dd0b6717cc 100644 --- a/drivers/staging/telephony/phonedev.c +++ b/drivers/staging/telephony/phonedev.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/phonedev.h> | 24 | #include <linux/phonedev.h> |
25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
26 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
27 | #include <asm/system.h> | ||
28 | 27 | ||
29 | #include <linux/kmod.h> | 28 | #include <linux/kmod.h> |
30 | #include <linux/sem.h> | 29 | #include <linux/sem.h> |
diff --git a/drivers/staging/tidspbridge/include/dspbridge/host_os.h b/drivers/staging/tidspbridge/include/dspbridge/host_os.h index a2f31c69d12..ed00d3da320 100644 --- a/drivers/staging/tidspbridge/include/dspbridge/host_os.h +++ b/drivers/staging/tidspbridge/include/dspbridge/host_os.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef _HOST_OS_H_ | 17 | #ifndef _HOST_OS_H_ |
18 | #define _HOST_OS_H_ | 18 | #define _HOST_OS_H_ |
19 | 19 | ||
20 | #include <asm/system.h> | ||
21 | #include <linux/atomic.h> | 20 | #include <linux/atomic.h> |
22 | #include <linux/semaphore.h> | 21 | #include <linux/semaphore.h> |
23 | #include <linux/uaccess.h> | 22 | #include <linux/uaccess.h> |
diff --git a/drivers/staging/vme/devices/vme_pio2_core.c b/drivers/staging/vme/devices/vme_pio2_core.c index 9fedc442a77..573c80003f0 100644 --- a/drivers/staging/vme/devices/vme_pio2_core.c +++ b/drivers/staging/vme/devices/vme_pio2_core.c | |||
@@ -35,10 +35,10 @@ static int vector[PIO2_CARDS_MAX]; | |||
35 | static int vector_num; | 35 | static int vector_num; |
36 | static int level[PIO2_CARDS_MAX]; | 36 | static int level[PIO2_CARDS_MAX]; |
37 | static int level_num; | 37 | static int level_num; |
38 | static const char *variant[PIO2_CARDS_MAX]; | 38 | static char *variant[PIO2_CARDS_MAX]; |
39 | static int variant_num; | 39 | static int variant_num; |
40 | 40 | ||
41 | static int loopback; | 41 | static bool loopback; |
42 | 42 | ||
43 | static int pio2_match(struct vme_dev *); | 43 | static int pio2_match(struct vme_dev *); |
44 | static int __devinit pio2_probe(struct vme_dev *); | 44 | static int __devinit pio2_probe(struct vme_dev *); |
diff --git a/drivers/staging/vt6655/key.c b/drivers/staging/vt6655/key.c index 0ff8d7bbf2a..774b0d4a7e0 100644 --- a/drivers/staging/vt6655/key.c +++ b/drivers/staging/vt6655/key.c | |||
@@ -655,6 +655,9 @@ bool KeybSetDefaultKey ( | |||
655 | return (false); | 655 | return (false); |
656 | } | 656 | } |
657 | 657 | ||
658 | if (uKeyLength > MAX_KEY_LEN) | ||
659 | return false; | ||
660 | |||
658 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = true; | 661 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = true; |
659 | for(ii=0;ii<ETH_ALEN;ii++) | 662 | for(ii=0;ii<ETH_ALEN;ii++) |
660 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; | 663 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; |
diff --git a/drivers/staging/vt6656/ioctl.c b/drivers/staging/vt6656/ioctl.c index 1463d76895f..d59456c29df 100644 --- a/drivers/staging/vt6656/ioctl.c +++ b/drivers/staging/vt6656/ioctl.c | |||
@@ -565,7 +565,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) | |||
565 | result = -ENOMEM; | 565 | result = -ENOMEM; |
566 | break; | 566 | break; |
567 | } | 567 | } |
568 | pNodeList = (PSNodeList)kmalloc(sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)), (int)GFP_ATOMIC); | 568 | pNodeList = kmalloc(sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)), (int)GFP_ATOMIC); |
569 | if (pNodeList == NULL) { | 569 | if (pNodeList == NULL) { |
570 | result = -ENOMEM; | 570 | result = -ENOMEM; |
571 | break; | 571 | break; |
@@ -601,6 +601,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) | |||
601 | } | 601 | } |
602 | } | 602 | } |
603 | if (copy_to_user(pReq->data, pNodeList, sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)))) { | 603 | if (copy_to_user(pReq->data, pNodeList, sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)))) { |
604 | kfree(pNodeList); | ||
604 | result = -EFAULT; | 605 | result = -EFAULT; |
605 | break; | 606 | break; |
606 | } | 607 | } |
diff --git a/drivers/staging/vt6656/key.c b/drivers/staging/vt6656/key.c index 27bb523c8a9..ee62a06a75f 100644 --- a/drivers/staging/vt6656/key.c +++ b/drivers/staging/vt6656/key.c | |||
@@ -684,6 +684,9 @@ BOOL KeybSetDefaultKey( | |||
684 | return (FALSE); | 684 | return (FALSE); |
685 | } | 685 | } |
686 | 686 | ||
687 | if (uKeyLength > MAX_KEY_LEN) | ||
688 | return false; | ||
689 | |||
687 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE; | 690 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE; |
688 | for (ii = 0; ii < ETH_ALEN; ii++) | 691 | for (ii = 0; ii < ETH_ALEN; ii++) |
689 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; | 692 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; |
diff --git a/drivers/staging/wlags49_h2/hcf.c b/drivers/staging/wlags49_h2/hcf.c index b008773323b..5957c3a439a 100644 --- a/drivers/staging/wlags49_h2/hcf.c +++ b/drivers/staging/wlags49_h2/hcf.c | |||
@@ -91,6 +91,7 @@ | |||
91 | #include "hcf.h" // HCF and MSF common include file | 91 | #include "hcf.h" // HCF and MSF common include file |
92 | #include "hcfdef.h" // HCF specific include file | 92 | #include "hcfdef.h" // HCF specific include file |
93 | #include "mmd.h" // MoreModularDriver common include file | 93 | #include "mmd.h" // MoreModularDriver common include file |
94 | #include <linux/bug.h> | ||
94 | #include <linux/kernel.h> | 95 | #include <linux/kernel.h> |
95 | 96 | ||
96 | #if ! defined offsetof | 97 | #if ! defined offsetof |
diff --git a/drivers/staging/wlags49_h2/wl_cs.c b/drivers/staging/wlags49_h2/wl_cs.c index a2cbb29c3f5..7084f414846 100644 --- a/drivers/staging/wlags49_h2/wl_cs.c +++ b/drivers/staging/wlags49_h2/wl_cs.c | |||
@@ -74,7 +74,6 @@ | |||
74 | #include <linux/in.h> | 74 | #include <linux/in.h> |
75 | #include <linux/delay.h> | 75 | #include <linux/delay.h> |
76 | #include <asm/io.h> | 76 | #include <asm/io.h> |
77 | #include <asm/system.h> | ||
78 | #include <asm/bitops.h> | 77 | #include <asm/bitops.h> |
79 | 78 | ||
80 | #include <linux/netdevice.h> | 79 | #include <linux/netdevice.h> |
diff --git a/drivers/staging/wlags49_h2/wl_main.c b/drivers/staging/wlags49_h2/wl_main.c index dab603e0f45..d5bf0a7012f 100644 --- a/drivers/staging/wlags49_h2/wl_main.c +++ b/drivers/staging/wlags49_h2/wl_main.c | |||
@@ -86,8 +86,7 @@ | |||
86 | // #include <linux/in.h> | 86 | // #include <linux/in.h> |
87 | // #include <linux/delay.h> | 87 | // #include <linux/delay.h> |
88 | // #include <asm/io.h> | 88 | // #include <asm/io.h> |
89 | // #include <asm/system.h> | 89 | // // #include <asm/bitops.h> |
90 | // #include <asm/bitops.h> | ||
91 | #include <linux/unistd.h> | 90 | #include <linux/unistd.h> |
92 | #include <asm/uaccess.h> | 91 | #include <asm/uaccess.h> |
93 | 92 | ||
diff --git a/drivers/staging/wlags49_h2/wl_netdev.c b/drivers/staging/wlags49_h2/wl_netdev.c index 9c16f5478a7..90820ff1ace 100644 --- a/drivers/staging/wlags49_h2/wl_netdev.c +++ b/drivers/staging/wlags49_h2/wl_netdev.c | |||
@@ -79,8 +79,7 @@ | |||
79 | // #include <linux/delay.h> | 79 | // #include <linux/delay.h> |
80 | // #include <linux/skbuff.h> | 80 | // #include <linux/skbuff.h> |
81 | // #include <asm/io.h> | 81 | // #include <asm/io.h> |
82 | // #include <asm/system.h> | 82 | // // #include <asm/bitops.h> |
83 | // #include <asm/bitops.h> | ||
84 | 83 | ||
85 | #include <linux/netdevice.h> | 84 | #include <linux/netdevice.h> |
86 | #include <linux/ethtool.h> | 85 | #include <linux/ethtool.h> |
diff --git a/drivers/staging/wlags49_h2/wl_pci.c b/drivers/staging/wlags49_h2/wl_pci.c index 2bd9b84ace8..3df990c7306 100644 --- a/drivers/staging/wlags49_h2/wl_pci.c +++ b/drivers/staging/wlags49_h2/wl_pci.c | |||
@@ -77,7 +77,6 @@ | |||
77 | #include <linux/interrupt.h> | 77 | #include <linux/interrupt.h> |
78 | #include <linux/in.h> | 78 | #include <linux/in.h> |
79 | #include <linux/delay.h> | 79 | #include <linux/delay.h> |
80 | #include <asm/system.h> | ||
81 | #include <asm/io.h> | 80 | #include <asm/io.h> |
82 | #include <asm/irq.h> | 81 | #include <asm/irq.h> |
83 | #include <asm/bitops.h> | 82 | #include <asm/bitops.h> |
diff --git a/drivers/staging/wlags49_h2/wl_util.c b/drivers/staging/wlags49_h2/wl_util.c index b748a3ff795..f104e6f1e98 100644 --- a/drivers/staging/wlags49_h2/wl_util.c +++ b/drivers/staging/wlags49_h2/wl_util.c | |||
@@ -73,8 +73,7 @@ | |||
73 | // #include <linux/in.h> | 73 | // #include <linux/in.h> |
74 | // #include <linux/delay.h> | 74 | // #include <linux/delay.h> |
75 | // #include <asm/io.h> | 75 | // #include <asm/io.h> |
76 | // #include <asm/system.h> | 76 | // // #include <asm/bitops.h> |
77 | // #include <asm/bitops.h> | ||
78 | 77 | ||
79 | #include <linux/netdevice.h> | 78 | #include <linux/netdevice.h> |
80 | #include <linux/etherdevice.h> | 79 | #include <linux/etherdevice.h> |
diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 94d5c35e22f..3650bbff768 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c | |||
@@ -61,7 +61,7 @@ XGINew_GetXG20DRAMType(struct xgi_hw_device_info *HwDeviceExtension, | |||
61 | } | 61 | } |
62 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); | 62 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); |
63 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ | 63 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ |
64 | if ((temp & 0x88) == 0x80) | 64 | if (((temp & 0x88) == 0x80) || ((temp & 0x88) == 0x08)) |
65 | data = 0; /* DDR */ | 65 | data = 0; /* DDR */ |
66 | else | 66 | else |
67 | data = 1; /* DDRII */ | 67 | data = 1; /* DDRII */ |
diff --git a/drivers/staging/xgifb/vb_setmode.c b/drivers/staging/xgifb/vb_setmode.c index 2919924213c..60d4adf9992 100644 --- a/drivers/staging/xgifb/vb_setmode.c +++ b/drivers/staging/xgifb/vb_setmode.c | |||
@@ -152,6 +152,7 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo) | |||
152 | pVBInfo->pXGINew_CR97 = &XG20_CR97; | 152 | pVBInfo->pXGINew_CR97 = &XG20_CR97; |
153 | 153 | ||
154 | if (ChipType == XG27) { | 154 | if (ChipType == XG27) { |
155 | unsigned char temp; | ||
155 | pVBInfo->MCLKData | 156 | pVBInfo->MCLKData |
156 | = (struct SiS_MCLKData *) XGI27New_MCLKData; | 157 | = (struct SiS_MCLKData *) XGI27New_MCLKData; |
157 | pVBInfo->CR40 = XGI27_cr41; | 158 | pVBInfo->CR40 = XGI27_cr41; |
@@ -162,7 +163,13 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo) | |||
162 | pVBInfo->pCRDE = XG27_CRDE; | 163 | pVBInfo->pCRDE = XG27_CRDE; |
163 | pVBInfo->pSR40 = &XG27_SR40; | 164 | pVBInfo->pSR40 = &XG27_SR40; |
164 | pVBInfo->pSR41 = &XG27_SR41; | 165 | pVBInfo->pSR41 = &XG27_SR41; |
166 | pVBInfo->SR15 = XG27_SR13; | ||
165 | 167 | ||
168 | /*Z11m DDR*/ | ||
169 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); | ||
170 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ | ||
171 | if (((temp & 0x88) == 0x80) || ((temp & 0x88) == 0x08)) | ||
172 | pVBInfo->pXGINew_CR97 = &Z11m_CR97; | ||
166 | } | 173 | } |
167 | 174 | ||
168 | if (ChipType >= XG20) { | 175 | if (ChipType >= XG20) { |
diff --git a/drivers/staging/xgifb/vb_table.h b/drivers/staging/xgifb/vb_table.h index dddf261ed53..e8d6f674b27 100644 --- a/drivers/staging/xgifb/vb_table.h +++ b/drivers/staging/xgifb/vb_table.h | |||
@@ -33,6 +33,13 @@ static struct XGI_ECLKDataStruct XGI340_ECLKData[] = { | |||
33 | {0x5c, 0x23, 0x01, 166} | 33 | {0x5c, 0x23, 0x01, 166} |
34 | }; | 34 | }; |
35 | 35 | ||
36 | static unsigned char XG27_SR13[4][8] = { | ||
37 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ | ||
38 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ | ||
39 | {0x32, 0x32, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */ | ||
40 | {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */ | ||
41 | }; | ||
42 | |||
36 | static unsigned char XGI340_SR13[4][8] = { | 43 | static unsigned char XGI340_SR13[4][8] = { |
37 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ | 44 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ |
38 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ | 45 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ |
@@ -71,7 +78,7 @@ static unsigned char XGI27_cr41[24][8] = { | |||
71 | {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */ | 78 | {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */ |
72 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */ | 79 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */ |
73 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */ | 80 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */ |
74 | {0xB5, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7], | 81 | {0xB3, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7], |
75 | CR99[2:0], | 82 | CR99[2:0], |
76 | CR45[3:0]*/ | 83 | CR45[3:0]*/ |
77 | {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */ | 84 | {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */ |
@@ -2803,6 +2810,8 @@ static unsigned char XG27_CRDE[2]; | |||
2803 | static unsigned char XG27_SR40 = 0x04 ; | 2810 | static unsigned char XG27_SR40 = 0x04 ; |
2804 | static unsigned char XG27_SR41 = 0x00 ; | 2811 | static unsigned char XG27_SR41 = 0x00 ; |
2805 | 2812 | ||
2813 | static unsigned char Z11m_CR97 = 0x80 ; | ||
2814 | |||
2806 | static struct XGI330_VCLKDataStruct XGI_VCLKData[] = { | 2815 | static struct XGI330_VCLKDataStruct XGI_VCLKData[] = { |
2807 | /* SR2B,SR2C,SR2D */ | 2816 | /* SR2B,SR2C,SR2D */ |
2808 | {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */ | 2817 | {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */ |
diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c index 09caa4f2687..917461c6601 100644 --- a/drivers/staging/zsmalloc/zsmalloc-main.c +++ b/drivers/staging/zsmalloc/zsmalloc-main.c | |||
@@ -267,33 +267,39 @@ static unsigned long obj_idx_to_offset(struct page *page, | |||
267 | return off + obj_idx * class_size; | 267 | return off + obj_idx * class_size; |
268 | } | 268 | } |
269 | 269 | ||
270 | static void reset_page(struct page *page) | ||
271 | { | ||
272 | clear_bit(PG_private, &page->flags); | ||
273 | clear_bit(PG_private_2, &page->flags); | ||
274 | set_page_private(page, 0); | ||
275 | page->mapping = NULL; | ||
276 | page->freelist = NULL; | ||
277 | reset_page_mapcount(page); | ||
278 | } | ||
279 | |||
270 | static void free_zspage(struct page *first_page) | 280 | static void free_zspage(struct page *first_page) |
271 | { | 281 | { |
272 | struct page *nextp, *tmp; | 282 | struct page *nextp, *tmp, *head_extra; |
273 | 283 | ||
274 | BUG_ON(!is_first_page(first_page)); | 284 | BUG_ON(!is_first_page(first_page)); |
275 | BUG_ON(first_page->inuse); | 285 | BUG_ON(first_page->inuse); |
276 | 286 | ||
277 | nextp = (struct page *)page_private(first_page); | 287 | head_extra = (struct page *)page_private(first_page); |
278 | 288 | ||
279 | clear_bit(PG_private, &first_page->flags); | 289 | reset_page(first_page); |
280 | clear_bit(PG_private_2, &first_page->flags); | ||
281 | set_page_private(first_page, 0); | ||
282 | first_page->mapping = NULL; | ||
283 | first_page->freelist = NULL; | ||
284 | reset_page_mapcount(first_page); | ||
285 | __free_page(first_page); | 290 | __free_page(first_page); |
286 | 291 | ||
287 | /* zspage with only 1 system page */ | 292 | /* zspage with only 1 system page */ |
288 | if (!nextp) | 293 | if (!head_extra) |
289 | return; | 294 | return; |
290 | 295 | ||
291 | list_for_each_entry_safe(nextp, tmp, &nextp->lru, lru) { | 296 | list_for_each_entry_safe(nextp, tmp, &head_extra->lru, lru) { |
292 | list_del(&nextp->lru); | 297 | list_del(&nextp->lru); |
293 | clear_bit(PG_private_2, &nextp->flags); | 298 | reset_page(nextp); |
294 | nextp->index = 0; | ||
295 | __free_page(nextp); | 299 | __free_page(nextp); |
296 | } | 300 | } |
301 | reset_page(head_extra); | ||
302 | __free_page(head_extra); | ||
297 | } | 303 | } |
298 | 304 | ||
299 | /* Initialize a newly allocated zspage */ | 305 | /* Initialize a newly allocated zspage */ |