Re: [PATCH] lguest: explicitly setup /dev/lguest private_data

From: Rusty Russell
Date: Fri Apr 10 2015 - 20:32:11 EST


Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes:
> On Tue, Apr 07, 2015 at 10:18:18AM +0200, Tom Van Braeckel wrote:
>> The private_data member of the /dev/lguest device file is used to hold
>> the current struct lguest and needs to be set to NULL to signify that
>> no initialization has taken place.
>>
>> We explicitly set it to NULL to be independent of whatever value the
>> misc subsystem initializes it to.
>>
>> Signed-off-by: Tom Van Braeckel <tomvanbraeckel@xxxxxxxxx>
>> ---
>> Backstory:
>> ==========
>> The misc subsystem used to initialize a file's private_data to point to
>> the misc device when a driver had registered a custom open file
>> operation and initialized it to NULL when a custom open file operation
>> had *not* been provided.
>>
>> This subtle quirk was confusing, to the point where kernel code
>> registered *empty* file open operations to have private_data point to
>> the misc device structure.
>>
>> And it lead to bugs, where the addition or removal of a custom open
>> file operation surprisingly changed the initial contents of a file's
>> private_data structure.
>>
>> The misc subsystem is currently underdoing changes to *always* set
>> private_data to point to the misc device instead of only doing this
>> when a custom open file operation has been registered.
>>
>> Intel's 0day kernel testing robot discovered that the lguest driver
>> depended on it implicitly being initialized to NULL, as Fengguang Wu
>> reported. Thanks a lot for all the hard work!
>>
>> drivers/lguest/lguest_user.c | 14 +++++++++++++-
>> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> I can take this through my char-misc tree, where this misc core change
> was, if the lguest maintainer (i.e. Rusty) acks it.

Acked-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

Cheers,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/