diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/edac/edac_mc.c | 4 | ||||
| -rw-r--r-- | drivers/edac/edac_mc_sysfs.c | 10 | ||||
| -rw-r--r-- | drivers/edac/edac_module.h | 2 |
3 files changed, 9 insertions, 7 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index e8c9ef03495b..aef5ec24908e 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c | |||
| @@ -601,7 +601,7 @@ static void edac_mc_workq_teardown(struct mem_ctl_info *mci) | |||
| 601 | * user space has updated our poll period value, need to | 601 | * user space has updated our poll period value, need to |
| 602 | * reset our workq delays | 602 | * reset our workq delays |
| 603 | */ | 603 | */ |
| 604 | void edac_mc_reset_delay_period(int value) | 604 | void edac_mc_reset_delay_period(unsigned long value) |
| 605 | { | 605 | { |
| 606 | struct mem_ctl_info *mci; | 606 | struct mem_ctl_info *mci; |
| 607 | struct list_head *item; | 607 | struct list_head *item; |
| @@ -611,7 +611,7 @@ void edac_mc_reset_delay_period(int value) | |||
| 611 | list_for_each(item, &mc_devices) { | 611 | list_for_each(item, &mc_devices) { |
| 612 | mci = list_entry(item, struct mem_ctl_info, link); | 612 | mci = list_entry(item, struct mem_ctl_info, link); |
| 613 | 613 | ||
| 614 | edac_mc_workq_setup(mci, (unsigned long) value); | 614 | edac_mc_workq_setup(mci, value); |
| 615 | } | 615 | } |
| 616 | 616 | ||
| 617 | mutex_unlock(&mem_ctls_mutex); | 617 | mutex_unlock(&mem_ctls_mutex); |
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c index 8ec1747b1c39..b335c6ab5efe 100644 --- a/drivers/edac/edac_mc_sysfs.c +++ b/drivers/edac/edac_mc_sysfs.c | |||
| @@ -52,18 +52,20 @@ int edac_mc_get_poll_msec(void) | |||
| 52 | 52 | ||
| 53 | static int edac_set_poll_msec(const char *val, struct kernel_param *kp) | 53 | static int edac_set_poll_msec(const char *val, struct kernel_param *kp) |
| 54 | { | 54 | { |
| 55 | long l; | 55 | unsigned long l; |
| 56 | int ret; | 56 | int ret; |
| 57 | 57 | ||
| 58 | if (!val) | 58 | if (!val) |
| 59 | return -EINVAL; | 59 | return -EINVAL; |
| 60 | 60 | ||
| 61 | ret = kstrtol(val, 0, &l); | 61 | ret = kstrtoul(val, 0, &l); |
| 62 | if (ret) | 62 | if (ret) |
| 63 | return ret; | 63 | return ret; |
| 64 | if (!l || ((int)l != l)) | 64 | |
| 65 | if (l < 1000) | ||
| 65 | return -EINVAL; | 66 | return -EINVAL; |
| 66 | *((int *)kp->arg) = l; | 67 | |
| 68 | *((unsigned long *)kp->arg) = l; | ||
| 67 | 69 | ||
| 68 | /* notify edac_mc engine to reset the poll period */ | 70 | /* notify edac_mc engine to reset the poll period */ |
| 69 | edac_mc_reset_delay_period(l); | 71 | edac_mc_reset_delay_period(l); |
diff --git a/drivers/edac/edac_module.h b/drivers/edac/edac_module.h index 3d139c6e7fe3..f2118bfcf8df 100644 --- a/drivers/edac/edac_module.h +++ b/drivers/edac/edac_module.h | |||
| @@ -52,7 +52,7 @@ extern void edac_device_workq_setup(struct edac_device_ctl_info *edac_dev, | |||
| 52 | extern void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev); | 52 | extern void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev); |
| 53 | extern void edac_device_reset_delay_period(struct edac_device_ctl_info | 53 | extern void edac_device_reset_delay_period(struct edac_device_ctl_info |
| 54 | *edac_dev, unsigned long value); | 54 | *edac_dev, unsigned long value); |
| 55 | extern void edac_mc_reset_delay_period(int value); | 55 | extern void edac_mc_reset_delay_period(unsigned long value); |
| 56 | 56 | ||
| 57 | extern void *edac_align_ptr(void **p, unsigned size, int n_elems); | 57 | extern void *edac_align_ptr(void **p, unsigned size, int n_elems); |
| 58 | 58 | ||
