Sasha,
How is this patch broken? It builds and clearly frees 
the list entries. Please explain how to me.
Nick

On 2015-01-22 11:50 PM, Sasha Levin wrote:
> On 01/22/2015 08:05 AM, Corey Minyard wrote:
>> Patch is queued for 3.20.  Thanks.
> 
> That patch is horribly broken.
> 
> 
> Thanks,
> Sasha
> 
>> -corey
>>
>> On 01/19/2015 09:14 PM, Nicholas Krause wrote:
>>> This adds a loop through the elements in the linked list, recv_msgs using
>>> list_for_entry_safe in order to free messages in this list.  In addition
>>> we are using the safe version of this marco in order to prevent use after
>>> bugs related to deleting the element we are on currently by holding a
>>> pointer to the next element after the current one we are on and freeing
>>> with the function, ipmi_free_recv_msg internally in this loop.
>>>
>>> Signed-off-by: Nicholas Krause <[email protected]>
>>> ---
>>>  drivers/char/ipmi/ipmi_devintf.c | 7 ++++---
>>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/char/ipmi/ipmi_devintf.c 
>>> b/drivers/char/ipmi/ipmi_devintf.c
>>> index ec318bf..d2af38a 100644
>>> --- a/drivers/char/ipmi/ipmi_devintf.c
>>> +++ b/drivers/char/ipmi/ipmi_devintf.c
>>> @@ -157,14 +157,15 @@ static int ipmi_release(struct inode *inode, struct 
>>> file *file)
>>>  {
>>>     struct ipmi_file_private *priv = file->private_data;
>>>     int                      rv;
>>> +   struct  ipmi_recv_msg *msg, *next;
>>>  
>>>     rv = ipmi_destroy_user(priv->user);
>>>     if (rv)
>>>             return rv;
>>>  
>>> -   /* FIXME - free the messages in the list. */
>>> -   kfree(priv);
>>> -
>>> +   list_for_each_entry_safe(msg, next, &priv->recv_msgs, link) {
>>> +           ipmi_free_recv_msg(msg);
>>> +   }
>>>     return 0;
>>>  }
>>>  
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to [email protected]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>>
> 

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to