Re: [v4l-dvb-maintainer] Re: [stable] [patch 00/50] -stable review

From: Michael Krufky
Date: Wed Feb 21 2007 - 16:06:15 EST


Michael Krufky wrote:
> Greg KH wrote:
>> Ok, I've now gotten all of these for .19 and .18.
>>
>> If I've missed anything, please let me know.
>>
>> thanks for your patience.
>
> Looks good... Thank you, Greg.
>
> Greg KH wrote:
>> This will probably be the last release of the 2.6.19-stable series, so
>> if there are patches that you feel should be applied to that tree,
>> please let me know.
>
> Normally, I would wait for a patch to appear in Linus' tree before I send it to -stable,
> however, this patch can not wait. Since 2.6.18-stable and 2.6.19-stable have their last
> releases pending review, it is imperative that this final patch be added to the queue, if
> possible.

It is merged into Linus' tree now:

http://www2.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b61901024776b25ce7b8edc31bb1757c7382a88e

... The only difference is that the changeset in Linus' tree also changes some
whitespace.

Please merge this into 2.6.18.y, 2.6.19.y and 2.6.20.y

Adrian, this should also apply against 2.6.16.y

Thank you,

Michael Krufky

---

dvbdev: fix illegal re-usage of fileoperations struct

From: Marcel Siegert <mws@xxxxxxxxxxx>

Arjan van de Ven <arjan@xxxxxxxxxxxxx> reported an illegal re-usage of the
fileoperations struct
if more than one dvb device(e.g. frontend) is present. this patch fixes this issue.
it allocates a new fileoperations struct each time a device is registered and
copies the default
template fileops.

Signed-off-by: Marcel Siegert <mws@xxxxxxxxxxx>
Signed-off-by: Michael Krufky <mkrufky@xxxxxxxxxxx>

---
linux/drivers/media/dvb/dvb-core/dvbdev.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

--- linux/drivers/media/dvb/dvb-core/dvbdev.c.orig
+++ linux/drivers/media/dvb/dvb-core/dvbdev.c
@@ -211,6 +211,8 @@
const struct dvb_device *template, void *priv, int type)
{
struct dvb_device *dvbdev;
+ struct file_operations *dvbdevfops;
+
int id;

if (mutex_lock_interruptible(&dvbdev_register_lock))
@@ -230,12 +232,22 @@
return -ENOMEM;
}

+ dvbdevfops = kzalloc(sizeof(struct file_operations), GFP_KERNEL);
+
+ if (!dvbdevfops) {
+ kfree (dvbdev);
+ mutex_unlock(&dvbdev_register_lock);
+ return -ENOMEM;
+ }
+
memcpy(dvbdev, template, sizeof(struct dvb_device));
dvbdev->type = type;
dvbdev->id = id;
dvbdev->adapter = adap;
dvbdev->priv = priv;
+ dvbdev->fops = dvbdevfops;

+ memcpy(dvbdev->fops, template->fops, sizeof(struct file_operations));
dvbdev->fops->owner = adap->module;

list_add_tail (&dvbdev->list_head, &adap->device_list);
@@ -263,6 +275,7 @@
dvbdev->type, dvbdev->id)));

list_del (&dvbdev->list_head);
+ kfree (dvbdev->fops);
kfree (dvbdev);
}
EXPORT_SYMBOL(dvb_unregister_device);



--
Michael Krufky

-
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/