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.

Input: ff-memless - make use of __free() cleanup facility

Annotate allocated memory with __free(kfree) to simplify the code and
make sure memory is released appropriately.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20241107071538.195340-5-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

+4 -6
+4 -6
drivers/input/ff-memless.c
··· 503 503 int input_ff_create_memless(struct input_dev *dev, void *data, 504 504 int (*play_effect)(struct input_dev *, void *, struct ff_effect *)) 505 505 { 506 - struct ml_device *ml; 507 506 struct ff_device *ff; 508 507 int error; 509 508 int i; 510 509 511 - ml = kzalloc(sizeof(struct ml_device), GFP_KERNEL); 510 + struct ml_device *ml __free(kfree) = kzalloc(sizeof(*ml), GFP_KERNEL); 512 511 if (!ml) 513 512 return -ENOMEM; 514 513 ··· 520 521 set_bit(FF_GAIN, dev->ffbit); 521 522 522 523 error = input_ff_create(dev, FF_MEMLESS_EFFECTS); 523 - if (error) { 524 - kfree(ml); 524 + if (error) 525 525 return error; 526 - } 527 526 528 527 ff = dev->ff; 529 - ff->private = ml; 530 528 ff->upload = ml_ff_upload; 531 529 ff->playback = ml_ff_playback; 532 530 ff->set_gain = ml_ff_set_gain; ··· 539 543 540 544 for (i = 0; i < FF_MEMLESS_EFFECTS; i++) 541 545 ml->states[i].effect = &ff->effects[i]; 546 + 547 + ff->private = no_free_ptr(ml); 542 548 543 549 return 0; 544 550 }