[FE training-materials-updates] Kernel i2c lab: use devm_kzalloc instead of kzalloc

Michael Opdenacker michael.opdenacker at free-electrons.com
Tue Feb 4 14:53:01 CET 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=924ff033a166689dec71fdb691fcd5fa65ae781f

>---------------------------------------------------------------

commit 924ff033a166689dec71fdb691fcd5fa65ae781f
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Tue Feb 4 14:51:48 2014 +0100

    Kernel i2c lab: use devm_kzalloc instead of kzalloc
    
    Using kzalloc in this context was deprecated
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


>---------------------------------------------------------------

924ff033a166689dec71fdb691fcd5fa65ae781f
 .../kernel-i2c-input-interface.tex                 |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex b/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
index b8f1f28..53a41ea 100644
--- a/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
+++ b/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
@@ -118,7 +118,7 @@ this structure:
 Then allocate one such instead for each new device:
 
 \begin{verbatim}
-        nunchuk = kzalloc(sizeof(struct nunchuk_dev), GFP_KERNEL);
+        nunchuk = devm_kzalloc(sizeof(&client->dev, sizeof(struct nunchuk_dev), GFP_KERNEL);
         if (!nunchuk) {
                 dev_err(&client->dev, "Failed to allocate memory\n");
                 return -ENOMEM;
@@ -131,6 +131,10 @@ yet. We haven't explained the \code{dev_*} logging routines yet either
 associated to).  For the moment, just use the above code. You will get
 the details later.
 
+Note that with \code{devm_} functions it is not needed to free the
+allocated resources. They are automatically freed when the corresponding
+device in unprobed. 
+
 You will actually have to modify your code and the above lines to call 
 \code{kfree(nunchuk)} if one of the subsequent registration and
 allocation routines fail.



More information about the training-materials-updates mailing list