[kernel] r10928 - in dists/trunk/linux-2.6/debian/patches: bugfix/all features/arm series

Maximilian Attems maks at alioth.debian.org
Fri Mar 21 17:30:56 UTC 2008


Author: maks
Date: Fri Mar 21 17:30:55 2008
New Revision: 10928

Log:
update to 2.6.25-rc6-git5

nuke arm merged glantank-register-f75375s.patch,
mostly arm + video git6 will be more interesting.


Added:
   dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git5
      - copied, changed from r10927, /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git4
Removed:
   dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git4
   dists/trunk/linux-2.6/debian/patches/features/arm/glantank-register-f75375s.patch
Modified:
   dists/trunk/linux-2.6/debian/patches/series/1~experimental.1

Copied: dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git5 (from r10927, /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git4)
==============================================================================
--- /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git4	(original)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc6-git5	Fri Mar 21 17:30:55 2008
@@ -222,6 +222,233 @@
     Reply Sound Blaster/SCSI (SCSI part)
  	Better support for these cards than the driver for ISA.
     Supports multiple cards with IRQ sharing.
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 6d628fb..d8ec68d 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -452,7 +452,7 @@ S:	Maintained
+ 
+ ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
+ P:      Andrew Victor
+-M:      andrew at sanpeople.com
++M:      linux at maxim.org.za
+ L:      linux-arm-kernel at lists.arm.linux.org.uk (subscribers-only)
+ W:      http://maxim.org.za/at91_26.html
+ S:      Maintained
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 955fc53..4039a13 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -469,6 +469,7 @@ config ARCH_OMAP
+ 	bool "TI OMAP"
+ 	select GENERIC_GPIO
+ 	select GENERIC_TIME
++	select GENERIC_CLOCKEVENTS
+ 	help
+ 	  Support for TI's OMAP platform (OMAP1 and OMAP2).
+ 
+diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
+index 54cdf1a..ef2f86a 100644
+--- a/arch/arm/kernel/signal.c
++++ b/arch/arm/kernel/signal.c
+@@ -26,8 +26,8 @@
+ /*
+  * For ARM syscalls, we encode the syscall number into the instruction.
+  */
+-#define SWI_SYS_SIGRETURN	(0xef000000|(__NR_sigreturn))
+-#define SWI_SYS_RT_SIGRETURN	(0xef000000|(__NR_rt_sigreturn))
++#define SWI_SYS_SIGRETURN	(0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE))
++#define SWI_SYS_RT_SIGRETURN	(0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE))
+ 
+ /*
+  * With EABI, the syscall number has to be loaded into r7.
+diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c
+index 74c65ce..d2a7b04 100644
+--- a/arch/arm/mach-iop32x/glantank.c
++++ b/arch/arm/mach-iop32x/glantank.c
+@@ -14,8 +14,10 @@
+ 
+ #include <linux/mm.h>
+ #include <linux/init.h>
++#include <linux/f75375s.h>
+ #include <linux/kernel.h>
+ #include <linux/pci.h>
++#include <linux/pm.h>
+ #include <linux/string.h>
+ #include <linux/slab.h>
+ #include <linux/serial_core.h>
+@@ -167,11 +169,21 @@ static struct platform_device glantank_serial_device = {
+ 	.resource	= &glantank_uart_resource,
+ };
+ 
++static struct f75375s_platform_data glantank_f75375s = {
++	.pwm		= { 255, 255 },
++	.pwm_enable	= { 0, 0 },
++};
++
+ static struct i2c_board_info __initdata glantank_i2c_devices[] = {
+ 	{
+ 		I2C_BOARD_INFO("rtc-rs5c372", 0x32),
+ 		.type = "rs5c372a",
+ 	},
++	{
++		I2C_BOARD_INFO("f75375", 0x2e),
++		.type = "f75375",
++		.platform_data = &glantank_f75375s,
++	},
+ };
+ 
+ static void glantank_power_off(void)
+diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
+index 237651e..a4f8b20 100644
+--- a/arch/arm/mach-omap1/time.c
++++ b/arch/arm/mach-omap1/time.c
+@@ -132,13 +132,20 @@ static inline void omap_mpu_timer_start(int nr, unsigned long load_val,
+ 	timer->cntl = timerflags;
+ }
+ 
++static inline void omap_mpu_timer_stop(int nr)
++{
++	volatile omap_mpu_timer_regs_t* timer = omap_mpu_timer_base(nr);
++
++	timer->cntl &= ~MPU_TIMER_ST;
++}
++
+ /*
+  * ---------------------------------------------------------------------------
+  * MPU timer 1 ... count down to zero, interrupt, reload
+  * ---------------------------------------------------------------------------
+  */
+ static int omap_mpu_set_next_event(unsigned long cycles,
+-				    struct clock_event_device *evt)
++				   struct clock_event_device *evt)
+ {
+ 	omap_mpu_timer_start(0, cycles, 0);
+ 	return 0;
+@@ -152,6 +159,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode,
+ 		omap_mpu_set_autoreset(0);
+ 		break;
+ 	case CLOCK_EVT_MODE_ONESHOT:
++		omap_mpu_timer_stop(0);
+ 		omap_mpu_remove_autoreset(0);
+ 		break;
+ 	case CLOCK_EVT_MODE_UNUSED:
+@@ -163,7 +171,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode,
+ 
+ static struct clock_event_device clockevent_mpu_timer1 = {
+ 	.name		= "mpu_timer1",
+-	.features       = CLOCK_EVT_FEAT_PERIODIC, CLOCK_EVT_FEAT_ONESHOT,
++	.features       = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
+ 	.shift		= 32,
+ 	.set_next_event	= omap_mpu_set_next_event,
+ 	.set_mode	= omap_mpu_set_mode,
+diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S
+index c156dda..016690b 100644
+--- a/arch/arm/mm/proc-xscale.S
++++ b/arch/arm/mm/proc-xscale.S
+@@ -114,6 +114,10 @@ clean_addr:	.word	CLEAN_ADDR
+  * Nothing too exciting at the moment
+  */
+ ENTRY(cpu_xscale_proc_init)
++	@ enable write buffer coalescing. Some bootloader disable it
++	mrc	p15, 0, r1, c1, c0, 1
++	bic	r1, r1, #1
++	mcr	p15, 0, r1, c1, c0, 1
+ 	mov	pc, lr
+ 
+ /*
+diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
+index c1f7e5a..b917206 100644
+--- a/arch/arm/plat-omap/Kconfig
++++ b/arch/arm/plat-omap/Kconfig
+@@ -11,7 +11,6 @@ choice
+ 
+ config ARCH_OMAP1
+ 	bool "TI OMAP1"
+-	select GENERIC_CLOCKEVENTS
+ 
+ config ARCH_OMAP2
+ 	bool "TI OMAP2"
+diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
+index ce17df3..8f56c25 100644
+--- a/arch/arm/plat-omap/Makefile
++++ b/arch/arm/plat-omap/Makefile
+@@ -14,9 +14,14 @@ obj-$(CONFIG_OMAP_32K_TIMER)	+= timer32k.o
+ # OCPI interconnect support for 1710, 1610 and 5912
+ obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
+ 
++obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
+ 
+ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
+ obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
+ obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
+ obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
+ obj-$(CONFIG_I2C_OMAP) += i2c.o
++
++# OMAP mailbox framework
++obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
++
+diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
+index 91004a3..7937406 100644
+--- a/arch/arm/plat-omap/dma.c
++++ b/arch/arm/plat-omap/dma.c
+@@ -1020,12 +1020,12 @@ static void create_dma_lch_chain(int lch_head, int lch_queue)
+ 	}
+ 
+ 	w = OMAP_DMA_CLNK_CTRL_REG(lch_head);
+-	w &= ~(0x0f);
++	w &= ~(0x1f);
+ 	w |= lch_queue;
+ 	OMAP_DMA_CLNK_CTRL_REG(lch_head) = w;
+ 
+ 	w = OMAP_DMA_CLNK_CTRL_REG(lch_queue);
+-	w &= ~(0x0f);
++	w &= ~(0x1f);
+ 	w |= (dma_chan[lch_queue].next_linked_ch);
+ 	OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w;
+ }
+@@ -1248,7 +1248,7 @@ EXPORT_SYMBOL(omap_dma_chain_status);
+  * @param frame_count
+  * @param callbk_data - channel callback parameter data.
+  *
+- * @return  - Success : start_dma status
++ * @return  - Success : 0
+  * 	      Failure: -EINVAL/-EBUSY
+  */
+ int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start,
+@@ -1367,7 +1367,7 @@ int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start,
+ 			dma_chan[lch].flags |= OMAP_DMA_ACTIVE;
+ 		}
+ 	}
+-	return start_dma;
++	return 0;
+ }
+ EXPORT_SYMBOL(omap_dma_chain_a_transfer);
+ 
+@@ -1663,6 +1663,7 @@ static int omap2_dma_handle_ch(int ch)
+ 	if (!status) {
+ 		if (printk_ratelimit())
+ 			printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch);
++		omap_writel(1 << ch, OMAP_DMA4_IRQSTATUS_L0);
+ 		return 0;
+ 	}
+ 	if (unlikely(dma_chan[ch].dev_id == -1)) {
+diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
+index 66a1455..8c78e4e 100644
+--- a/arch/arm/plat-omap/gpio.c
++++ b/arch/arm/plat-omap/gpio.c
+@@ -1134,10 +1134,9 @@ static void gpio_mask_irq(unsigned int irq)
+ static void gpio_unmask_irq(unsigned int irq)
+ {
+ 	unsigned int gpio = irq - IH_GPIO_BASE;
+-	unsigned int gpio_idx = get_gpio_index(gpio);
+ 	struct gpio_bank *bank = get_irq_chip_data(irq);
+ 
+-	_set_gpio_irqenable(bank, gpio_idx, 1);
++	_set_gpio_irqenable(bank, gpio, 1);
+ }
+ 
+ static struct irq_chip gpio_irq_chip = {
 diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
 index 4974d9e..1aded8f 100644
 --- a/arch/powerpc/boot/Makefile
@@ -5453,6 +5680,19 @@
  static int __init cell_publish_devices(void)
  {
  	int node;
+diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c
+index 7e8efaa..5efdfe9 100644
+--- a/arch/s390/lib/uaccess_pt.c
++++ b/arch/s390/lib/uaccess_pt.c
+@@ -406,6 +406,8 @@ int futex_atomic_cmpxchg_pt(int __user *uaddr, int oldval, int newval)
+ {
+ 	int ret;
+ 
++	if (!current->mm)
++		return -EFAULT;
+ 	spin_lock(&current->mm->page_table_lock);
+ 	uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr);
+ 	if (!uaddr) {
 diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c
 index 7a9db35..1c445c7 100644
 --- a/crypto/async_tx/async_xor.c
@@ -8851,6 +9091,404 @@
  			       bdn);
  		else if (atomic_read(&rdev->read_errors)
  			 > conf->max_nr_stripes)
+diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c
+index 21935bf..302cc67 100644
+--- a/drivers/media/dvb/dvb-usb/opera1.c
++++ b/drivers/media/dvb/dvb-usb/opera1.c
+@@ -478,9 +478,9 @@ static int opera1_xilinx_load_firmware(struct usb_device *dev,
+ 				err("could not restart the USB controller CPU.");
+ 				ret = -EINVAL;
+ 			}
+-			kfree(p);
+ 		}
+ 	}
++	kfree(p);
+ 	if (fw) {
+ 		release_firmware(fw);
+ 	}
+diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
+index 37072a2..1832966 100644
+--- a/drivers/media/video/Kconfig
++++ b/drivers/media/video/Kconfig
+@@ -305,7 +305,7 @@ comment "MPEG video encoders"
+ 
+ config VIDEO_CX2341X
+ 	tristate "Conexant CX2341x MPEG encoders"
+-	depends on VIDEO_V4L2 && EXPERIMENTAL
++	depends on VIDEO_V4L2 && EXPERIMENTAL && VIDEO_V4L2_COMMON
+ 	---help---
+ 	  Support for the Conexant CX23416 MPEG encoders
+ 	  and CX23415 MPEG encoder/decoders.
+@@ -382,7 +382,7 @@ endmenu # encoder / decoder chips
+ 
+ config VIDEO_VIVI
+ 	tristate "Virtual Video Driver"
+-	depends on VIDEO_V4L2 && !SPARC32 && !SPARC64
++	depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64
+ 	select VIDEOBUF_VMALLOC
+ 	default n
+ 	---help---
+diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
+index 5404fcc..a080c14 100644
+--- a/drivers/media/video/bt8xx/bttv-driver.c
++++ b/drivers/media/video/bt8xx/bttv-driver.c
+@@ -3389,7 +3389,6 @@ static struct video_device bttv_video_template =
+ 	.vidiocgmbuf                    = vidiocgmbuf,
+ #endif
+ 	.vidioc_g_crop                  = bttv_g_crop,
+-	.vidioc_g_crop                  = bttv_g_crop,
+ 	.vidioc_s_crop                  = bttv_s_crop,
+ 	.vidioc_g_fbuf                  = bttv_g_fbuf,
+ 	.vidioc_s_fbuf                  = bttv_s_fbuf,
+diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
+index e6b7f51..8c9a8ad 100644
+--- a/drivers/media/video/cx88/cx88-cards.c
++++ b/drivers/media/video/cx88/cx88-cards.c
+@@ -2196,6 +2196,11 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
+ 	cx88_reset(core);
+ 	cx88_card_setup_pre_i2c(core);
+ 	cx88_i2c_init(core, pci);
++
++	/* load tuner module, if needed */
++	if (TUNER_ABSENT != core->board.tuner_type)
++		request_module("tuner");
++
+ 	cx88_call_i2c_clients (core, TUNER_SET_STANDBY, NULL);
+ 	cx88_card_setup(core);
+ 	cx88_ir_init(core, pci);
+diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
+index 7f1931a..2271796 100644
+--- a/drivers/media/video/cx88/cx88-video.c
++++ b/drivers/media/video/cx88/cx88-video.c
+@@ -1826,8 +1826,6 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
+ 	cx_set(MO_PCI_INTMSK, core->pci_irqmask);
+ 
+ 	/* load and configure helper modules */
+-	if (TUNER_ABSENT != core->board.tuner_type)
+-		request_module("tuner");
+ 
+ 	if (core->board.audio_chip == AUDIO_CHIP_WM8775)
+ 		request_module("wm8775");
+diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
+index 7d1537c..c1caaa8 100644
+--- a/drivers/media/video/em28xx/em28xx-core.c
++++ b/drivers/media/video/em28xx/em28xx-core.c
+@@ -267,7 +267,7 @@ static int em28xx_write_ac97(struct em28xx *dev, u8 reg, u8 *val)
+ 	for (i = 0; i < 10; i++) {
+ 		if ((ret = em28xx_read_reg(dev, AC97BUSY_REG)) < 0)
+ 			return ret;
+-		if (!((u8) ret) & 0x01)
++		if (!(ret & 0x01))
+ 			return 0;
+ 		msleep(5);
+ 	}
+diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
+index d42f120..948ca35 100644
+--- a/drivers/media/video/ivtv/ivtv-driver.c
++++ b/drivers/media/video/ivtv/ivtv-driver.c
+@@ -54,7 +54,6 @@
+ #include "ivtv-vbi.h"
+ #include "ivtv-routing.h"
+ #include "ivtv-gpio.h"
+-#include "ivtv-yuv.h"
+ 
+ #include <media/tveeprom.h>
+ #include <media/saa7115.h>
+@@ -700,6 +699,9 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv)
+ 	itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE;
+ 	itv->vbi.sliced_in = &itv->vbi.in.fmt.sliced;
+ 
++	/* Init the sg table for osd/yuv output */
++	sg_init_table(itv->udma.SGlist, IVTV_DMA_SG_OSD_ENT);
++
+ 	/* OSD */
+ 	itv->osd_global_alpha_state = 1;
+ 	itv->osd_global_alpha = 255;
+@@ -1053,9 +1055,6 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
+ 		goto free_io;
+ 	}
+ 
+-	/* Check yuv output filter table */
+-	if (itv->has_cx23415) ivtv_yuv_filter_check(itv);
+-
+ 	ivtv_gpio_init(itv);
+ 
+ 	/* active i2c  */
+diff --git a/drivers/media/video/ivtv/ivtv-firmware.c b/drivers/media/video/ivtv/ivtv-firmware.c
+index 425eb10..6dba55b 100644
+--- a/drivers/media/video/ivtv/ivtv-firmware.c
++++ b/drivers/media/video/ivtv/ivtv-firmware.c
+@@ -22,6 +22,7 @@
+ #include "ivtv-driver.h"
+ #include "ivtv-mailbox.h"
+ #include "ivtv-firmware.h"
++#include "ivtv-yuv.h"
+ #include <linux/firmware.h>
+ 
+ #define IVTV_MASK_SPU_ENABLE 		0xFFFFFFFE
+@@ -225,11 +226,14 @@ int ivtv_firmware_init(struct ivtv *itv)
+ 		return 0;
+ 
+ 	itv->dec_mbox.mbox = ivtv_search_mailbox(itv->dec_mem, IVTV_DECODER_SIZE);
+-	if (itv->dec_mbox.mbox == NULL)
++	if (itv->dec_mbox.mbox == NULL) {
+ 		IVTV_ERR("Decoder mailbox not found\n");
+-	else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) {
++	} else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) {
+ 		IVTV_ERR("Decoder firmware dead!\n");
+ 		itv->dec_mbox.mbox = NULL;
++	} else {
++		/* Firmware okay, so check yuv output filter table */
++		ivtv_yuv_filter_check(itv);
+ 	}
+ 	return itv->dec_mbox.mbox ? 0 : -ENODEV;
+ }
+diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
+index 262830d..6f57442 100644
+--- a/drivers/media/video/saa7134/saa7134-cards.c
++++ b/drivers/media/video/saa7134/saa7134-cards.c
+@@ -2484,27 +2484,28 @@ struct saa7134_board saa7134_boards[] = {
+ 		.tuner_addr     = ADDR_UNSET,
+ 		.radio_addr     = ADDR_UNSET,
+ 		.gpiomask       = 0x080200000,
+-		.inputs         = {{
+-			  .name = name_tv,
+-			  .vmux = 4,
+-			  .amux = TV,
+-			  .tv   = 1,
+-		},{
+-			  .name = name_comp1,
+-			  .vmux = 1,
+-			 .amux = LINE2,
+-	       },{
+-			 .name = name_comp2,
+-			 .vmux = 0,
+-			  .amux = LINE2,
+-		},{
+-			  .name = name_svideo,
+-			  .vmux = 8,
+-			  .amux = LINE2,
+-		}},
++		.inputs         = { {
++			.name = name_tv,
++			.vmux = 4,
++			.amux = TV,
++			.tv   = 1,
++		}, {
++			.name = name_comp1,
++			.vmux = 1,
++			.amux = LINE2,
++		}, {
++			.name = name_comp2,
++			.vmux = 0,
++			.amux = LINE2,
++		}, {
++			.name = name_svideo,
++			.vmux = 8,
++			.amux = LINE2,
++		} },
+ 		.radio = {
+-			  .name = name_radio,
+-			  .amux = LINE1,
++			.name = name_radio,
++			.amux = TV,
++			.gpio = 0x0200000,
+ 		},
+ 	},
+ 	[SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
+diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
+index 52baa4f..58ab163 100644
+--- a/drivers/media/video/saa7134/saa7134-core.c
++++ b/drivers/media/video/saa7134/saa7134-core.c
+@@ -1022,12 +1022,13 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
+ 	saa7134_i2c_register(dev);
+ 
+ 	/* initialize hardware #2 */
++	if (TUNER_ABSENT != dev->tuner_type)
++		request_module("tuner");
+ 	saa7134_board_init2(dev);
++
+ 	saa7134_hwinit2(dev);
+ 
+ 	/* load i2c helpers */
+-	if (TUNER_ABSENT != dev->tuner_type)
+-		request_module("tuner");
+ 	if (card_is_empress(dev)) {
+ 		request_module("saa6752hs");
+ 	}
+diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
+index 445eba4..d28318c 100644
+--- a/drivers/media/video/tvp5150.c
++++ b/drivers/media/video/tvp5150.c
+@@ -672,7 +672,7 @@ static int tvp5150_set_vbi(struct i2c_client *c,
+ 	if (std == V4L2_STD_ALL) {
+ 		tvp5150_err("VBI can't be configured without knowing number of lines\n");
+ 		return 0;
+-	} else if (std && V4L2_STD_625_50) {
++	} else if (std & V4L2_STD_625_50) {
+ 		/* Don't follow NTSC Line number convension */
+ 		line += 3;
+ 	}
+@@ -719,7 +719,7 @@ static int tvp5150_get_vbi(struct i2c_client *c,
+ 	if (std == V4L2_STD_ALL) {
+ 		tvp5150_err("VBI can't be configured without knowing number of lines\n");
+ 		return 0;
+-	} else if (std && V4L2_STD_625_50) {
++	} else if (std & V4L2_STD_625_50) {
+ 		/* Don't follow NTSC Line number convension */
+ 		line += 3;
+ 	}
+diff --git a/drivers/media/video/usbvideo/usbvideo.c b/drivers/media/video/usbvideo/usbvideo.c
+index fb434b5..5d363be 100644
+--- a/drivers/media/video/usbvideo/usbvideo.c
++++ b/drivers/media/video/usbvideo/usbvideo.c
+@@ -1034,6 +1034,11 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
+ 		info("%s: iface=%d. endpoint=$%02x paletteBits=$%08lx",
+ 		     __FUNCTION__, uvd->iface, uvd->video_endp, uvd->paletteBits);
+ 	}
++	if (uvd->dev == NULL) {
++		err("%s: uvd->dev == NULL", __FUNCTION__);
++		return -EINVAL;
++	}
++	uvd->vdev.dev=&(uvd->dev->dev);
+ 	if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) == -1) {
+ 		err("%s: video_register_device failed", __FUNCTION__);
+ 		return -EPIPE;
+@@ -1041,10 +1046,6 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
+ 	if (uvd->debug > 1) {
+ 		info("%s: video_register_device() successful", __FUNCTION__);
+ 	}
+-	if (uvd->dev == NULL) {
+-		err("%s: uvd->dev == NULL", __FUNCTION__);
+-		return -EINVAL;
+-	}
+ 
+ 	info("%s on /dev/video%d: canvas=%s videosize=%s",
+ 	     (uvd->handle != NULL) ? uvd->handle->drvName : "???",
+diff --git a/drivers/media/video/v4l1-compat.c b/drivers/media/video/v4l1-compat.c
+index dcf22a3..50e1ff9 100644
+--- a/drivers/media/video/v4l1-compat.c
++++ b/drivers/media/video/v4l1-compat.c
+@@ -303,7 +303,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 	{
+ 		struct video_capability *cap = arg;
+ 
+-		cap2 = kzalloc(sizeof(*cap2),GFP_KERNEL);
++		cap2 = kzalloc(sizeof(*cap2), GFP_KERNEL);
++		if (!cap2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		memset(cap, 0, sizeof(*cap));
+ 		memset(&fbuf2, 0, sizeof(fbuf2));
+ 
+@@ -426,7 +430,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 	{
+ 		struct video_window	*win = arg;
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		memset(win,0,sizeof(*win));
+ 
+ 		fmt2->type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
+@@ -464,7 +472,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 		struct video_window	*win = arg;
+ 		int err1,err2;
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ 		drv(inode, file, VIDIOC_STREAMOFF, &fmt2->type);
+ 		err1 = drv(inode, file, VIDIOC_G_FMT, fmt2);
+@@ -586,6 +598,12 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 	{
+ 		struct video_picture	*pict = arg;
+ 
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
++
+ 		pict->brightness = get_v4l_control(inode, file,
+ 						   V4L2_CID_BRIGHTNESS,drv);
+ 		pict->hue = get_v4l_control(inode, file,
+@@ -597,7 +615,6 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 		pict->whiteness = get_v4l_control(inode, file,
+ 						  V4L2_CID_WHITENESS, drv);
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
+ 		fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ 		err = drv(inode, file, VIDIOC_G_FMT, fmt2);
+ 		if (err < 0) {
+@@ -617,6 +634,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 		struct video_picture	*pict = arg;
+ 		int mem_err = 0, ovl_err = 0;
+ 
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		memset(&fbuf2, 0, sizeof(fbuf2));
+ 
+ 		set_v4l_control(inode, file,
+@@ -636,7 +658,6 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 		 * different pixel formats for memory vs overlay.
+ 		 */
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
+ 		fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ 		err = drv(inode, file, VIDIOC_G_FMT, fmt2);
+ 		/* If VIDIOC_G_FMT failed, then the driver likely doesn't
+@@ -890,7 +911,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 	{
+ 		struct video_mmap	*mm = arg;
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		memset(&buf2,0,sizeof(buf2));
+ 
+ 		fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+@@ -986,7 +1011,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 	{
+ 		struct vbi_format      *fmt = arg;
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE;
+ 
+ 		err = drv(inode, file, VIDIOC_G_FMT, fmt2);
+@@ -1018,8 +1047,11 @@ v4l_compat_translate_ioctl(struct inode         *inode,
+ 			break;
+ 		}
+ 
+-		fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
+-
++		fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
++		if (!fmt2) {
++			err = -ENOMEM;
++			break;
++		}
+ 		fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE;
+ 		fmt2->fmt.vbi.samples_per_line = fmt->samples_per_line;
+ 		fmt2->fmt.vbi.sampling_rate    = fmt->sampling_rate;
 diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
 index de80dba..946e3d3 100644
 --- a/drivers/memstick/core/memstick.c
@@ -11524,6 +12162,65 @@
  
  			bh->b_blocknr = newb + pos;
  			unmap_underlying_metadata(bh->b_bdev,
+diff --git a/include/asm-arm/arch-at91/at91cap9.h b/include/asm-arm/arch-at91/at91cap9.h
+index 73e1fcf..bac83ad 100644
+--- a/include/asm-arm/arch-at91/at91cap9.h
++++ b/include/asm-arm/arch-at91/at91cap9.h
+@@ -97,12 +97,17 @@
+ #define AT91_PIOD	(0xfffff800 - AT91_BASE_SYS)
+ #define AT91_PMC	(0xfffffc00 - AT91_BASE_SYS)
+ #define AT91_RSTC	(0xfffffd00 - AT91_BASE_SYS)
+-#define AT91_SHDC	(0xfffffd10 - AT91_BASE_SYS)
++#define AT91_SHDWC	(0xfffffd10 - AT91_BASE_SYS)
+ #define AT91_RTT	(0xfffffd20 - AT91_BASE_SYS)
+ #define AT91_PIT	(0xfffffd30 - AT91_BASE_SYS)
+ #define AT91_WDT	(0xfffffd40 - AT91_BASE_SYS)
+ #define AT91_GPBR	(0xfffffd50 - AT91_BASE_SYS)
+ 
++#define AT91_USART0	AT91CAP9_BASE_US0
++#define AT91_USART1	AT91CAP9_BASE_US1
++#define AT91_USART2	AT91CAP9_BASE_US2
++
++
+ /*
+  * Internal Memory.
+  */
+diff --git a/include/asm-arm/arch-omap/dsp_common.h b/include/asm-arm/arch-omap/dsp_common.h
+index c61f868..da97736 100644
+--- a/include/asm-arm/arch-omap/dsp_common.h
++++ b/include/asm-arm/arch-omap/dsp_common.h
+@@ -24,11 +24,17 @@
+ #ifndef ASM_ARCH_DSP_COMMON_H
+ #define ASM_ARCH_DSP_COMMON_H
+ 
+-#ifdef CONFIG_ARCH_OMAP1
++#if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_OMAP_MMU_FWK)
+ extern void omap_dsp_request_mpui(void);
+ extern void omap_dsp_release_mpui(void);
+ extern int omap_dsp_request_mem(void);
+ extern int omap_dsp_release_mem(void);
++#else
++static inline int omap_dsp_request_mem(void)
++{
++	return 0;
++}
++#define omap_dsp_release_mem()	do {} while (0)
+ #endif
+ 
+ #endif /* ASM_ARCH_DSP_COMMON_H */
+diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h
+index d858b3e..f5435d8 100644
+--- a/include/asm-arm/arch-s3c2410/irqs.h
++++ b/include/asm-arm/arch-s3c2410/irqs.h
+@@ -85,7 +85,7 @@
+ #define IRQ_EINT23     S3C2410_IRQ(51)
+ 
+ 
+-#define IRQ_EINT(x)    S3C2410_IRQ((x >= 4) ? (IRQ_EINT4 + (x) - 4) : (S3C2410_IRQ(0) + (x)))
++#define IRQ_EINT(x)    (((x) >= 4) ? (IRQ_EINT4 + (x) - 4) : (IRQ_EINT0 + (x)))
+ 
+ #define IRQ_LCD_FIFO   S3C2410_IRQ(52)
+ #define IRQ_LCD_FRAME  S3C2410_IRQ(53)
 diff --git a/include/linux/Kbuild b/include/linux/Kbuild
 index 0fac822..4108b38 100644
 --- a/include/linux/Kbuild
@@ -11738,6 +12435,27 @@
  #ifdef CONFIG_SCHEDSTATS
  	u64			wait_start;
  	u64			wait_max;
+diff --git a/include/linux/security.h b/include/linux/security.h
+index b07357c..c673dfd 100644
+--- a/include/linux/security.h
++++ b/include/linux/security.h
+@@ -57,7 +57,6 @@ extern int cap_inode_need_killpriv(struct dentry *dentry);
+ extern int cap_inode_killpriv(struct dentry *dentry);
+ extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags);
+ extern void cap_task_reparent_to_init (struct task_struct *p);
+-extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid);
+ extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp);
+ extern int cap_task_setioprio (struct task_struct *p, int ioprio);
+ extern int cap_task_setnice (struct task_struct *p, int nice);
+@@ -2187,7 +2186,7 @@ static inline int security_task_kill (struct task_struct *p,
+ 				      struct siginfo *info, int sig,
+ 				      u32 secid)
+ {
+-	return cap_task_kill(p, info, sig, secid);
++	return 0;
+ }
+ 
+ static inline int security_task_wait (struct task_struct *p)
 diff --git a/include/linux/topology.h b/include/linux/topology.h
 index 2352f46..2d8dac8 100644
 --- a/include/linux/topology.h
@@ -12724,6 +13442,76 @@
  
  		/* Should agree with poll, otherwise some programs break */
  		if (sock_writeable(sk))
+diff --git a/security/capability.c b/security/capability.c
+index 9e99f36..2c6e06d 100644
+--- a/security/capability.c
++++ b/security/capability.c
+@@ -40,7 +40,6 @@ static struct security_operations capability_ops = {
+ 	.inode_need_killpriv =		cap_inode_need_killpriv,
+ 	.inode_killpriv =		cap_inode_killpriv,
+ 
+-	.task_kill =			cap_task_kill,
+ 	.task_setscheduler =		cap_task_setscheduler,
+ 	.task_setioprio =		cap_task_setioprio,
+ 	.task_setnice =			cap_task_setnice,
+diff --git a/security/commoncap.c b/security/commoncap.c
+index bb0c095..06d5c94 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -540,41 +540,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
+ 	return cap_safe_nice(p);
+ }
+ 
+-int cap_task_kill(struct task_struct *p, struct siginfo *info,
+-				int sig, u32 secid)
+-{
+-	if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info)))
+-		return 0;
+-
+-	/*
+-	 * Running a setuid root program raises your capabilities.
+-	 * Killing your own setuid root processes was previously
+-	 * allowed.
+-	 * We must preserve legacy signal behavior in this case.
+-	 */
+-	if (p->uid == current->uid)
+-		return 0;
+-
+-	/* sigcont is permitted within same session */
+-	if (sig == SIGCONT && (task_session_nr(current) == task_session_nr(p)))
+-		return 0;
+-
+-	if (secid)
+-		/*
+-		 * Signal sent as a particular user.
+-		 * Capabilities are ignored.  May be wrong, but it's the
+-		 * only thing we can do at the moment.
+-		 * Used only by usb drivers?
+-		 */
+-		return 0;
+-	if (cap_issubset(p->cap_permitted, current->cap_permitted))
+-		return 0;
+-	if (capable(CAP_KILL))
+-		return 0;
+-
+-	return -EPERM;
+-}
+-
+ /*
+  * called from kernel/sys.c for prctl(PR_CABSET_DROP)
+  * done without task_capability_lock() because it introduces
+@@ -605,11 +570,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
+ {
+ 	return 0;
+ }
+-int cap_task_kill(struct task_struct *p, struct siginfo *info,
+-				int sig, u32 secid)
+-{
+-	return 0;
+-}
+ #endif
+ 
+ void cap_task_reparent_to_init (struct task_struct *p)
 diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
 index 4bf4807..41a049f 100644
 --- a/security/selinux/hooks.c
@@ -12739,10 +13527,22 @@
  	char *p;
  	char *context = NULL, *defcontext = NULL;
 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
-index 0241fd3..38d7075 100644
+index 0241fd3..732ba27 100644
 --- a/security/smack/smack_lsm.c
 +++ b/security/smack/smack_lsm.c
-@@ -1508,7 +1508,7 @@ static int smack_shm_associate(struct shmid_kernel *shp, int shmflg)
+@@ -1117,11 +1117,6 @@ static int smack_task_movememory(struct task_struct *p)
+ static int smack_task_kill(struct task_struct *p, struct siginfo *info,
+ 			   int sig, u32 secid)
+ {
+-	int rc;
+-
+-	rc = cap_task_kill(p, info, sig, secid);
+-	if (rc != 0)
+-		return rc;
+ 	/*
+ 	 * Special cases where signals really ought to go through
+ 	 * in spite of policy. Stephen Smalley suggests it may
+@@ -1508,7 +1503,7 @@ static int smack_shm_associate(struct shmid_kernel *shp, int shmflg)
   */
  static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd)
  {
@@ -12751,7 +13551,7 @@
  	int may;
  
  	switch (cmd) {
-@@ -1532,6 +1532,7 @@ static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd)
+@@ -1532,6 +1527,7 @@ static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd)
  		return -EINVAL;
  	}
  
@@ -12759,7 +13559,7 @@
  	return smk_curacc(ssp, may);
  }
  
-@@ -1616,7 +1617,7 @@ static int smack_sem_associate(struct sem_array *sma, int semflg)
+@@ -1616,7 +1612,7 @@ static int smack_sem_associate(struct sem_array *sma, int semflg)
   */
  static int smack_sem_semctl(struct sem_array *sma, int cmd)
  {
@@ -12768,7 +13568,7 @@
  	int may;
  
  	switch (cmd) {
-@@ -1645,6 +1646,7 @@ static int smack_sem_semctl(struct sem_array *sma, int cmd)
+@@ -1645,6 +1641,7 @@ static int smack_sem_semctl(struct sem_array *sma, int cmd)
  		return -EINVAL;
  	}
  
@@ -12776,7 +13576,7 @@
  	return smk_curacc(ssp, may);
  }
  
-@@ -1730,7 +1732,7 @@ static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg)
+@@ -1730,7 +1727,7 @@ static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg)
   */
  static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd)
  {
@@ -12785,7 +13585,7 @@
  	int may;
  
  	switch (cmd) {
-@@ -1752,6 +1754,7 @@ static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd)
+@@ -1752,6 +1749,7 @@ static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd)
  		return -EINVAL;
  	}
  

Modified: dists/trunk/linux-2.6/debian/patches/series/1~experimental.1
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1~experimental.1	(original)
+++ dists/trunk/linux-2.6/debian/patches/series/1~experimental.1	Fri Mar 21 17:30:55 2008
@@ -1,4 +1,4 @@
-+ bugfix/all/patch-2.6.25-rc6-git4
++ bugfix/all/patch-2.6.25-rc6-git5
 + debian/version.patch
 + debian/kernelvariables.patch
 + debian/doc-build-parallel.patch
@@ -36,4 +36,3 @@
 + bugfix/all/rtc-x1205-new-style-conversion.patch
 + bugfix/all/rtc-x1205-new-style-conversion-checkpatch-fixes.patch
 + bugfix/all/file2alias-cross-compile-fix.patch
-+ features/arm/glantank-register-f75375s.patch



More information about the Kernel-svn-changes mailing list