hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/arch/s390/mm/cmm.c
....@@ -19,10 +19,8 @@
1919 #include <linux/swap.h>
2020 #include <linux/kthread.h>
2121 #include <linux/oom.h>
22
-#include <linux/suspend.h>
2322 #include <linux/uaccess.h>
2423
25
-#include <asm/pgalloc.h>
2624 #include <asm/diag.h>
2725
2826 #ifdef CONFIG_CMM_IUCV
....@@ -49,7 +47,6 @@
4947 static volatile long cmm_timed_pages_target;
5048 static long cmm_timeout_pages;
5149 static long cmm_timeout_seconds;
52
-static int cmm_suspended;
5350
5451 static struct cmm_page_array *cmm_page_list;
5552 static struct cmm_page_array *cmm_timed_page_list;
....@@ -151,9 +148,9 @@
151148
152149 while (1) {
153150 rc = wait_event_interruptible(cmm_thread_wait,
154
- (!cmm_suspended && (cmm_pages != cmm_pages_target ||
155
- cmm_timed_pages != cmm_timed_pages_target)) ||
156
- kthread_should_stop());
151
+ cmm_pages != cmm_pages_target ||
152
+ cmm_timed_pages != cmm_timed_pages_target ||
153
+ kthread_should_stop());
157154 if (kthread_should_stop() || rc == -ERESTARTSYS) {
158155 cmm_pages_target = cmm_pages;
159156 cmm_timed_pages_target = cmm_timed_pages;
....@@ -191,7 +188,7 @@
191188 del_timer(&cmm_timer);
192189 return;
193190 }
194
- mod_timer(&cmm_timer, jiffies + cmm_timeout_seconds * HZ);
191
+ mod_timer(&cmm_timer, jiffies + msecs_to_jiffies(cmm_timeout_seconds * MSEC_PER_SEC));
195192 }
196193
197194 static void cmm_timer_fn(struct timer_list *unused)
....@@ -247,7 +244,7 @@
247244 }
248245
249246 static int cmm_pages_handler(struct ctl_table *ctl, int write,
250
- void __user *buffer, size_t *lenp, loff_t *ppos)
247
+ void *buffer, size_t *lenp, loff_t *ppos)
251248 {
252249 long nr = cmm_get_pages();
253250 struct ctl_table ctl_entry = {
....@@ -266,7 +263,7 @@
266263 }
267264
268265 static int cmm_timed_pages_handler(struct ctl_table *ctl, int write,
269
- void __user *buffer, size_t *lenp,
266
+ void *buffer, size_t *lenp,
270267 loff_t *ppos)
271268 {
272269 long nr = cmm_get_timed_pages();
....@@ -286,7 +283,7 @@
286283 }
287284
288285 static int cmm_timeout_handler(struct ctl_table *ctl, int write,
289
- void __user *buffer, size_t *lenp, loff_t *ppos)
286
+ void *buffer, size_t *lenp, loff_t *ppos)
290287 {
291288 char buf[64], *p;
292289 long nr, seconds;
....@@ -299,8 +296,7 @@
299296
300297 if (write) {
301298 len = min(*lenp, sizeof(buf));
302
- if (copy_from_user(buf, buffer, len))
303
- return -EFAULT;
299
+ memcpy(buf, buffer, len);
304300 buf[len - 1] = '\0';
305301 cmm_skip_blanks(buf, &p);
306302 nr = simple_strtoul(p, &p, 0);
....@@ -313,8 +309,7 @@
313309 cmm_timeout_pages, cmm_timeout_seconds);
314310 if (len > *lenp)
315311 len = *lenp;
316
- if (copy_to_user(buffer, buf, len))
317
- return -EFAULT;
312
+ memcpy(buffer, buf, len);
318313 *lenp = len;
319314 *ppos += len;
320315 }
....@@ -390,38 +385,6 @@
390385
391386 static struct ctl_table_header *cmm_sysctl_header;
392387
393
-static int cmm_suspend(void)
394
-{
395
- cmm_suspended = 1;
396
- cmm_free_pages(cmm_pages, &cmm_pages, &cmm_page_list);
397
- cmm_free_pages(cmm_timed_pages, &cmm_timed_pages, &cmm_timed_page_list);
398
- return 0;
399
-}
400
-
401
-static int cmm_resume(void)
402
-{
403
- cmm_suspended = 0;
404
- cmm_kick_thread();
405
- return 0;
406
-}
407
-
408
-static int cmm_power_event(struct notifier_block *this,
409
- unsigned long event, void *ptr)
410
-{
411
- switch (event) {
412
- case PM_POST_HIBERNATION:
413
- return cmm_resume();
414
- case PM_HIBERNATION_PREPARE:
415
- return cmm_suspend();
416
- default:
417
- return NOTIFY_DONE;
418
- }
419
-}
420
-
421
-static struct notifier_block cmm_power_notifier = {
422
- .notifier_call = cmm_power_event,
423
-};
424
-
425388 static int __init cmm_init(void)
426389 {
427390 int rc = -ENOMEM;
....@@ -446,16 +409,11 @@
446409 rc = register_oom_notifier(&cmm_oom_nb);
447410 if (rc < 0)
448411 goto out_oom_notify;
449
- rc = register_pm_notifier(&cmm_power_notifier);
450
- if (rc)
451
- goto out_pm;
452412 cmm_thread_ptr = kthread_run(cmm_thread, NULL, "cmmthread");
453413 if (!IS_ERR(cmm_thread_ptr))
454414 return 0;
455415
456416 rc = PTR_ERR(cmm_thread_ptr);
457
- unregister_pm_notifier(&cmm_power_notifier);
458
-out_pm:
459417 unregister_oom_notifier(&cmm_oom_nb);
460418 out_oom_notify:
461419 #ifdef CONFIG_CMM_IUCV
....@@ -475,7 +433,6 @@
475433 #ifdef CONFIG_CMM_IUCV
476434 smsg_unregister_callback(SMSG_PREFIX, cmm_smsg_target);
477435 #endif
478
- unregister_pm_notifier(&cmm_power_notifier);
479436 unregister_oom_notifier(&cmm_oom_nb);
480437 kthread_stop(cmm_thread_ptr);
481438 del_timer_sync(&cmm_timer);