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 <[email protected]> Sent: Friday, November 14, 2025 2:42 AM To: kernelnewbies <[email protected]> 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 [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies _______________________________________________ Kernelnewbies mailing list [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
