From 7b7b6e145e1bf05cdf3e5d82e8f30b288ad9e15a Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Thu, 17 Jul 2008 16:48:19 +0200 Subject: videodev/dabusb/dvbdev: fix 2.6.16 compilation From: Hans Verkuil struct file_operations was made const in 2.6.17. Cast const away when compiling under 2.6.16. Signed-off-by: Hans Verkuil --- linux/drivers/media/dvb/dvb-core/dvbdev.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'linux/drivers/media/dvb/dvb-core') diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.c b/linux/drivers/media/dvb/dvb-core/dvbdev.c index 0ae0e5852..3210b938b 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.c +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.c @@ -425,7 +425,12 @@ static int __init init_dvbdev(void) return retval; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17) cdev_init(&dvb_device_cdev, &dvb_device_fops); +#else + cdev_init(&dvb_device_cdev, + (struct file_operations *)&dvb_device_fops); +#endif if ((retval = cdev_add(&dvb_device_cdev, dev, MAX_DVB_MINORS)) != 0) { printk(KERN_ERR "dvb-core: unable register character device\n"); goto error; -- cgit v1.2.3 From bfeeaf2cd0ec399c199ab6b907d5e4e33dbe3562 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 17 Jul 2008 23:30:52 -0300 Subject: backport commit 5794e1b14bcd9817c5fa27d3254996f0d9551296 From: Mauro Carvalho Chehab Author: Jonathan Corbet Date: Thu May 15 16:26:57 2008 -0600 dvb: cdev lock_kernel() pushdown kernel-sync: Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/dvb/dvb-core/dvbdev.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'linux/drivers/media/dvb/dvb-core') diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.c b/linux/drivers/media/dvb/dvb-core/dvbdev.c index 3210b938b..e6d20310a 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.c +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.c @@ -33,6 +33,7 @@ #include #include "compat.h" #include +#include #include "dvbdev.h" static int dvbdev_debug; @@ -75,6 +76,7 @@ static int dvb_device_open(struct inode *inode, struct file *file) { struct dvb_device *dvbdev; + lock_kernel(); dvbdev = dvbdev_find_device (iminor(inode)); if (dvbdev && dvbdev->fops) { @@ -95,8 +97,10 @@ static int dvb_device_open(struct inode *inode, struct file *file) file->f_op = fops_get(old_fops); } fops_put(old_fops); + unlock_kernel(); return err; } + unlock_kernel(); return -ENODEV; } -- cgit v1.2.3 From 9ac332abfea493cd10a9c804cebb81f324071b82 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 24 Jul 2008 12:46:11 -0300 Subject: backport commit e282959ef3ebae0d72ac0b24242c376fa34da585 From: Mauro Carvalho Chehab Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: dvb: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. kernel-sync: Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/dvb/dvb-core/dvbdev.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'linux/drivers/media/dvb/dvb-core') diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.c b/linux/drivers/media/dvb/dvb-core/dvbdev.c index e6d20310a..0820da504 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.c +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.c @@ -242,9 +242,15 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, mutex_unlock(&dvbdev_register_lock); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 26) + clsdev = device_create_drvdata(dvb_class, adap->device, + MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), + NULL, "dvb%d.%s%d", adap->num, dnames[type], id); +#else clsdev = device_create(dvb_class, adap->device, MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), "dvb%d.%s%d", adap->num, dnames[type], id); +#endif if (IS_ERR(clsdev)) { printk(KERN_ERR "%s: failed to create device dvb%d.%s%d (%ld)\n", __func__, adap->num, dnames[type], id, PTR_ERR(clsdev)); -- cgit v1.2.3 From 132006918b3990079761954e1c88e46ac2b52e45 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 24 Jul 2008 12:53:50 -0300 Subject: backport commit b9e40857682ecfc5bcd0356a23ff409883ffb982 From: Mauro Carvalho Chehab Author: David S. Miller Date: Tue Jul 15 00:15:08 2008 -0700 netdev: Do not use TX lock to protect address lists. Now that we have a specific lock to protect the network device unicast and multicast lists, remove extraneous grabs of the TX lock in cases where the code only needs address list protection. Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/dvb/dvb-core/dvb_net.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'linux/drivers/media/dvb/dvb-core') diff --git a/linux/drivers/media/dvb/dvb-core/dvb_net.c b/linux/drivers/media/dvb/dvb-core/dvb_net.c index 3c0106f65..e0d60cdc4 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_net.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_net.c @@ -1165,7 +1165,11 @@ static void wq_set_multicast_list (struct work_struct *work) #ifdef OLD_XMIT_LOCK /* Kernels equal or lower than 2.6.17 */ spin_lock_bh(&dev->xmit_lock); #else +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) netif_tx_lock_bh(dev); +#else + netif_addr_lock_bh(dev); +#endif #endif if (dev->flags & IFF_PROMISC) { @@ -1194,7 +1198,11 @@ static void wq_set_multicast_list (struct work_struct *work) #ifdef OLD_XMIT_LOCK /* Kernels equal or lower than 2.6.17 */ spin_unlock_bh(&dev->xmit_lock); #else +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) netif_tx_unlock_bh(dev); +#else + netif_addr_unlock_bh(dev); +#endif #endif dvb_net_feed_start(dev); } -- cgit v1.2.3