[kernel] r11016 - in dists/trunk/linux-2.6/debian/patches: bugfix/all series
Maximilian Attems
maks at alioth.debian.org
Mon Mar 31 12:46:44 UTC 2008
Author: maks
Date: Mon Mar 31 12:46:43 2008
New Revision: 11016
Log:
update to 2.6.25-rc7-git6
no new conflicts.
upstream merged drm + sparse + various
Added:
dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git6
- copied, changed from r11011, /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git5
Removed:
dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git5
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-rc7-git6 (from r11011, /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git5)
==============================================================================
--- /dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git5 (original)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/patch-2.6.25-rc7-git6 Mon Mar 31 12:46:43 2008
@@ -1009,6 +1009,125 @@
new_thread = &new->thread;
old_thread = ¤t->thread;
+diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c
+index 76ec1d1..9a93217 100644
+--- a/arch/powerpc/oprofile/cell/vma_map.c
++++ b/arch/powerpc/oprofile/cell/vma_map.c
+@@ -92,7 +92,7 @@ vma_map_add(struct vma_to_fileoffset_map *map, unsigned int vma,
+ * A pointer to the first vma_map in the generated list
+ * of vma_maps is returned. */
+ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+- unsigned long spu_elf_start)
++ unsigned long __spu_elf_start)
+ {
+ static const unsigned char expected[EI_PAD] = {
+ [EI_MAG0] = ELFMAG0,
+@@ -107,9 +107,11 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+
+ int grd_val;
+ struct vma_to_fileoffset_map *map = NULL;
++ void __user *spu_elf_start = (void __user *)__spu_elf_start;
+ struct spu_overlay_info ovly;
+ unsigned int overlay_tbl_offset = -1;
+- unsigned long phdr_start, shdr_start;
++ Elf32_Phdr __user *phdr_start;
++ Elf32_Shdr __user *shdr_start;
+ Elf32_Ehdr ehdr;
+ Elf32_Phdr phdr;
+ Elf32_Shdr shdr, shdr_str;
+@@ -121,12 +123,12 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+ unsigned int ovly_buf_table_sym = 0;
+ unsigned int ovly_table_end_sym = 0;
+ unsigned int ovly_buf_table_end_sym = 0;
+- unsigned long ovly_table;
++ struct spu_overlay_info __user *ovly_table;
+ unsigned int n_ovlys;
+
+ /* Get and validate ELF header. */
+
+- if (copy_from_user(&ehdr, (void *) spu_elf_start, sizeof (ehdr)))
++ if (copy_from_user(&ehdr, spu_elf_start, sizeof (ehdr)))
+ goto fail;
+
+ if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) {
+@@ -152,9 +154,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+
+ /* Traverse program headers. */
+ for (i = 0; i < ehdr.e_phnum; i++) {
+- if (copy_from_user(&phdr,
+- (void *) (phdr_start + i * sizeof(phdr)),
+- sizeof(phdr)))
++ if (copy_from_user(&phdr, phdr_start + i, sizeof(phdr)))
+ goto fail;
+
+ if (phdr.p_type != PT_LOAD)
+@@ -171,9 +171,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+ pr_debug("SPU_PROF: Created non-overlay maps\n");
+ /* Traverse section table and search for overlay-related symbols. */
+ for (i = 0; i < ehdr.e_shnum; i++) {
+- if (copy_from_user(&shdr,
+- (void *) (shdr_start + i * sizeof(shdr)),
+- sizeof(shdr)))
++ if (copy_from_user(&shdr, shdr_start + i, sizeof(shdr)))
+ goto fail;
+
+ if (shdr.sh_type != SHT_SYMTAB)
+@@ -182,8 +180,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+ continue;
+
+ if (copy_from_user(&shdr_str,
+- (void *) (shdr_start + shdr.sh_link *
+- sizeof(shdr)),
++ shdr_start + shdr.sh_link,
+ sizeof(shdr)))
+ goto fail;
+
+@@ -191,15 +188,15 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+ goto fail;;
+
+ for (j = 0; j < shdr.sh_size / sizeof (sym); j++) {
+- if (copy_from_user(&sym, (void *) (spu_elf_start +
+- shdr.sh_offset + j *
+- sizeof (sym)),
++ if (copy_from_user(&sym, spu_elf_start +
++ shdr.sh_offset +
++ j * sizeof (sym),
+ sizeof (sym)))
+ goto fail;
+
+- if (copy_from_user(name, (void *)
+- (spu_elf_start + shdr_str.sh_offset +
+- sym.st_name),
++ if (copy_from_user(name,
++ spu_elf_start + shdr_str.sh_offset +
++ sym.st_name,
+ 20))
+ goto fail;
+
+@@ -245,9 +242,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
+
+ /* Traverse overlay table. */
+ for (i = 0; i < n_ovlys; i++) {
+- if (copy_from_user(&ovly, (void *)
+- (ovly_table + i * sizeof (ovly)),
+- sizeof (ovly)))
++ if (copy_from_user(&ovly, ovly_table + i, sizeof (ovly)))
+ goto fail;
+
+ /* The ovly.vma/size/offset arguments are analogous to the same
+diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
+index ca52b58..a977f20 100644
+--- a/arch/powerpc/platforms/pseries/xics.c
++++ b/arch/powerpc/platforms/pseries/xics.c
+@@ -763,7 +763,7 @@ void xics_request_IPIs(void)
+ }
+ #endif /* CONFIG_SMP */
+
+-void xics_teardown_cpu()
++void xics_teardown_cpu(void)
+ {
+ int cpu = smp_processor_id();
+
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 250958d..9d4bd22 100644
--- a/arch/sparc64/defconfig
@@ -3249,6 +3368,49 @@
cid_list = acpi_dev->pnp.cid_list;
for (i = 0; i < cid_list->count; i++) {
+diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
+index c4248b3..4851988 100644
+--- a/drivers/ata/libata-core.c
++++ b/drivers/ata/libata-core.c
+@@ -972,7 +972,7 @@ static void ata_dev_disable_pm(struct ata_device *dev)
+ void ata_lpm_schedule(struct ata_port *ap, enum link_pm policy)
+ {
+ ap->pm_policy = policy;
+- ap->link.eh_info.action |= ATA_EHI_LPM;
++ ap->link.eh_info.action |= ATA_EH_LPM;
+ ap->link.eh_info.flags |= ATA_EHI_NO_AUTOPSY;
+ ata_port_schedule_eh(ap);
+ }
+diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
+index 681252f..a583032 100644
+--- a/drivers/ata/libata-eh.c
++++ b/drivers/ata/libata-eh.c
+@@ -2748,7 +2748,7 @@ int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
+ ehc->i.flags &= ~ATA_EHI_SETMODE;
+ }
+
+- if (ehc->i.action & ATA_EHI_LPM)
++ if (ehc->i.action & ATA_EH_LPM)
+ ata_link_for_each_dev(dev, link)
+ ata_dev_enable_pm(dev, ap->pm_policy);
+
+diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
+index 503245a..3988e44 100644
+--- a/drivers/ata/pata_sil680.c
++++ b/drivers/ata/pata_sil680.c
+@@ -269,7 +269,11 @@ static u8 sil680_init_chip(struct pci_dev *pdev, int *try_mmio)
+ dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n",
+ tmpbyte & 1, tmpbyte & 0x30);
+
+- *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5);
++ *try_mmio = 0;
++#ifdef CONFIG_PPC
++ if (machine_is(cell))
++ *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5);
++#endif
+
+ switch(tmpbyte & 0x30) {
+ case 0x00:
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index bf31a01..9a6537f 100644
--- a/drivers/base/driver.c
@@ -3273,7 +3435,7 @@
EXPORT_SYMBOL_GPL(driver_add_kobj);
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
-index e5a0e97..35d25d8 100644
+index e5a0e97..141f4df 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
@@ -122,8 +122,9 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
@@ -3288,6 +3450,352 @@
}
pci_gart = (u32 *) address;
+@@ -167,6 +168,12 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+ }
+ }
+
++ if (gart_info->gart_table_location == DRM_ATI_GART_MAIN)
++ dma_sync_single_for_device(&dev->pdev->dev,
++ bus_address,
++ max_pages * sizeof(u32),
++ PCI_DMA_TODEVICE);
++
+ ret = 1;
+
+ #if defined(__i386__) || defined(__x86_64__)
+diff --git a/drivers/char/drm/drm_scatter.c b/drivers/char/drm/drm_scatter.c
+index 26d8f67..b2b0f3d 100644
+--- a/drivers/char/drm/drm_scatter.c
++++ b/drivers/char/drm/drm_scatter.c
+@@ -36,6 +36,15 @@
+
+ #define DEBUG_SCATTER 0
+
++static inline void *drm_vmalloc_dma(unsigned long size)
++{
++#if defined(__powerpc__) && defined(CONFIG_NOT_COHERENT_CACHE)
++ return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL | _PAGE_NO_CACHE);
++#else
++ return vmalloc_32(size);
++#endif
++}
++
+ void drm_sg_cleanup(struct drm_sg_mem * entry)
+ {
+ struct page *page;
+@@ -104,7 +113,7 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
+ }
+ memset((void *)entry->busaddr, 0, pages * sizeof(*entry->busaddr));
+
+- entry->virtual = vmalloc_32(pages << PAGE_SHIFT);
++ entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
+ if (!entry->virtual) {
+ drm_free(entry->busaddr,
+ entry->pages * sizeof(*entry->busaddr), DRM_MEM_PAGES);
+diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c
+index 3d65c4d..945df72 100644
+--- a/drivers/char/drm/drm_vm.c
++++ b/drivers/char/drm/drm_vm.c
+@@ -54,13 +54,24 @@ static pgprot_t drm_io_prot(uint32_t map_type, struct vm_area_struct *vma)
+ pgprot_val(tmp) |= _PAGE_NO_CACHE;
+ if (map_type == _DRM_REGISTERS)
+ pgprot_val(tmp) |= _PAGE_GUARDED;
+-#endif
+-#if defined(__ia64__)
++#elif defined(__ia64__)
+ if (efi_range_is_wc(vma->vm_start, vma->vm_end -
+ vma->vm_start))
+ tmp = pgprot_writecombine(tmp);
+ else
+ tmp = pgprot_noncached(tmp);
++#elif defined(__sparc__)
++ tmp = pgprot_noncached(tmp);
++#endif
++ return tmp;
++}
++
++static pgprot_t drm_dma_prot(uint32_t map_type, struct vm_area_struct *vma)
++{
++ pgprot_t tmp = vm_get_page_prot(vma->vm_flags);
++
++#if defined(__powerpc__) && defined(CONFIG_NOT_COHERENT_CACHE)
++ tmp |= _PAGE_NO_CACHE;
+ #endif
+ return tmp;
+ }
+@@ -603,9 +614,6 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
+ offset = dev->driver->get_reg_ofs(dev);
+ vma->vm_flags |= VM_IO; /* not in core dump */
+ vma->vm_page_prot = drm_io_prot(map->type, vma);
+-#ifdef __sparc__
+- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+-#endif
+ if (io_remap_pfn_range(vma, vma->vm_start,
+ (map->offset + offset) >> PAGE_SHIFT,
+ vma->vm_end - vma->vm_start,
+@@ -624,6 +632,7 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
+ page_to_pfn(virt_to_page(map->handle)),
+ vma->vm_end - vma->vm_start, vma->vm_page_prot))
+ return -EAGAIN;
++ vma->vm_page_prot = drm_dma_prot(map->type, vma);
+ /* fall through to _DRM_SHM */
+ case _DRM_SHM:
+ vma->vm_ops = &drm_vm_shm_ops;
+@@ -631,6 +640,7 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
+ /* Don't let this area swap. Change when
+ DRM_KERNEL advisory is supported. */
+ vma->vm_flags |= VM_RESERVED;
++ vma->vm_page_prot = drm_dma_prot(map->type, vma);
+ break;
+ case _DRM_SCATTER_GATHER:
+ vma->vm_ops = &drm_vm_sg_ops;
+diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
+index e9d6663..a043bb1 100644
+--- a/drivers/char/drm/i915_dma.c
++++ b/drivers/char/drm/i915_dma.c
+@@ -804,6 +804,9 @@ void i915_driver_lastclose(struct drm_device * dev)
+ {
+ drm_i915_private_t *dev_priv = dev->dev_private;
+
++ if (!dev_priv)
++ return;
++
+ if (dev_priv->agp_heap)
+ i915_mem_takedown(&(dev_priv->agp_heap));
+
+diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c
+index 0f4afc4..f535812 100644
+--- a/drivers/char/drm/r300_cmdbuf.c
++++ b/drivers/char/drm/r300_cmdbuf.c
+@@ -729,6 +729,47 @@ static void r300_discard_buffer(struct drm_device * dev, struct drm_buf * buf)
+ buf->used = 0;
+ }
+
++static void r300_cmd_wait(drm_radeon_private_t * dev_priv,
++ drm_r300_cmd_header_t header)
++{
++ u32 wait_until;
++ RING_LOCALS;
++
++ if (!header.wait.flags)
++ return;
++
++ wait_until = 0;
++
++ switch(header.wait.flags) {
++ case R300_WAIT_2D:
++ wait_until = RADEON_WAIT_2D_IDLE;
++ break;
++ case R300_WAIT_3D:
++ wait_until = RADEON_WAIT_3D_IDLE;
++ break;
++ case R300_NEW_WAIT_2D_3D:
++ wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_3D_IDLE;
++ break;
++ case R300_NEW_WAIT_2D_2D_CLEAN:
++ wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_2D_IDLECLEAN;
++ break;
++ case R300_NEW_WAIT_3D_3D_CLEAN:
++ wait_until = RADEON_WAIT_3D_IDLE|RADEON_WAIT_3D_IDLECLEAN;
++ break;
++ case R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN:
++ wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_2D_IDLECLEAN;
++ wait_until |= RADEON_WAIT_3D_IDLE|RADEON_WAIT_3D_IDLECLEAN;
++ break;
++ default:
++ return;
++ }
++
++ BEGIN_RING(2);
++ OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
++ OUT_RING(wait_until);
++ ADVANCE_RING();
++}
++
+ static int r300_scratch(drm_radeon_private_t *dev_priv,
+ drm_radeon_kcmd_buffer_t *cmdbuf,
+ drm_r300_cmd_header_t header)
+@@ -909,19 +950,8 @@ int r300_do_cp_cmdbuf(struct drm_device *dev,
+ break;
+
+ case R300_CMD_WAIT:
+- /* simple enough, we can do it here */
+ DRM_DEBUG("R300_CMD_WAIT\n");
+- if (header.wait.flags == 0)
+- break; /* nothing to do */
+-
+- {
+- RING_LOCALS;
+-
+- BEGIN_RING(2);
+- OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
+- OUT_RING((header.wait.flags & 0xf) << 14);
+- ADVANCE_RING();
+- }
++ r300_cmd_wait(dev_priv, header);
+ break;
+
+ case R300_CMD_SCRATCH:
+diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h
+index 71e5b21..aab82e1 100644
+--- a/drivers/char/drm/radeon_drm.h
++++ b/drivers/char/drm/radeon_drm.h
+@@ -225,8 +225,20 @@ typedef union {
+ #define R300_CMD_WAIT 7
+ # define R300_WAIT_2D 0x1
+ # define R300_WAIT_3D 0x2
++/* these two defines are DOING IT WRONG - however
++ * we have userspace which relies on using these.
++ * The wait interface is backwards compat new
++ * code should use the NEW_WAIT defines below
++ * THESE ARE NOT BIT FIELDS
++ */
+ # define R300_WAIT_2D_CLEAN 0x3
+ # define R300_WAIT_3D_CLEAN 0x4
++
++# define R300_NEW_WAIT_2D_3D 0x3
++# define R300_NEW_WAIT_2D_2D_CLEAN 0x4
++# define R300_NEW_WAIT_3D_3D_CLEAN 0x6
++# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
++
+ #define R300_CMD_SCRATCH 8
+
+ typedef union {
+diff --git a/drivers/char/drm/radeon_mem.c b/drivers/char/drm/radeon_mem.c
+index 78b34fa..4af5286 100644
+--- a/drivers/char/drm/radeon_mem.c
++++ b/drivers/char/drm/radeon_mem.c
+@@ -88,7 +88,7 @@ static struct mem_block *alloc_block(struct mem_block *heap, int size,
+
+ list_for_each(p, heap) {
+ int start = (p->start + mask) & ~mask;
+- if (p->file_priv == 0 && start + size <= p->start + p->size)
++ if (p->file_priv == NULL && start + size <= p->start + p->size)
+ return split_block(p, start, size, file_priv);
+ }
+
+@@ -113,7 +113,7 @@ static void free_block(struct mem_block *p)
+ /* Assumes a single contiguous range. Needs a special file_priv in
+ * 'heap' to stop it being subsumed.
+ */
+- if (p->next->file_priv == 0) {
++ if (p->next->file_priv == NULL) {
+ struct mem_block *q = p->next;
+ p->size += q->size;
+ p->next = q->next;
+@@ -121,7 +121,7 @@ static void free_block(struct mem_block *p)
+ drm_free(q, sizeof(*q), DRM_MEM_BUFS);
+ }
+
+- if (p->prev->file_priv == 0) {
++ if (p->prev->file_priv == NULL) {
+ struct mem_block *q = p->prev;
+ q->size += p->size;
+ q->next = p->next;
+@@ -174,7 +174,7 @@ void radeon_mem_release(struct drm_file *file_priv, struct mem_block *heap)
+ * 'heap' to stop it being subsumed.
+ */
+ list_for_each(p, heap) {
+- while (p->file_priv == 0 && p->next->file_priv == 0) {
++ while (p->file_priv == NULL && p->next->file_priv == NULL) {
+ struct mem_block *q = p->next;
+ p->size += q->size;
+ p->next = q->next;
+diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c
+index 46b2a1c..0c09409 100644
+--- a/drivers/char/n_tty.c
++++ b/drivers/char/n_tty.c
+@@ -1183,7 +1183,7 @@ static int copy_from_read_buf(struct tty_struct *tty,
+ return retval;
+ }
+
+-extern ssize_t redirected_tty_write(struct file *, const char *,
++extern ssize_t redirected_tty_write(struct file *, const char __user *,
+ size_t, loff_t *);
+
+ /**
+diff --git a/drivers/char/nozomi.c b/drivers/char/nozomi.c
+index 6d0dc5f..6a6843a 100644
+--- a/drivers/char/nozomi.c
++++ b/drivers/char/nozomi.c
+@@ -438,7 +438,7 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
+ u32 size_bytes)
+ {
+ u32 i = 0;
+- const u32 *ptr = (__force u32 *) mem_addr_start;
++ const u32 __iomem *ptr = mem_addr_start;
+ u16 *buf16;
+
+ if (unlikely(!ptr || !buf))
+@@ -448,11 +448,11 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
+ switch (size_bytes) {
+ case 2: /* 2 bytes */
+ buf16 = (u16 *) buf;
+- *buf16 = __le16_to_cpu(readw((void __iomem *)ptr));
++ *buf16 = __le16_to_cpu(readw(ptr));
+ goto out;
+ break;
+ case 4: /* 4 bytes */
+- *(buf) = __le32_to_cpu(readl((void __iomem *)ptr));
++ *(buf) = __le32_to_cpu(readl(ptr));
+ goto out;
+ break;
+ }
+@@ -461,11 +461,11 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
+ if (size_bytes - i == 2) {
+ /* Handle 2 bytes in the end */
+ buf16 = (u16 *) buf;
+- *(buf16) = __le16_to_cpu(readw((void __iomem *)ptr));
++ *(buf16) = __le16_to_cpu(readw(ptr));
+ i += 2;
+ } else {
+ /* Read 4 bytes */
+- *(buf) = __le32_to_cpu(readl((void __iomem *)ptr));
++ *(buf) = __le32_to_cpu(readl(ptr));
+ i += 4;
+ }
+ buf++;
+@@ -484,7 +484,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
+ u32 size_bytes)
+ {
+ u32 i = 0;
+- u32 *ptr = (__force u32 *) mem_addr_start;
++ u32 __iomem *ptr = mem_addr_start;
+ const u16 *buf16;
+
+ if (unlikely(!ptr || !buf))
+@@ -494,7 +494,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
+ switch (size_bytes) {
+ case 2: /* 2 bytes */
+ buf16 = (const u16 *)buf;
+- writew(__cpu_to_le16(*buf16), (void __iomem *)ptr);
++ writew(__cpu_to_le16(*buf16), ptr);
+ return 2;
+ break;
+ case 1: /*
+@@ -502,7 +502,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
+ * so falling through..
+ */
+ case 4: /* 4 bytes */
+- writel(__cpu_to_le32(*buf), (void __iomem *)ptr);
++ writel(__cpu_to_le32(*buf), ptr);
+ return 4;
+ break;
+ }
+@@ -511,11 +511,11 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
+ if (size_bytes - i == 2) {
+ /* 2 bytes */
+ buf16 = (const u16 *)buf;
+- writew(__cpu_to_le16(*buf16), (void __iomem *)ptr);
++ writew(__cpu_to_le16(*buf16), ptr);
+ i += 2;
+ } else {
+ /* 4 bytes */
+- writel(__cpu_to_le32(*buf), (void __iomem *)ptr);
++ writel(__cpu_to_le32(*buf), ptr);
+ i += 4;
+ }
+ buf++;
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index d73663a..fc555a9 100644
--- a/drivers/cpuidle/cpuidle.c
@@ -3338,6 +3846,368 @@
define_show_state_str_function(name)
define_show_state_str_function(desc)
+diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
+index 3110bf7..81f3f95 100644
+--- a/drivers/crypto/hifn_795x.c
++++ b/drivers/crypto/hifn_795x.c
+@@ -392,8 +392,8 @@ static atomic_t hifn_dev_number;
+
+ struct hifn_desc
+ {
+- volatile u32 l;
+- volatile u32 p;
++ volatile __le32 l;
++ volatile __le32 p;
+ };
+
+ struct hifn_dma {
+@@ -481,10 +481,10 @@ struct hifn_device
+
+ struct hifn_base_command
+ {
+- volatile u16 masks;
+- volatile u16 session_num;
+- volatile u16 total_source_count;
+- volatile u16 total_dest_count;
++ volatile __le16 masks;
++ volatile __le16 session_num;
++ volatile __le16 total_source_count;
++ volatile __le16 total_dest_count;
+ };
+
+ #define HIFN_BASE_CMD_COMP 0x0100 /* enable compression engine */
+@@ -504,10 +504,10 @@ struct hifn_base_command
+ */
+ struct hifn_crypt_command
+ {
+- volatile u16 masks;
+- volatile u16 header_skip;
+- volatile u16 source_count;
+- volatile u16 reserved;
++ volatile __le16 masks;
++ volatile __le16 header_skip;
++ volatile __le16 source_count;
++ volatile __le16 reserved;
+ };
+
+ #define HIFN_CRYPT_CMD_ALG_MASK 0x0003 /* algorithm: */
+@@ -670,7 +670,7 @@ static inline u32 hifn_read_0(struct hifn_device *dev, u32 reg)
+ {
+ u32 ret;
+
+- ret = readl((char *)(dev->bar[0]) + reg);
++ ret = readl(dev->bar[0] + reg);
+
+ return ret;
+ }
+@@ -679,19 +679,19 @@ static inline u32 hifn_read_1(struct hifn_device *dev, u32 reg)
+ {
+ u32 ret;
+
+- ret = readl((char *)(dev->bar[1]) + reg);
++ ret = readl(dev->bar[1] + reg);
+
+ return ret;
+ }
+
+ static inline void hifn_write_0(struct hifn_device *dev, u32 reg, u32 val)
+ {
+- writel(val, (char *)(dev->bar[0]) + reg);
++ writel(val, dev->bar[0] + reg);
+ }
+
+ static inline void hifn_write_1(struct hifn_device *dev, u32 reg, u32 val)
+ {
+- writel(val, (char *)(dev->bar[1]) + reg);
++ writel(val, dev->bar[1] + reg);
+ }
+
+ static void hifn_wait_puc(struct hifn_device *dev)
+diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h
+index fddd6ae..6faf07b 100644
+--- a/drivers/dma/fsldma.h
++++ b/drivers/dma/fsldma.h
+@@ -75,12 +75,15 @@
+ #define FSL_DMA_DGSR_EOSI 0x02
+ #define FSL_DMA_DGSR_EOLSI 0x01
+
++typedef u64 __bitwise v64;
++typedef u32 __bitwise v32;
++
+ struct fsl_dma_ld_hw {
+- u64 __bitwise src_addr;
+- u64 __bitwise dst_addr;
+- u64 __bitwise next_ln_addr;
+- u32 __bitwise count;
+- u32 __bitwise reserve;
++ v64 src_addr;
++ v64 dst_addr;
++ v64 next_ln_addr;
++ v32 count;
++ v32 reserve;
+ } __attribute__((aligned(32)));
+
+ struct fsl_desc_sw {
+@@ -92,13 +95,13 @@ struct fsl_desc_sw {
+ } __attribute__((aligned(32)));
+
+ struct fsl_dma_chan_regs {
+- u32 __bitwise mr; /* 0x00 - Mode Register */
+- u32 __bitwise sr; /* 0x04 - Status Register */
+- u64 __bitwise cdar; /* 0x08 - Current descriptor address register */
+- u64 __bitwise sar; /* 0x10 - Source Address Register */
+- u64 __bitwise dar; /* 0x18 - Destination Address Register */
+- u32 __bitwise bcr; /* 0x20 - Byte Count Register */
+- u64 __bitwise ndar; /* 0x24 - Next Descriptor Address Register */
++ u32 mr; /* 0x00 - Mode Register */
++ u32 sr; /* 0x04 - Status Register */
++ u64 cdar; /* 0x08 - Current descriptor address register */
++ u64 sar; /* 0x10 - Source Address Register */
++ u64 dar; /* 0x18 - Destination Address Register */
++ u32 bcr; /* 0x20 - Byte Count Register */
++ u64 ndar; /* 0x24 - Next Descriptor Address Register */
+ };
+
+ struct fsl_dma_chan;
+@@ -151,25 +154,27 @@ struct fsl_dma_chan {
+ #ifndef __powerpc64__
+ static u64 in_be64(const u64 __iomem *addr)
+ {
+- return ((u64)in_be32((u32 *)addr) << 32) | (in_be32((u32 *)addr + 1));
++ return ((u64)in_be32((u32 __iomem *)addr) << 32) |
++ (in_be32((u32 __iomem *)addr + 1));
+ }
+
+ static void out_be64(u64 __iomem *addr, u64 val)
+ {
+- out_be32((u32 *)addr, val >> 32);
+- out_be32((u32 *)addr + 1, (u32)val);
++ out_be32((u32 __iomem *)addr, val >> 32);
++ out_be32((u32 __iomem *)addr + 1, (u32)val);
+ }
+
+ /* There is no asm instructions for 64 bits reverse loads and stores */
+ static u64 in_le64(const u64 __iomem *addr)
+ {
+- return ((u64)in_le32((u32 *)addr + 1) << 32) | (in_le32((u32 *)addr));
++ return ((u64)in_le32((u32 __iomem *)addr + 1) << 32) |
++ (in_le32((u32 __iomem *)addr));
+ }
+
+ static void out_le64(u64 __iomem *addr, u64 val)
+ {
+- out_le32((u32 *)addr + 1, val >> 32);
+- out_le32((u32 *)addr, (u32)val);
++ out_le32((u32 __iomem *)addr + 1, val >> 32);
++ out_le32((u32 __iomem *)addr, (u32)val);
+ }
+ #endif
+
+@@ -182,9 +187,11 @@ static void out_le64(u64 __iomem *addr, u64 val)
+
+ #define DMA_TO_CPU(fsl_chan, d, width) \
+ (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
+- be##width##_to_cpu(d) : le##width##_to_cpu(d))
++ be##width##_to_cpu((__force __be##width)(v##width)d) : \
++ le##width##_to_cpu((__force __le##width)(v##width)d))
+ #define CPU_TO_DMA(fsl_chan, c, width) \
+ (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
+- cpu_to_be##width(c) : cpu_to_le##width(c))
++ (__force v##width)cpu_to_be##width(c) : \
++ (__force v##width)cpu_to_le##width(c))
+
+ #endif /* __DMA_FSLDMA_H */
+diff --git a/drivers/dma/ioat_dca.c b/drivers/dma/ioat_dca.c
+index 0fa8a98..9e92276 100644
+--- a/drivers/dma/ioat_dca.c
++++ b/drivers/dma/ioat_dca.c
+@@ -98,7 +98,7 @@ struct ioat_dca_slot {
+
+ struct ioat_dca_priv {
+ void __iomem *iobase;
+- void *dca_base;
++ void __iomem *dca_base;
+ int max_requesters;
+ int requester_count;
+ u8 tag_map[IOAT_TAG_MAP_LEN];
+@@ -338,7 +338,7 @@ static struct dca_ops ioat2_dca_ops = {
+ .get_tag = ioat2_dca_get_tag,
+ };
+
+-static int ioat2_dca_count_dca_slots(void *iobase, u16 dca_offset)
++static int ioat2_dca_count_dca_slots(void __iomem *iobase, u16 dca_offset)
+ {
+ int slots = 0;
+ u32 req;
+diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
+index c419266..01b9220 100644
+--- a/drivers/ide/ide-iops.c
++++ b/drivers/ide/ide-iops.c
+@@ -595,6 +595,7 @@ u8 eighty_ninty_three (ide_drive_t *drive)
+
+ /*
+ * FIXME:
++ * - change master/slave IDENTIFY order
+ * - force bit13 (80c cable present) check also for !ivb devices
+ * (unless the slave device is pre-ATA3)
+ */
+diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
+index 194ecb0..47a1149 100644
+--- a/drivers/ide/ide-probe.c
++++ b/drivers/ide/ide-probe.c
+@@ -774,9 +774,10 @@ static int ide_probe_port(ide_hwif_t *hwif)
+ printk(KERN_DEBUG "%s: Wait for ready failed before probe !\n", hwif->name);
+
+ /*
+- * Need to probe slave device first to make it release PDIAG-.
++ * Second drive should only exist if first drive was found,
++ * but a lot of cdrom drives are configured as single slaves.
+ */
+- for (unit = MAX_DRIVES - 1; unit >= 0; unit--) {
++ for (unit = 0; unit < MAX_DRIVES; ++unit) {
+ ide_drive_t *drive = &hwif->drives[unit];
+ drive->dn = (hwif->channel ? 2 : 0) + unit;
+ (void) probe_for_drive(drive);
+diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
+index a58ad8a..781ea59 100644
+--- a/drivers/infiniband/core/addr.c
++++ b/drivers/infiniband/core/addr.c
+@@ -154,7 +154,7 @@ static void addr_send_arp(struct sockaddr_in *dst_in)
+ {
+ struct rtable *rt;
+ struct flowi fl;
+- u32 dst_ip = dst_in->sin_addr.s_addr;
++ __be32 dst_ip = dst_in->sin_addr.s_addr;
+
+ memset(&fl, 0, sizeof fl);
+ fl.nl_u.ip4_u.daddr = dst_ip;
+@@ -169,8 +169,8 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,
+ struct sockaddr_in *dst_in,
+ struct rdma_dev_addr *addr)
+ {
+- u32 src_ip = src_in->sin_addr.s_addr;
+- u32 dst_ip = dst_in->sin_addr.s_addr;
++ __be32 src_ip = src_in->sin_addr.s_addr;
++ __be32 dst_ip = dst_in->sin_addr.s_addr;
+ struct flowi fl;
+ struct rtable *rt;
+ struct neighbour *neigh;
+@@ -257,7 +257,7 @@ static int addr_resolve_local(struct sockaddr_in *src_in,
+ struct rdma_dev_addr *addr)
+ {
+ struct net_device *dev;
+- u32 src_ip = src_in->sin_addr.s_addr;
++ __be32 src_ip = src_in->sin_addr.s_addr;
+ __be32 dst_ip = dst_in->sin_addr.s_addr;
+ int ret;
+
+diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
+index 4df4051..faa7ce3 100644
+--- a/drivers/infiniband/core/cm.c
++++ b/drivers/infiniband/core/cm.c
+@@ -393,7 +393,7 @@ static int cm_alloc_id(struct cm_id_private *cm_id_priv)
+ spin_unlock_irqrestore(&cm.lock, flags);
+ } while( (ret == -EAGAIN) && idr_pre_get(&cm.local_id_table, GFP_KERNEL) );
+
+- cm_id_priv->id.local_id = (__force __be32) (id ^ cm.random_id_operand);
++ cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
+ return ret;
+ }
+
+diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
+index 34507da..d81c156 100644
+--- a/drivers/infiniband/core/cma.c
++++ b/drivers/infiniband/core/cma.c
+@@ -168,15 +168,15 @@ struct cma_work {
+ union cma_ip_addr {
+ struct in6_addr ip6;
+ struct {
+- __u32 pad[3];
+- __u32 addr;
++ __be32 pad[3];
++ __be32 addr;
+ } ip4;
+ };
+
+ struct cma_hdr {
+ u8 cma_version;
+ u8 ip_version; /* IP version: 7:4 */
+- __u16 port;
++ __be16 port;
+ union cma_ip_addr src_addr;
+ union cma_ip_addr dst_addr;
+ };
+@@ -186,8 +186,8 @@ struct sdp_hh {
+ u8 sdp_version; /* Major version: 7:4 */
+ u8 ip_version; /* IP version: 7:4 */
+ u8 sdp_specific1[10];
+- __u16 port;
+- __u16 sdp_specific2;
++ __be16 port;
++ __be16 sdp_specific2;
+ union cma_ip_addr src_addr;
+ union cma_ip_addr dst_addr;
+ };
+@@ -663,7 +663,7 @@ static inline int cma_any_port(struct sockaddr *addr)
+ }
+
+ static int cma_get_net_info(void *hdr, enum rdma_port_space ps,
+- u8 *ip_ver, __u16 *port,
++ u8 *ip_ver, __be16 *port,
+ union cma_ip_addr **src, union cma_ip_addr **dst)
+ {
+ switch (ps) {
+@@ -695,7 +695,7 @@ static int cma_get_net_info(void *hdr, enum rdma_port_space ps,
+
+ static void cma_save_net_info(struct rdma_addr *addr,
+ struct rdma_addr *listen_addr,
+- u8 ip_ver, __u16 port,
++ u8 ip_ver, __be16 port,
+ union cma_ip_addr *src, union cma_ip_addr *dst)
+ {
+ struct sockaddr_in *listen4, *ip4;
+@@ -996,7 +996,7 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
+ struct rdma_cm_id *id;
+ struct rdma_route *rt;
+ union cma_ip_addr *src, *dst;
+- __u16 port;
++ __be16 port;
+ u8 ip_ver;
+
+ if (cma_get_net_info(ib_event->private_data, listen_id->ps,
+@@ -1043,7 +1043,7 @@ static struct rdma_id_private *cma_new_udp_id(struct rdma_cm_id *listen_id,
+ struct rdma_id_private *id_priv;
+ struct rdma_cm_id *id;
+ union cma_ip_addr *src, *dst;
+- __u16 port;
++ __be16 port;
+ u8 ip_ver;
+ int ret;
+
+@@ -1165,7 +1165,7 @@ static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
+ {
+ struct cma_hdr *cma_data, *cma_mask;
+ struct sdp_hh *sdp_data, *sdp_mask;
+- __u32 ip4_addr;
++ __be32 ip4_addr;
+ struct in6_addr ip6_addr;
+
+ memset(compare, 0, sizeof *compare);
+@@ -1181,12 +1181,12 @@ static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
+ sdp_set_ip_ver(sdp_data, 4);
+ sdp_set_ip_ver(sdp_mask, 0xF);
+ sdp_data->dst_addr.ip4.addr = ip4_addr;
+- sdp_mask->dst_addr.ip4.addr = ~0;
++ sdp_mask->dst_addr.ip4.addr = htonl(~0);
+ } else {
+ cma_set_ip_ver(cma_data, 4);
+ cma_set_ip_ver(cma_mask, 0xF);
+ cma_data->dst_addr.ip4.addr = ip4_addr;
+- cma_mask->dst_addr.ip4.addr = ~0;
++ cma_mask->dst_addr.ip4.addr = htonl(~0);
+ }
+ break;
+ case AF_INET6:
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index 320f2b6..99f2f2a 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -3351,6 +4221,20 @@
attrs.max_ord = ep->ord;
attrs.llp_stream_handle = ep;
attrs.next_state = IWCH_QP_STATE_RTS;
+diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
+index 0727b0a..99562ce 100644
+--- a/drivers/input/evdev.c
++++ b/drivers/input/evdev.c
+@@ -853,6 +853,9 @@ static void evdev_cleanup(struct evdev *evdev)
+ evdev_hangup(evdev);
+ evdev_remove_chrdev(evdev);
+
++ if (evdev->grab)
++ evdev_ungrab(evdev, evdev->grab);
++
+ /* evdev is marked dead so no one else accesses evdev->open */
+ if (evdev->open) {
+ input_flush_device(handle, NULL);
diff --git a/drivers/input/misc/ixp4xx-beeper.c b/drivers/input/misc/ixp4xx-beeper.c
index d2ade74..798d84c 100644
--- a/drivers/input/misc/ixp4xx-beeper.c
@@ -3544,7 +4428,7 @@
unsigned index,
void (*callback)(struct virtqueue *vq))
diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c
-index 2221485..564e425 100644
+index 2221485..645e6e0 100644
--- a/drivers/lguest/lguest_user.c
+++ b/drivers/lguest/lguest_user.c
@@ -73,7 +73,7 @@ static ssize_t read(struct file *file, char __user *user, size_t size,loff_t*o)
@@ -3608,8 +4492,12 @@
return 0;
}
-@@ -185,14 +192,13 @@ static int initialize(struct file *file, const unsigned long __user *input)
- lg->mem_base = (void __user *)(long)args[0];
+@@ -182,17 +189,16 @@ static int initialize(struct file *file, const unsigned long __user *input)
+ }
+
+ /* Populate the easy fields of our "struct lguest" */
+- lg->mem_base = (void __user *)(long)args[0];
++ lg->mem_base = (void __user *)args[0];
lg->pfn_limit = args[1];
- /* This is the first cpu */
@@ -4103,6 +4991,419 @@
int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from,
unsigned int num_dests, struct io_region *dests,
+diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c
+index 168a8d3..7707b8c 100644
+--- a/drivers/media/common/saa7146_core.c
++++ b/drivers/media/common/saa7146_core.c
+@@ -306,25 +306,22 @@ static irqreturn_t interrupt_hw(int irq, void *dev_id)
+ return IRQ_NONE;
+ }
+
+- if( 0 != (dev->ext)) {
+- if( 0 != (dev->ext->irq_mask & isr )) {
+- if( 0 != dev->ext->irq_func ) {
++ if (dev->ext) {
++ if (dev->ext->irq_mask & isr) {
++ if (dev->ext->irq_func)
+ dev->ext->irq_func(dev, &isr);
+- }
+ isr &= ~dev->ext->irq_mask;
+ }
+ }
+ if (0 != (isr & (MASK_27))) {
+ DEB_INT(("irq: RPS0 (0x%08x).\n",isr));
+- if( 0 != dev->vv_data && 0 != dev->vv_callback) {
++ if (dev->vv_data && dev->vv_callback)
+ dev->vv_callback(dev,isr);
+- }
+ isr &= ~MASK_27;
+ }
+ if (0 != (isr & (MASK_28))) {
+- if( 0 != dev->vv_data && 0 != dev->vv_callback) {
++ if (dev->vv_data && dev->vv_callback)
+ dev->vv_callback(dev,isr);
+- }
+ isr &= ~MASK_28;
+ }
+ if (0 != (isr & (MASK_16|MASK_17))) {
+diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
+index f0703d8..171afe7 100644
+--- a/drivers/media/common/saa7146_fops.c
++++ b/drivers/media/common/saa7146_fops.c
+@@ -272,7 +272,7 @@ static int fops_open(struct inode *inode, struct file *file)
+
+ result = 0;
+ out:
+- if( fh != 0 && result != 0 ) {
++ if (fh && result != 0) {
+ kfree(fh);
+ file->private_data = NULL;
+ }
+diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c
+index ed3f826..4c8b62e 100644
+--- a/drivers/media/dvb/dvb-core/dvb_net.c
++++ b/drivers/media/dvb/dvb-core/dvb_net.c
+@@ -784,8 +784,8 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len,
+ {
+ struct net_device *dev = feed->priv;
+
+- if (buffer2 != 0)
+- printk(KERN_WARNING "buffer2 not 0: %p.\n", buffer2);
++ if (buffer2)
++ printk(KERN_WARNING "buffer2 not NULL: %p.\n", buffer2);
+ if (buffer1_len > 32768)
+ printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len);
+ /* printk("TS callback: %u bytes, %u TS cells @ %p.\n",
+diff --git a/drivers/media/video/adv7170.c b/drivers/media/video/adv7170.c
+index cbab53f..fea2e72 100644
+--- a/drivers/media/video/adv7170.c
++++ b/drivers/media/video/adv7170.c
+@@ -408,7 +408,7 @@ adv7170_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c
+index 0d0c554..10d4d89 100644
+--- a/drivers/media/video/adv7175.c
++++ b/drivers/media/video/adv7175.c
+@@ -426,7 +426,7 @@ adv7175_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c
+index 12d1b92..e663cc0 100644
+--- a/drivers/media/video/bt819.c
++++ b/drivers/media/video/bt819.c
+@@ -524,7 +524,7 @@ bt819_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/bt856.c b/drivers/media/video/bt856.c
+index e1028a7..7dee2e3 100644
+--- a/drivers/media/video/bt856.c
++++ b/drivers/media/video/bt856.c
+@@ -311,7 +311,7 @@ bt856_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/dpc7146.c b/drivers/media/video/dpc7146.c
+index 566e479..9ceb6b2 100644
+--- a/drivers/media/video/dpc7146.c
++++ b/drivers/media/video/dpc7146.c
+@@ -131,7 +131,7 @@ static int dpc_probe(struct saa7146_dev* dev)
+ device_for_each_child(&dpc->i2c_adapter.dev, dpc, dpc_check_clients);
+
+ /* check if all devices are present */
+- if( 0 == dpc->saa7111a ) {
++ if (!dpc->saa7111a) {
+ DEB_D(("dpc_v4l2.o: dpc_attach failed for this device.\n"));
+ i2c_del_adapter(&dpc->i2c_adapter);
+ kfree(dpc);
+diff --git a/drivers/media/video/mt20xx.c b/drivers/media/video/mt20xx.c
+index 58bab65..74fd6a0 100644
+--- a/drivers/media/video/mt20xx.c
++++ b/drivers/media/video/mt20xx.c
+@@ -647,7 +647,7 @@ struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
+ default:
+ tuner_info("microtune %s found, not (yet?) supported, sorry :-/\n",
+ name);
+- return 0;
++ return NULL;
+ }
+
+ strlcpy(fe->ops.tuner_ops.info.name, name,
+diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
+index add6d0d..cb5a510 100644
+--- a/drivers/media/video/mxb.c
++++ b/drivers/media/video/mxb.c
+@@ -221,9 +221,8 @@ static int mxb_probe(struct saa7146_dev* dev)
+ device_for_each_child(&mxb->i2c_adapter.dev, mxb, mxb_check_clients);
+
+ /* check if all devices are present */
+- if( 0 == mxb->tea6420_1 || 0 == mxb->tea6420_2 || 0 == mxb->tea6415c
+- || 0 == mxb->tda9840 || 0 == mxb->saa7111a || 0 == mxb->tuner ) {
+-
++ if (!mxb->tea6420_1 || !mxb->tea6420_2 || !mxb->tea6415c ||
++ !mxb->tda9840 || !mxb->saa7111a || !mxb->tuner) {
+ printk("mxb: did not find all i2c devices. aborting\n");
+ i2c_del_adapter(&mxb->i2c_adapter);
+ kfree(mxb);
+diff --git a/drivers/media/video/pvrusb2/pvrusb2-ctrl.c b/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
+index 46f156f..5a3e8d2 100644
+--- a/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
++++ b/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
+@@ -60,7 +60,7 @@ int pvr2_ctrl_set_mask_value(struct pvr2_ctrl *cptr,int mask,int val)
+ int ret = 0;
+ if (!cptr) return -EINVAL;
+ LOCK_TAKE(cptr->hdw->big_lock); do {
+- if (cptr->info->set_value != 0) {
++ if (cptr->info->set_value) {
+ if (cptr->info->type == pvr2_ctl_bitmask) {
+ mask &= cptr->info->def.type_bitmask.valid_bits;
+ } else if (cptr->info->type == pvr2_ctl_int) {
+@@ -265,7 +265,7 @@ unsigned int pvr2_ctrl_get_v4lflags(struct pvr2_ctrl *cptr)
+ int pvr2_ctrl_is_writable(struct pvr2_ctrl *cptr)
+ {
+ if (!cptr) return 0;
+- return cptr->info->set_value != 0;
++ return cptr->info->set_value != NULL;
+ }
+
+
+diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+index 41ae980..d6955fa 100644
+--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
++++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+@@ -2291,7 +2291,7 @@ static int pvr2_hdw_commit_setup(struct pvr2_hdw *hdw)
+
+ for (idx = 0; idx < hdw->control_cnt; idx++) {
+ cptr = hdw->controls + idx;
+- if (cptr->info->is_dirty == 0) continue;
++ if (!cptr->info->is_dirty) continue;
+ if (!cptr->info->is_dirty(cptr)) continue;
+ commit_flag = !0;
+
+@@ -2646,7 +2646,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
+ u16 address;
+ unsigned int pipe;
+ LOCK_TAKE(hdw->big_lock); do {
+- if ((hdw->fw_buffer == 0) == !enable_flag) break;
++ if ((hdw->fw_buffer == NULL) == !enable_flag) break;
+
+ if (!enable_flag) {
+ pvr2_trace(PVR2_TRACE_FIRMWARE,
+@@ -2715,7 +2715,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
+ /* Return true if we're in a mode for retrieval CPU firmware */
+ int pvr2_hdw_cpufw_get_enabled(struct pvr2_hdw *hdw)
+ {
+- return hdw->fw_buffer != 0;
++ return hdw->fw_buffer != NULL;
+ }
+
+
+diff --git a/drivers/media/video/pvrusb2/pvrusb2-io.c b/drivers/media/video/pvrusb2/pvrusb2-io.c
+index ce3c898..a9889ff 100644
+--- a/drivers/media/video/pvrusb2/pvrusb2-io.c
++++ b/drivers/media/video/pvrusb2/pvrusb2-io.c
+@@ -563,7 +563,7 @@ void pvr2_stream_kill(struct pvr2_stream *sp)
+ struct pvr2_buffer *bp;
+ mutex_lock(&sp->mutex); do {
+ pvr2_stream_internal_flush(sp);
+- while ((bp = pvr2_stream_get_ready_buffer(sp)) != 0) {
++ while ((bp = pvr2_stream_get_ready_buffer(sp)) != NULL) {
+ pvr2_buffer_set_idle(bp);
+ }
+ if (sp->buffer_total_count != sp->buffer_target_count) {
+diff --git a/drivers/media/video/pvrusb2/pvrusb2-ioread.c b/drivers/media/video/pvrusb2/pvrusb2-ioread.c
+index f782418..c572212 100644
+--- a/drivers/media/video/pvrusb2/pvrusb2-ioread.c
++++ b/drivers/media/video/pvrusb2/pvrusb2-ioread.c
+@@ -165,7 +165,7 @@ static int pvr2_ioread_start(struct pvr2_ioread *cp)
+ if (!(cp->stream)) return 0;
+ pvr2_trace(PVR2_TRACE_START_STOP,
+ "/*---TRACE_READ---*/ pvr2_ioread_start id=%p",cp);
+- while ((bp = pvr2_stream_get_idle_buffer(cp->stream)) != 0) {
++ while ((bp = pvr2_stream_get_idle_buffer(cp->stream)) != NULL) {
+ stat = pvr2_buffer_queue(bp);
+ if (stat < 0) {
+ pvr2_trace(PVR2_TRACE_DATA_FLOW,
+diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
+index f991d72..e0a453a 100644
+--- a/drivers/media/video/pwc/pwc-if.c
++++ b/drivers/media/video/pwc/pwc-if.c
+@@ -915,7 +915,7 @@ static void pwc_iso_stop(struct pwc_device *pdev)
+ struct urb *urb;
+
+ urb = pdev->sbuf[i].urb;
+- if (urb != 0) {
++ if (urb) {
+ PWC_DEBUG_MEMORY("Unlinking URB %p\n", urb);
+ usb_kill_urb(urb);
+ }
+@@ -931,7 +931,7 @@ static void pwc_iso_free(struct pwc_device *pdev)
+ struct urb *urb;
+
+ urb = pdev->sbuf[i].urb;
+- if (urb != 0) {
++ if (urb) {
+ PWC_DEBUG_MEMORY("Freeing URB\n");
+ usb_free_urb(urb);
+ pdev->sbuf[i].urb = NULL;
+@@ -1759,8 +1759,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
+
+ /* Allocate video_device structure */
+ pdev->vdev = video_device_alloc();
+- if (pdev->vdev == 0)
+- {
++ if (!pdev->vdev) {
+ PWC_ERROR("Err, cannot allocate video_device struture. Failing probe.");
+ kfree(pdev);
+ return -ENOMEM;
+diff --git a/drivers/media/video/saa7110.c b/drivers/media/video/saa7110.c
+index 061134a..1df2602 100644
+--- a/drivers/media/video/saa7110.c
++++ b/drivers/media/video/saa7110.c
+@@ -488,7 +488,7 @@ saa7110_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+@@ -496,7 +496,7 @@ saa7110_detect_client (struct i2c_adapter *adapter,
+ strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client)));
+
+ decoder = kzalloc(sizeof(struct saa7110), GFP_KERNEL);
+- if (decoder == 0) {
++ if (!decoder) {
+ kfree(client);
+ return -ENOMEM;
+ }
+diff --git a/drivers/media/video/saa7111.c b/drivers/media/video/saa7111.c
+index 7ae2d64..a0772c5 100644
+--- a/drivers/media/video/saa7111.c
++++ b/drivers/media/video/saa7111.c
+@@ -502,7 +502,7 @@ saa7111_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c
+index 677df51..bf91a4f 100644
+--- a/drivers/media/video/saa7114.c
++++ b/drivers/media/video/saa7114.c
+@@ -841,7 +841,7 @@ saa7114_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c
+index 66cc92c..41f7044 100644
+--- a/drivers/media/video/saa7185.c
++++ b/drivers/media/video/saa7185.c
+@@ -403,7 +403,7 @@ saa7185_detect_client (struct i2c_adapter *adapter,
+ return 0;
+
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (client == 0)
++ if (!client)
+ return -ENOMEM;
+ client->addr = address;
+ client->adapter = adapter;
+diff --git a/drivers/media/video/tda9840.c b/drivers/media/video/tda9840.c
+index ef494fe..bdca5d2 100644
+--- a/drivers/media/video/tda9840.c
++++ b/drivers/media/video/tda9840.c
+@@ -172,7 +172,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
+
+ /* allocate memory for client structure */
+ client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (0 == client) {
++ if (!client) {
+ printk("not enough kernel memory\n");
+ return -ENOMEM;
+ }
+diff --git a/drivers/media/video/tea6415c.c b/drivers/media/video/tea6415c.c
+index 523df0b..df2fad9 100644
+--- a/drivers/media/video/tea6415c.c
++++ b/drivers/media/video/tea6415c.c
+@@ -64,7 +64,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
+
+ /* allocate memory for client structure */
+ client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (0 == client) {
++ if (!client) {
+ return -ENOMEM;
+ }
+
+diff --git a/drivers/media/video/tea6420.c b/drivers/media/video/tea6420.c
+index ca05cd6..4ff6c63 100644
+--- a/drivers/media/video/tea6420.c
++++ b/drivers/media/video/tea6420.c
+@@ -101,7 +101,7 @@ static int tea6420_detect(struct i2c_adapter *adapter, int address, int kind)
+
+ /* allocate memory for client structure */
+ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (0 == client) {
++ if (!client) {
+ return -ENOMEM;
+ }
+
+diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
+index d28318c..b6e24e7 100644
+--- a/drivers/media/video/tvp5150.c
++++ b/drivers/media/video/tvp5150.c
+@@ -1072,12 +1072,12 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter,
+ return 0;
+
+ c = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+- if (c == 0)
++ if (!c)
+ return -ENOMEM;
+ memcpy(c, &client_template, sizeof(struct i2c_client));
+
+ core = kzalloc(sizeof(struct tvp5150), GFP_KERNEL);
+- if (core == 0) {
++ if (!core) {
+ kfree(c);
+ return -ENOMEM;
+ }
+diff --git a/drivers/media/video/zoran_driver.c b/drivers/media/video/zoran_driver.c
+index dd3d7d2..fea4946 100644
+--- a/drivers/media/video/zoran_driver.c
++++ b/drivers/media/video/zoran_driver.c
+@@ -339,7 +339,7 @@ v4l_fbuffer_alloc (struct file *file)
+ /* Use kmalloc */
+
+ mem = kmalloc(fh->v4l_buffers.buffer_size, GFP_KERNEL);
+- if (mem == 0) {
++ if (!mem) {
+ dprintk(1,
+ KERN_ERR
+ "%s: v4l_fbuffer_alloc() - kmalloc for V4L buf %d failed\n",
+diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c
+index 1b44784..04949c8 100644
+--- a/drivers/media/video/zr364xx.c
++++ b/drivers/media/video/zr364xx.c
+@@ -390,7 +390,7 @@ static int read_frame(struct zr364xx_camera *cam, int framenum)
+ }
+
+
+-static ssize_t zr364xx_read(struct file *file, char *buf, size_t cnt,
++static ssize_t zr364xx_read(struct file *file, char __user *buf, size_t cnt,
+ loff_t * ppos)
+ {
+ unsigned long count = cnt;
diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c
index eb150df..8577de4 100644
--- a/drivers/memstick/host/tifm_ms.c
@@ -4125,6 +5426,66 @@
if (host->req->long_data) {
pg = nth_page(sg_page(&host->req->sg),
off >> PAGE_SHIFT);
+diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
+index 63fb1ff..f6f2d96 100644
+--- a/drivers/mfd/asic3.c
++++ b/drivers/mfd/asic3.c
+@@ -28,14 +28,14 @@
+ static inline void asic3_write_register(struct asic3 *asic,
+ unsigned int reg, u32 value)
+ {
+- iowrite16(value, (unsigned long)asic->mapping +
++ iowrite16(value, asic->mapping +
+ (reg >> asic->bus_shift));
+ }
+
+ static inline u32 asic3_read_register(struct asic3 *asic,
+ unsigned int reg)
+ {
+- return ioread16((unsigned long)asic->mapping +
++ return ioread16(asic->mapping +
+ (reg >> asic->bus_shift));
+ }
+
+diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c
+index 1cfd7f3..e2e7c05 100644
+--- a/drivers/misc/fujitsu-laptop.c
++++ b/drivers/misc/fujitsu-laptop.c
+@@ -231,7 +231,7 @@ static int acpi_fujitsu_remove(struct acpi_device *device, int type)
+
+ if (!device || !acpi_driver_data(device))
+ return -EINVAL;
+- fujitsu->acpi_handle = 0;
++ fujitsu->acpi_handle = NULL;
+
+ return 0;
+ }
+diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
+index 4f9d4a9..b5f6add 100644
+--- a/drivers/misc/ibmasm/module.c
++++ b/drivers/misc/ibmasm/module.c
+@@ -106,7 +106,7 @@ static int __devinit ibmasm_init_one(struct pci_dev *pdev, const struct pci_devi
+ sp->irq = pdev->irq;
+ sp->base_address = ioremap(pci_resource_start(pdev, 0),
+ pci_resource_len(pdev, 0));
+- if (sp->base_address == 0) {
++ if (!sp->base_address) {
+ dev_err(sp->dev, "Failed to ioremap pci memory\n");
+ result = -ENODEV;
+ goto error_ioremap;
+diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c
+index c884730..1bfe5d1 100644
+--- a/drivers/misc/lkdtm.c
++++ b/drivers/misc/lkdtm.c
+@@ -197,7 +197,7 @@ static int lkdtm_parse_commandline(void)
+ {
+ int i;
+
+- if (cpoint_name == INVALID || cpoint_type == NONE ||
++ if (cpoint_name == NULL || cpoint_type == NULL ||
+ cpoint_count < 1 || recur_count < 1)
+ return -EINVAL;
+
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
index f00e04e..bc4649a 100644
--- a/drivers/mtd/maps/physmap.c
@@ -4340,7 +5701,7 @@
t3_free_qset(adapter, q);
return ret;
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
-index 1fe305c..b09a53d 100644
+index 1fe305c..d63cc93 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -798,8 +798,6 @@ dm9000_init_dm9000(struct net_device *dev)
@@ -4352,6 +5713,15 @@
/* Enable TX/RX interrupt mask */
iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM);
+@@ -970,7 +968,7 @@ dm9000_interrupt(int irq, void *dev_id)
+ struct dm9000_rxhdr {
+ u8 RxPktReady;
+ u8 RxStatus;
+- u16 RxLen;
++ __le16 RxLen;
+ } __attribute__((__packed__));
+
+ /*
@@ -1197,6 +1195,7 @@ dm9000_hash_table(struct net_device *dev)
int i, oft;
u32 hash_val;
@@ -6492,6 +7862,24 @@
"resources: %d\n", PNP_MAX_MEM);
warned = 1;
}
+diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
+index a8bec49..f97224c 100644
+--- a/drivers/serial/8250_pci.c
++++ b/drivers/serial/8250_pci.c
+@@ -1214,13 +1214,6 @@ static struct pciserial_board pci_boards[] __devinitdata = {
+ .base_baud = 115200,
+ .uart_offset = 8,
+ },
+- [pbn_b0_8_115200] = {
+- .flags = FL_BASE0,
+- .num_ports = 8,
+- .base_baud = 115200,
+- .uart_offset = 8,
+- },
+-
+ [pbn_b0_1_921600] = {
+ .flags = FL_BASE0,
+ .num_ports = 1,
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 986a550..eefba3d 100644
--- a/drivers/video/bf54x-lq043fb.c
@@ -6626,9 +8014,36 @@
return 0;
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
-index 59a8f73..6c8ecde 100644
+index 59a8f73..c0df924 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
+@@ -37,7 +37,7 @@ struct virtio_pci_device
+ struct pci_dev *pci_dev;
+
+ /* the IO mapping for the PCI config space */
+- void *ioaddr;
++ void __iomem *ioaddr;
+
+ /* a list of queues so we can dispatch IRQs */
+ spinlock_t lock;
+@@ -111,7 +111,7 @@ static void vp_get(struct virtio_device *vdev, unsigned offset,
+ void *buf, unsigned len)
+ {
+ struct virtio_pci_device *vp_dev = to_vp_device(vdev);
+- void *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
++ void __iomem *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
+ u8 *ptr = buf;
+ int i;
+
+@@ -125,7 +125,7 @@ static void vp_set(struct virtio_device *vdev, unsigned offset,
+ const void *buf, unsigned len)
+ {
+ struct virtio_pci_device *vp_dev = to_vp_device(vdev);
+- void *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
++ void __iomem *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
+ const u8 *ptr = buf;
+ int i;
+
@@ -388,6 +388,7 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev)
{
struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev);
@@ -6753,6 +8168,145 @@
}
/**
+diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
+index 1f5a428..1cb5b0a 100644
+--- a/fs/cifs/cifsacl.c
++++ b/fs/cifs/cifsacl.c
+@@ -261,7 +261,7 @@ static void mode_to_access_flags(umode_t mode, umode_t bits_to_use,
+ return;
+ }
+
+-static __le16 fill_ace_for_sid(struct cifs_ace *pntace,
++static __u16 fill_ace_for_sid(struct cifs_ace *pntace,
+ const struct cifs_sid *psid, __u64 nmode, umode_t bits)
+ {
+ int i;
+@@ -411,7 +411,7 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl,
+ static int set_chmod_dacl(struct cifs_acl *pndacl, struct cifs_sid *pownersid,
+ struct cifs_sid *pgrpsid, __u64 nmode)
+ {
+- __le16 size = 0;
++ u16 size = 0;
+ struct cifs_acl *pnndacl;
+
+ pnndacl = (struct cifs_acl *)((char *)pndacl + sizeof(struct cifs_acl));
+diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
+index 9816293..0e081d5 100644
+--- a/fs/jbd/journal.c
++++ b/fs/jbd/journal.c
+@@ -1620,14 +1620,14 @@ static int journal_init_journal_head_cache(void)
+ {
+ int retval;
+
+- J_ASSERT(journal_head_cache == 0);
++ J_ASSERT(journal_head_cache == NULL);
+ journal_head_cache = kmem_cache_create("journal_head",
+ sizeof(struct journal_head),
+ 0, /* offset */
+ SLAB_TEMPORARY, /* flags */
+ NULL); /* ctor */
+ retval = 0;
+- if (journal_head_cache == 0) {
++ if (!journal_head_cache) {
+ retval = -ENOMEM;
+ printk(KERN_EMERG "JBD: no memory for journal_head cache\n");
+ }
+diff --git a/fs/jbd/revoke.c b/fs/jbd/revoke.c
+index ad2eacf..d5f8eee 100644
+--- a/fs/jbd/revoke.c
++++ b/fs/jbd/revoke.c
+@@ -173,13 +173,13 @@ int __init journal_init_revoke_caches(void)
+ 0,
+ SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY,
+ NULL);
+- if (revoke_record_cache == 0)
++ if (!revoke_record_cache)
+ return -ENOMEM;
+
+ revoke_table_cache = kmem_cache_create("revoke_table",
+ sizeof(struct jbd_revoke_table_s),
+ 0, SLAB_TEMPORARY, NULL);
+- if (revoke_table_cache == 0) {
++ if (!revoke_table_cache) {
+ kmem_cache_destroy(revoke_record_cache);
+ revoke_record_cache = NULL;
+ return -ENOMEM;
+diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
+index 96ba846..954cff0 100644
+--- a/fs/jbd2/journal.c
++++ b/fs/jbd2/journal.c
+@@ -219,7 +219,7 @@ static int jbd2_journal_start_thread(journal_t *journal)
+ if (IS_ERR(t))
+ return PTR_ERR(t);
+
+- wait_event(journal->j_wait_done_commit, journal->j_task != 0);
++ wait_event(journal->j_wait_done_commit, journal->j_task != NULL);
+ return 0;
+ }
+
+@@ -231,7 +231,7 @@ static void journal_kill_thread(journal_t *journal)
+ while (journal->j_task) {
+ wake_up(&journal->j_wait_commit);
+ spin_unlock(&journal->j_state_lock);
+- wait_event(journal->j_wait_done_commit, journal->j_task == 0);
++ wait_event(journal->j_wait_done_commit, journal->j_task == NULL);
+ spin_lock(&journal->j_state_lock);
+ }
+ spin_unlock(&journal->j_state_lock);
+@@ -1969,14 +1969,14 @@ static int journal_init_jbd2_journal_head_cache(void)
+ {
+ int retval;
+
+- J_ASSERT(jbd2_journal_head_cache == 0);
++ J_ASSERT(jbd2_journal_head_cache == NULL);
+ jbd2_journal_head_cache = kmem_cache_create("jbd2_journal_head",
+ sizeof(struct journal_head),
+ 0, /* offset */
+ SLAB_TEMPORARY, /* flags */
+ NULL); /* ctor */
+ retval = 0;
+- if (jbd2_journal_head_cache == 0) {
++ if (!jbd2_journal_head_cache) {
+ retval = -ENOMEM;
+ printk(KERN_EMERG "JBD: no memory for journal_head cache\n");
+ }
+@@ -2002,14 +2002,14 @@ static struct journal_head *journal_alloc_journal_head(void)
+ atomic_inc(&nr_journal_heads);
+ #endif
+ ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS);
+- if (ret == 0) {
++ if (!ret) {
+ jbd_debug(1, "out of memory for journal_head\n");
+ if (time_after(jiffies, last_warning + 5*HZ)) {
+ printk(KERN_NOTICE "ENOMEM in %s, retrying.\n",
+ __FUNCTION__);
+ last_warning = jiffies;
+ }
+- while (ret == 0) {
++ while (!ret) {
+ yield();
+ ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS);
+ }
+diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
+index df36f42..2e1453a 100644
+--- a/fs/jbd2/revoke.c
++++ b/fs/jbd2/revoke.c
+@@ -174,13 +174,13 @@ int __init jbd2_journal_init_revoke_caches(void)
+ 0,
+ SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY,
+ NULL);
+- if (jbd2_revoke_record_cache == 0)
++ if (!jbd2_revoke_record_cache)
+ return -ENOMEM;
+
+ jbd2_revoke_table_cache = kmem_cache_create("jbd2_revoke_table",
+ sizeof(struct jbd2_revoke_table_s),
+ 0, SLAB_TEMPORARY, NULL);
+- if (jbd2_revoke_table_cache == 0) {
++ if (!jbd2_revoke_table_cache) {
+ kmem_cache_destroy(jbd2_revoke_record_cache);
+ jbd2_revoke_record_cache = NULL;
+ return -ENOMEM;
diff --git a/fs/namespace.c b/fs/namespace.c
index 7953c96..94f026e 100644
--- a/fs/namespace.c
@@ -7199,6 +8753,118 @@
return (mycount > count);
}
+diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
+index f85c5cf..7ee4208 100644
+--- a/fs/reiserfs/do_balan.c
++++ b/fs/reiserfs/do_balan.c
+@@ -283,7 +283,7 @@ static int balance_leaf(struct tree_balance *tb, struct item_head *ih, /* item h
+ return balance_leaf_when_delete(tb, flag);
+
+ zeros_num = 0;
+- if (flag == M_INSERT && body == 0)
++ if (flag == M_INSERT && !body)
+ zeros_num = ih_item_len(ih);
+
+ pos_in_item = tb->tb_path->pos_in_item;
+@@ -1728,7 +1728,7 @@ struct buffer_head *get_FEB(struct tree_balance *tb)
+ struct buffer_info bi;
+
+ for (i = 0; i < MAX_FEB_SIZE; i++)
+- if (tb->FEB[i] != 0)
++ if (tb->FEB[i] != NULL)
+ break;
+
+ if (i == MAX_FEB_SIZE)
+@@ -1827,7 +1827,7 @@ int get_left_neighbor_position(struct tree_balance *tb, int h)
+ {
+ int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1);
+
+- RFALSE(PATH_H_PPARENT(tb->tb_path, h) == 0 || tb->FL[h] == 0,
++ RFALSE(PATH_H_PPARENT(tb->tb_path, h) == NULL || tb->FL[h] == NULL,
+ "vs-12325: FL[%d](%p) or F[%d](%p) does not exist",
+ h, tb->FL[h], h, PATH_H_PPARENT(tb->tb_path, h));
+
+@@ -1841,7 +1841,7 @@ int get_right_neighbor_position(struct tree_balance *tb, int h)
+ {
+ int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1);
+
+- RFALSE(PATH_H_PPARENT(tb->tb_path, h) == 0 || tb->FR[h] == 0,
++ RFALSE(PATH_H_PPARENT(tb->tb_path, h) == NULL || tb->FR[h] == NULL,
+ "vs-12330: F[%d](%p) or FR[%d](%p) does not exist",
+ h, PATH_H_PPARENT(tb->tb_path, h), h, tb->FR[h]);
+
+diff --git a/fs/reiserfs/fix_node.c b/fs/reiserfs/fix_node.c
+index 0ee35c6..07d05e0 100644
+--- a/fs/reiserfs/fix_node.c
++++ b/fs/reiserfs/fix_node.c
+@@ -153,7 +153,7 @@ static void create_virtual_node(struct tree_balance *tb, int h)
+ if (vn->vn_mode == M_INSERT) {
+ struct virtual_item *vi = vn->vn_vi + vn->vn_affected_item_num;
+
+- RFALSE(vn->vn_ins_ih == 0,
++ RFALSE(vn->vn_ins_ih == NULL,
+ "vs-8040: item header of inserted item is not specified");
+ vi->vi_item_len = tb->insert_size[0];
+ vi->vi_ih = vn->vn_ins_ih;
+@@ -857,7 +857,8 @@ static int get_lfree(struct tree_balance *tb, int h)
+ struct buffer_head *l, *f;
+ int order;
+
+- if ((f = PATH_H_PPARENT(tb->tb_path, h)) == 0 || (l = tb->FL[h]) == 0)
++ if ((f = PATH_H_PPARENT(tb->tb_path, h)) == NULL ||
++ (l = tb->FL[h]) == NULL)
+ return 0;
+
+ if (f == l)
+@@ -878,7 +879,8 @@ static int get_rfree(struct tree_balance *tb, int h)
+ struct buffer_head *r, *f;
+ int order;
+
+- if ((f = PATH_H_PPARENT(tb->tb_path, h)) == 0 || (r = tb->FR[h]) == 0)
++ if ((f = PATH_H_PPARENT(tb->tb_path, h)) == NULL ||
++ (r = tb->FR[h]) == NULL)
+ return 0;
+
+ if (f == r)
+diff --git a/fs/reiserfs/lbalance.c b/fs/reiserfs/lbalance.c
+index 281f806..6de060a 100644
+--- a/fs/reiserfs/lbalance.c
++++ b/fs/reiserfs/lbalance.c
+@@ -626,7 +626,7 @@ static void leaf_define_dest_src_infos(int shift_mode, struct tree_balance *tb,
+ "vs-10250: leaf_define_dest_src_infos: shift type is unknown (%d)",
+ shift_mode);
+ }
+- RFALSE(src_bi->bi_bh == 0 || dest_bi->bi_bh == 0,
++ RFALSE(!src_bi->bi_bh || !dest_bi->bi_bh,
+ "vs-10260: mode==%d, source (%p) or dest (%p) buffer is initialized incorrectly",
+ shift_mode, src_bi->bi_bh, dest_bi->bi_bh);
+ }
+diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
+index b378eea..8867533 100644
+--- a/fs/reiserfs/namei.c
++++ b/fs/reiserfs/namei.c
+@@ -452,7 +452,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
+ buflen = DEH_SIZE + ROUND_UP(namelen);
+ if (buflen > sizeof(small_buf)) {
+ buffer = kmalloc(buflen, GFP_NOFS);
+- if (buffer == 0)
++ if (!buffer)
+ return -ENOMEM;
+ } else
+ buffer = small_buf;
+diff --git a/fs/smbfs/smbiod.c b/fs/smbfs/smbiod.c
+index fae8e85..6bd9b69 100644
+--- a/fs/smbfs/smbiod.c
++++ b/fs/smbfs/smbiod.c
+@@ -206,7 +206,7 @@ int smbiod_retry(struct smb_sb_info *server)
+
+ smb_close_socket(server);
+
+- if (pid == 0) {
++ if (!pid) {
+ /* FIXME: this is fatal, umount? */
+ printk(KERN_ERR "smb_retry: no connection process\n");
+ server->state = CONN_RETRIED;
diff --git a/include/asm-avr32/byteorder.h b/include/asm-avr32/byteorder.h
index 402ff41..d77b48b 100644
--- a/include/asm-avr32/byteorder.h
@@ -7218,6 +8884,28 @@
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
# define __BYTEORDER_HAS_U64__
+diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h
+index b400cea..2c57f47 100644
+--- a/include/asm-frv/system.h
++++ b/include/asm-frv/system.h
+@@ -234,7 +234,7 @@ extern void free_initmem(void);
+ break; \
+ \
+ default: \
+- __xg_orig = 0; \
++ __xg_orig = (__typeof__(__xg_orig))0; \
+ asm volatile("break"); \
+ break; \
+ } \
+@@ -259,7 +259,7 @@ extern uint32_t __cmpxchg_32(uint32_t *v, uint32_t test, uint32_t new);
+ (__force uint32_t)__xg_test, \
+ (__force uint32_t)__xg_new); break; \
+ default: \
+- __xg_orig = 0; \
++ __xg_orig = (__typeof__(__xg_orig))0; \
+ asm volatile("break"); \
+ break; \
+ } \
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h
index 5424214..532975e 100644
--- a/include/asm-sparc64/cpudata.h
@@ -7537,6 +9225,21 @@
static inline unsigned fls_long(unsigned long l)
{
if (sizeof(l) == 4)
+diff --git a/include/linux/compat.h b/include/linux/compat.h
+index a671dbf..8fa7857 100644
+--- a/include/linux/compat.h
++++ b/include/linux/compat.h
+@@ -192,8 +192,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
+ struct compat_timeval __user *tvp);
+
+ asmlinkage long compat_sys_wait4(compat_pid_t pid,
+- compat_uint_t *stat_addr, int options,
+- struct compat_rusage *ru);
++ compat_uint_t __user *stat_addr, int options,
++ struct compat_rusage __user *ru);
+
+ #define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t))
+
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 6b72a45..51e6b1e 100644
--- a/include/linux/cpuidle.h
@@ -7552,6 +9255,19 @@
int (*enter) (struct cpuidle_device *dev,
struct cpuidle_state *state);
+diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
+index 261e43a..34d4406 100644
+--- a/include/linux/dmaengine.h
++++ b/include/linux/dmaengine.h
+@@ -423,7 +423,7 @@ void dma_async_device_unregister(struct dma_device *device);
+ /* --- Helper iov-locking functions --- */
+
+ struct dma_page_list {
+- char *base_address;
++ char __user *base_address;
+ int nr_pages;
+ struct page **pages;
+ };
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 4982998..897f723 100644
--- a/include/linux/hardirq.h
@@ -7570,6 +9286,19 @@
#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0)
#ifdef CONFIG_PREEMPT
+diff --git a/include/linux/ide.h b/include/linux/ide.h
+index a3b69c1..bc26b2f 100644
+--- a/include/linux/ide.h
++++ b/include/linux/ide.h
+@@ -26,7 +26,7 @@
+ #include <asm/semaphore.h>
+ #include <asm/mutex.h>
+
+-#if defined(CRIS) || defined(FRV)
++#if defined(CONFIG_CRIS) || defined(CONFIG_FRV)
+ # define SUPPORT_VLB_SYNC 0
+ #else
+ # define SUPPORT_VLB_SYNC 1
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h
index 589be3e..e7217dc 100644
--- a/include/linux/lguest_launcher.h
@@ -7594,6 +9323,26 @@
__u8 feature_len;
/* The number of bytes of the config array after virtqueues. */
__u8 config_len;
+diff --git a/include/linux/libata.h b/include/linux/libata.h
+index 269cdba..b064bfe 100644
+--- a/include/linux/libata.h
++++ b/include/linux/libata.h
+@@ -295,6 +295,7 @@ enum {
+ ATA_EH_SOFTRESET = (1 << 1),
+ ATA_EH_HARDRESET = (1 << 2),
+ ATA_EH_ENABLE_LINK = (1 << 3),
++ ATA_EH_LPM = (1 << 4), /* link power management action */
+
+ ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
+ ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE,
+@@ -304,7 +305,6 @@ enum {
+ ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */
+ ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */
+ ATA_EHI_QUIET = (1 << 3), /* be quiet */
+- ATA_EHI_LPM = (1 << 4), /* link power management action */
+
+ ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */
+ ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */
diff --git a/include/linux/mount.h b/include/linux/mount.h
index 6d3047d..5ee2df2 100644
--- a/include/linux/mount.h
@@ -7738,6 +9487,28 @@
* @string: string to be logged
*
* This code will escape a string that is passed to it if the string
+diff --git a/kernel/cgroup.c b/kernel/cgroup.c
+index e9c2fb0..53d86b4 100644
+--- a/kernel/cgroup.c
++++ b/kernel/cgroup.c
+@@ -2082,7 +2082,7 @@ static int cgroup_tasks_open(struct inode *unused, struct file *file)
+
+ kfree(pidarray);
+ } else {
+- ctr->buf = 0;
++ ctr->buf = NULL;
+ ctr->bufsz = 0;
+ }
+ file->private_data = ctr;
+@@ -2614,7 +2614,7 @@ static int proc_cgroupstats_show(struct seq_file *m, void *v)
+
+ static int cgroupstats_open(struct inode *inode, struct file *file)
+ {
+- return single_open(file, proc_cgroupstats_show, 0);
++ return single_open(file, proc_cgroupstats_show, NULL);
+ }
+
+ static struct file_operations proc_cgroupstats_operations = {
diff --git a/kernel/fork.c b/kernel/fork.c
index dd249c3..9c042f9 100644
--- a/kernel/fork.c
@@ -7759,9 +9530,18 @@
}
}
diff --git a/kernel/futex.c b/kernel/futex.c
-index 06968cd..87a6428 100644
+index 06968cd..e43945e 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
+@@ -281,7 +281,7 @@ static int get_futex_key(u32 __user *uaddr, struct rw_semaphore *fshared,
+ */
+ static void get_futex_key_refs(union futex_key *key)
+ {
+- if (key->both.ptr == 0)
++ if (key->both.ptr == NULL)
+ return;
+ switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) {
+ case FUT_OFF_INODE:
@@ -2158,7 +2158,7 @@ static struct file_system_type futex_fs_type = {
.kill_sb = kill_anon_super,
};
@@ -7777,6 +9557,19 @@
}
-__initcall(init);
+__initcall(futex_init);
+diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
+index ff90f04..04ac3a9 100644
+--- a/kernel/futex_compat.c
++++ b/kernel/futex_compat.c
+@@ -30,7 +30,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
+ return 0;
+ }
+
+-static void __user *futex_uaddr(struct robust_list *entry,
++static void __user *futex_uaddr(struct robust_list __user *entry,
+ compat_long_t futex_offset)
+ {
+ compat_uptr_t base = ptr_to_compat(entry);
diff --git a/kernel/relay.c b/kernel/relay.c
index 4c035a8..d6204a4 100644
--- a/kernel/relay.c
@@ -7900,6 +9693,19 @@
/**
* mod_timer - modify a timer's timeout
* @timer: the timer to be modified
+diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
+index 5a402e2..5b6d7f6 100644
+--- a/lib/kobject_uevent.c
++++ b/lib/kobject_uevent.c
+@@ -55,7 +55,7 @@ int kobject_action_type(const char *buf, size_t count,
+ enum kobject_action action;
+ int ret = -EINVAL;
+
+- if (count && buf[count-1] == '\n')
++ if (count && (buf[count-1] == '\n' || buf[count-1] == '\0'))
+ count--;
+
+ if (!count)
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 74c1b6b..51c9e2c 100644
--- a/mm/hugetlb.c
@@ -8000,6 +9806,46 @@
/*
* kmem_cache_shrink removes empty slabs from the partial lists and sorts
+diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
+index cd75b21..99c4f36 100644
+--- a/mm/sparse-vmemmap.c
++++ b/mm/sparse-vmemmap.c
+@@ -76,7 +76,7 @@ pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node)
+ pte_t entry;
+ void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+ if (!p)
+- return 0;
++ return NULL;
+ entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL);
+ set_pte_at(&init_mm, addr, pte, entry);
+ }
+@@ -89,7 +89,7 @@ pmd_t * __meminit vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node)
+ if (pmd_none(*pmd)) {
+ void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+ if (!p)
+- return 0;
++ return NULL;
+ pmd_populate_kernel(&init_mm, pmd, p);
+ }
+ return pmd;
+@@ -101,7 +101,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
+ if (pud_none(*pud)) {
+ void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+ if (!p)
+- return 0;
++ return NULL;
+ pud_populate(&init_mm, pud, p);
+ }
+ return pud;
+@@ -113,7 +113,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
+ if (pgd_none(*pgd)) {
+ void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+ if (!p)
+- return 0;
++ return NULL;
+ pgd_populate(&init_mm, pgd, p);
+ }
+ return pgd;
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 8fbcefe..480ea90 100644
--- a/net/8021q/vlan_dev.c
@@ -8348,6 +10194,93 @@
x->sel.family = x->props.family;
if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) {
+diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
+index 1aaa2e8..126ca77 100644
+--- a/net/rxrpc/ar-internal.h
++++ b/net/rxrpc/ar-internal.h
+@@ -23,7 +23,7 @@
+ struct rxrpc_crypt {
+ union {
+ u8 x[FCRYPT_BSIZE];
+- u32 n[2];
++ __be32 n[2];
+ };
+ } __attribute__((aligned(8)));
+
+diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
+index f48434a..d1c296f 100644
+--- a/net/rxrpc/rxkad.c
++++ b/net/rxrpc/rxkad.c
+@@ -261,6 +261,7 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
+ __be32 x[2];
+ } tmpbuf __attribute__((aligned(8))); /* must all be in same page */
+ __be32 x;
++ u32 y;
+ int ret;
+
+ sp = rxrpc_skb(skb);
+@@ -292,11 +293,11 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
+ sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf));
+ crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf));
+
+- x = ntohl(tmpbuf.x[1]);
+- x = (x >> 16) & 0xffff;
+- if (x == 0)
+- x = 1; /* zero checksums are not permitted */
+- sp->hdr.cksum = htons(x);
++ y = ntohl(tmpbuf.x[1]);
++ y = (y >> 16) & 0xffff;
++ if (y == 0)
++ y = 1; /* zero checksums are not permitted */
++ sp->hdr.cksum = htons(y);
+
+ switch (call->conn->security_level) {
+ case RXRPC_SECURITY_PLAIN:
+@@ -314,7 +315,7 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
+ break;
+ }
+
+- _leave(" = %d [set %hx]", ret, x);
++ _leave(" = %d [set %hx]", ret, y);
+ return ret;
+ }
+
+@@ -492,6 +493,7 @@ static int rxkad_verify_packet(const struct rxrpc_call *call,
+ __be32 x[2];
+ } tmpbuf __attribute__((aligned(8))); /* must all be in same page */
+ __be32 x;
++ u16 y;
+ __be16 cksum;
+ int ret;
+
+@@ -526,12 +528,12 @@ static int rxkad_verify_packet(const struct rxrpc_call *call,
+ sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf));
+ crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf));
+
+- x = ntohl(tmpbuf.x[1]);
+- x = (x >> 16) & 0xffff;
+- if (x == 0)
+- x = 1; /* zero checksums are not permitted */
++ y = ntohl(tmpbuf.x[1]);
++ y = (y >> 16) & 0xffff;
++ if (y == 0)
++ y = 1; /* zero checksums are not permitted */
+
+- cksum = htons(x);
++ cksum = htons(y);
+ if (sp->hdr.cksum != cksum) {
+ *_abort_code = RXKADSEALEDINCON;
+ _leave(" = -EPROTO [csum failed]");
+@@ -1001,7 +1003,8 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
+ struct rxrpc_crypt session_key;
+ time_t expiry;
+ void *ticket;
+- u32 abort_code, version, kvno, ticket_len, csum, level;
++ u32 abort_code, version, kvno, ticket_len, level;
++ __be32 csum;
+ int ret;
+
+ _enter("{%d,%x}", conn->debug_id, key_serial(conn->server_key));
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index 9712716..c22d6b6 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -9497,3 +11430,13 @@
}
# If we have no input at all, then there is nothing to report on
+diff --git a/sound/oss/ac97_codec.c b/sound/oss/ac97_codec.c
+index 87a6726..b63839e 100644
+--- a/sound/oss/ac97_codec.c
++++ b/sound/oss/ac97_codec.c
+@@ -1202,3 +1202,5 @@ static int pt101_init(struct ac97_codec * codec)
+
+ EXPORT_SYMBOL(ac97_probe_codec);
+
++MODULE_LICENSE("GPL");
++
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 Mon Mar 31 12:46:43 2008
@@ -1,4 +1,4 @@
-+ bugfix/all/patch-2.6.25-rc7-git5
++ bugfix/all/patch-2.6.25-rc7-git6
+ debian/version.patch
+ debian/kernelvariables.patch
+ debian/doc-build-parallel.patch
More information about the Kernel-svn-changes
mailing list