WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] Fix blkback/blktap sysfs read bug.

>>> "Joe Jin" <joe.jin@xxxxxxxxxx> 19.01.10 12:32 >>>
>On 2010-01-19 10:25, Jan Beulich wrote:
>> >>> "Joe Jin" <joe.jin@xxxxxxxxxx> 19.01.10 10:52 >>>
>> >At backend driver blkback and blktap, when checking statistics information,
>> >at the time vbd device remove, kernel will crash.
>> >
>> >Below patch will fix it, please review and apply.
>> 
>> This isn't a complete fix if I follow your analysis: There's still a race
>> between blk{back,tap}_remove() freeing be->blkif/be and the sysfs
>> code. dev->dev.driver_data (and possibly be->blkif) must be cleared
>> before freeing it (them).
>> 
>
>Thanks for you point.
>Anyway, I think need to add some check at VBD_SHOW even cleared 
>dev->dev.driver_data before free it, sysfs->fops() have been 
>initialized when call open(), and later when read the file, call
>trace will fall VBD_SHOW defined function(s), so it should crashed.

I think I understand what you're saying. But then there's only one
solution - avoid freeing those two data structures from the .remove
handler.

>The checks may look like below?

Checking dev to be non-NULL is certainly pointless in any case.

But wait - how did you see the crash you're trying to fix occur in the
first place? blkback_remove() calls xenvbd_sysfs_delif(), so the sysfs
entries are gone by the time driver_data gets freed.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel