Simple mutex_destroy question

Billie Alsup (balsup) balsup at cisco.com
Wed Nov 19 11:27:40 EST 2025


Since you're using devm_kzalloc, why not simply use devm_mutex_init and not worry about it?  Then you can remove your explicit mutex_destroy call.


________________________________________
From: Lucas Tanure <tanure at linux.com>
Sent: Friday, November 14, 2025 2:42 AM
To: kernelnewbies <kernelnewbies at kernelnewbies.org>
Subject: Simple mutex_destroy question
 
Hi,

Do I need to call mutex_destroy in a failed probe exit, or in the remove
module function, if the mutex is located in memory allocated with
devm_kzalloc and family?
Like:
static int mychip_i2c_probe(struct i2c_client *client)
{
     struct chip *chip;
     int ret;

     chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL);
     if (!chip)
         return -ENOMEM;

     mutex_init(&chip->lock);
     i2c_set_clientdata(client, chip);

     /* Do my chip stuf
     */


     return ret;

probe_fail:
     mutex_destroy(&chip->lock);
     return ret;
}

I understand that mutex_destroy will only invalidate the memory, but as
I am freeing this is not necessary?

Thanks
Lucas Tanure

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


More information about the Kernelnewbies mailing list