Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'edac_urgent_for_v6.2_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras

Pull EDAC fixes from Borislav Petkov:

- Fix the EDAC device's confusion in the polling setting units

- Fix a memory leak in highbank's probing function

* tag 'edac_urgent_for_v6.2_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
EDAC/highbank: Fix memory leak in highbank_mc_probe()
EDAC/device: Fix period calculation in edac_device_reset_delay_period()

+14 -12
+8 -9
drivers/edac/edac_device.c
··· 394 394 * Then restart the workq on the new delay 395 395 */ 396 396 void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev, 397 - unsigned long value) 397 + unsigned long msec) 398 398 { 399 - unsigned long jiffs = msecs_to_jiffies(value); 399 + edac_dev->poll_msec = msec; 400 + edac_dev->delay = msecs_to_jiffies(msec); 400 401 401 - if (value == 1000) 402 - jiffs = round_jiffies_relative(value); 403 - 404 - edac_dev->poll_msec = value; 405 - edac_dev->delay = jiffs; 406 - 407 - edac_mod_work(&edac_dev->work, jiffs); 402 + /* See comment in edac_device_workq_setup() above */ 403 + if (edac_dev->poll_msec == 1000) 404 + edac_mod_work(&edac_dev->work, round_jiffies_relative(edac_dev->delay)); 405 + else 406 + edac_mod_work(&edac_dev->work, edac_dev->delay); 408 407 } 409 408 410 409 int edac_device_alloc_index(void)
+1 -1
drivers/edac/edac_module.h
··· 53 53 bool edac_mod_work(struct delayed_work *work, unsigned long delay); 54 54 55 55 extern void edac_device_reset_delay_period(struct edac_device_ctl_info 56 - *edac_dev, unsigned long value); 56 + *edac_dev, unsigned long msec); 57 57 extern void edac_mc_reset_delay_period(unsigned long value); 58 58 59 59 /*
+5 -2
drivers/edac/highbank_mc_edac.c
··· 174 174 drvdata = mci->pvt_info; 175 175 platform_set_drvdata(pdev, mci); 176 176 177 - if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) 178 - return -ENOMEM; 177 + if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) { 178 + res = -ENOMEM; 179 + goto free; 180 + } 179 181 180 182 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 181 183 if (!r) { ··· 245 243 edac_mc_del_mc(&pdev->dev); 246 244 err: 247 245 devres_release_group(&pdev->dev, NULL); 246 + free: 248 247 edac_mc_free(mci); 249 248 return res; 250 249 }