[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(¤t->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