The patch titled
     sparse pointer use of zero as null
has been added to the -mm tree.  Its filename is
     sparse-pointer-use-of-zero-as-null.patch

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: sparse pointer use of zero as null
From: Stephen Hemminger <[EMAIL PROTECTED]>

Get rid of sparse related warnings from places that use integer as NULL
pointer.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
Cc: Andi Kleen <[EMAIL PROTECTED]>
Cc: Jeff Garzik <[EMAIL PROTECTED]>
Cc: Matt Mackall <[EMAIL PROTECTED]>
Cc: Ian Kent <[EMAIL PROTECTED]>
Cc: Arnd Bergmann <[EMAIL PROTECTED]>
Cc: Davide Libenzi <[EMAIL PROTECTED]>
Cc: Stephen Smalley <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---


diff -puN arch/x86_64/kernel/vsyscall.c~sparse-pointer-use-of-zero-as-null 
arch/x86_64/kernel/vsyscall.c
--- a/arch/x86_64/kernel/vsyscall.c~sparse-pointer-use-of-zero-as-null
+++ a/arch/x86_64/kernel/vsyscall.c
@@ -174,7 +174,7 @@ time_t __vsyscall(1) vtime(time_t *t)
        if (unlikely(!__vsyscall_gtod_data.sysctl_enabled))
                return time_syscall(t);
 
-       vgettimeofday(&tv, 0);
+       vgettimeofday(&tv, NULL);
        result = tv.tv_sec;
        if (t)
                *t = result;
diff -puN drivers/ata/libata-sff.c~sparse-pointer-use-of-zero-as-null 
drivers/ata/libata-sff.c
--- a/drivers/ata/libata-sff.c~sparse-pointer-use-of-zero-as-null
+++ a/drivers/ata/libata-sff.c
@@ -906,7 +906,7 @@ unsigned long ata_pci_default_filter(str
        /* Filter out DMA modes if the device has been configured by
           the BIOS as PIO only */
 
-       if (adev->link->ap->ioaddr.bmdma_addr == 0)
+       if (adev->link->ap->ioaddr.bmdma_addr == NULL)
                xfer_mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA);
        return xfer_mask;
 }
diff -puN drivers/base/dmapool.c~sparse-pointer-use-of-zero-as-null 
drivers/base/dmapool.c
--- a/drivers/base/dmapool.c~sparse-pointer-use-of-zero-as-null
+++ a/drivers/base/dmapool.c
@@ -366,7 +366,7 @@ dma_pool_free (struct dma_pool *pool, vo
        unsigned long           flags;
        int                     map, block;
 
-       if ((page = pool_find_page (pool, dma)) == 0) {
+       if ((page = pool_find_page (pool, dma)) == NULL) {
                if (pool->dev)
                        dev_err(pool->dev, "dma_pool_free %s, %p/%lx (bad 
dma)\n",
                                pool->name, vaddr, (unsigned long) dma);
diff -puN drivers/char/random.c~sparse-pointer-use-of-zero-as-null 
drivers/char/random.c
--- a/drivers/char/random.c~sparse-pointer-use-of-zero-as-null
+++ a/drivers/char/random.c
@@ -649,7 +649,7 @@ EXPORT_SYMBOL_GPL(add_input_randomness);
 
 void add_interrupt_randomness(int irq)
 {
-       if (irq >= NR_IRQS || irq_timer_state[irq] == 0)
+       if (irq >= NR_IRQS || irq_timer_state[irq] == NULL)
                return;
 
        DEBUG_ENT("irq event %d\n", irq);
diff -puN fs/autofs/waitq.c~sparse-pointer-use-of-zero-as-null fs/autofs/waitq.c
--- a/fs/autofs/waitq.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/autofs/waitq.c
@@ -182,7 +182,7 @@ int autofs_wait_release(struct autofs_sb
 {
        struct autofs_wait_queue *wq, **wql;
 
-       for ( wql = &sbi->queues ; (wq = *wql) != 0 ; wql = &wq->next ) {
+       for ( wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next ) {
                if ( wq->wait_queue_token == wait_queue_token )
                        break;
        }
diff -puN fs/autofs4/waitq.c~sparse-pointer-use-of-zero-as-null 
fs/autofs4/waitq.c
--- a/fs/autofs4/waitq.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/autofs4/waitq.c
@@ -376,7 +376,7 @@ int autofs4_wait_release(struct autofs_s
        struct autofs_wait_queue *wq, **wql;
 
        mutex_lock(&sbi->wq_mutex);
-       for (wql = &sbi->queues ; (wq = *wql) != 0 ; wql = &wq->next) {
+       for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) {
                if (wq->wait_queue_token == wait_queue_token)
                        break;
        }
diff -puN fs/compat_ioctl.c~sparse-pointer-use-of-zero-as-null fs/compat_ioctl.c
--- a/fs/compat_ioctl.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/compat_ioctl.c
@@ -3672,7 +3672,7 @@ static int __init init_sys32_ioctl(void)
        int i;
 
        for (i = 0; i < ARRAY_SIZE(ioctl_start); i++) {
-               if (ioctl_start[i].next != 0) {
+               if (ioctl_start[i].next) {
                        printk("ioctl translation %d bad\n",i);
                        return -1;
                }
diff -puN fs/eventpoll.c~sparse-pointer-use-of-zero-as-null fs/eventpoll.c
--- a/fs/eventpoll.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/eventpoll.c
@@ -462,7 +462,7 @@ static void ep_free(struct eventpoll *ep
         * holding "epmutex" we can be sure that no file cleanup code will hit
         * us during this operation. So we can avoid the lock on "ep->lock".
         */
-       while ((rbp = rb_first(&ep->rbr)) != 0) {
+       while ((rbp = rb_first(&ep->rbr)) != NULL) {
                epi = rb_entry(rbp, struct epitem, rbn);
                ep_remove(ep, epi);
        }
diff -puN fs/ext3/fsync.c~sparse-pointer-use-of-zero-as-null fs/ext3/fsync.c
--- a/fs/ext3/fsync.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/ext3/fsync.c
@@ -47,7 +47,7 @@ int ext3_sync_file(struct file * file, s
        struct inode *inode = dentry->d_inode;
        int ret = 0;
 
-       J_ASSERT(ext3_journal_current_handle() == 0);
+       J_ASSERT(ext3_journal_current_handle() == NULL);
 
        /*
         * data=writeback:
diff -puN fs/ext3/inode.c~sparse-pointer-use-of-zero-as-null fs/ext3/inode.c
--- a/fs/ext3/inode.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/ext3/inode.c
@@ -1028,7 +1028,7 @@ struct buffer_head *ext3_getblk(handle_t
                }
                if (buffer_new(&dummy)) {
                        J_ASSERT(create != 0);
-                       J_ASSERT(handle != 0);
+                       J_ASSERT(handle != NULL);
 
                        /*
                         * Now that we do not always journal data, we should
diff -puN fs/jbd/journal.c~sparse-pointer-use-of-zero-as-null fs/jbd/journal.c
--- a/fs/jbd/journal.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/jbd/journal.c
@@ -217,7 +217,7 @@ static int journal_start_thread(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;
 }
 
@@ -229,7 +229,7 @@ static void journal_kill_thread(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);
@@ -1651,14 +1651,14 @@ static struct journal_head *journal_allo
        atomic_inc(&nr_journal_heads);
 #endif
        ret = kmem_cache_alloc(journal_head_cache, GFP_NOFS);
-       if (ret == 0) {
+       if (ret == NULL) {
                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 == NULL) {
                        yield();
                        ret = kmem_cache_alloc(journal_head_cache, GFP_NOFS);
                }
diff -puN fs/jbd/transaction.c~sparse-pointer-use-of-zero-as-null 
fs/jbd/transaction.c
--- a/fs/jbd/transaction.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/jbd/transaction.c
@@ -1165,7 +1165,7 @@ int journal_dirty_metadata(handle_t *han
        }
 
        /* That test should have eliminated the following case: */
-       J_ASSERT_JH(jh, jh->b_frozen_data == 0);
+       J_ASSERT_JH(jh, jh->b_frozen_data == NULL);
 
        JBUFFER_TRACE(jh, "file as BJ_Metadata");
        spin_lock(&journal->j_list_lock);
@@ -1513,7 +1513,7 @@ static void __journal_temp_unlink_buffer
 
        J_ASSERT_JH(jh, jh->b_jlist < BJ_Types);
        if (jh->b_jlist != BJ_None)
-               J_ASSERT_JH(jh, transaction != 0);
+               J_ASSERT_JH(jh, transaction != NULL);
 
        switch (jh->b_jlist) {
        case BJ_None:
@@ -1582,11 +1582,11 @@ __journal_try_to_free_buffer(journal_t *
        if (buffer_locked(bh) || buffer_dirty(bh))
                goto out;
 
-       if (jh->b_next_transaction != 0)
+       if (jh->b_next_transaction != NULL)
                goto out;
 
        spin_lock(&journal->j_list_lock);
-       if (jh->b_transaction != 0 && jh->b_cp_transaction == 0) {
+       if (jh->b_transaction != NULL && jh->b_cp_transaction == NULL) {
                if (jh->b_jlist == BJ_SyncData || jh->b_jlist == BJ_Locked) {
                        /* A written-back ordered data buffer */
                        JBUFFER_TRACE(jh, "release data");
@@ -1594,7 +1594,7 @@ __journal_try_to_free_buffer(journal_t *
                        journal_remove_journal_head(bh);
                        __brelse(bh);
                }
-       } else if (jh->b_cp_transaction != 0 && jh->b_transaction == 0) {
+       } else if (jh->b_cp_transaction != NULL && jh->b_transaction == NULL) {
                /* written-back checkpointed metadata buffer */
                if (jh->b_jlist == BJ_None) {
                        JBUFFER_TRACE(jh, "remove from checkpoint list");
@@ -1954,7 +1954,7 @@ void __journal_file_buffer(struct journa
 
        J_ASSERT_JH(jh, jh->b_jlist < BJ_Types);
        J_ASSERT_JH(jh, jh->b_transaction == transaction ||
-                               jh->b_transaction == 0);
+                               jh->b_transaction == NULL);
 
        if (jh->b_transaction && jh->b_jlist == jlist)
                return;
diff -puN fs/nls/nls_base.c~sparse-pointer-use-of-zero-as-null fs/nls/nls_base.c
--- a/fs/nls/nls_base.c~sparse-pointer-use-of-zero-as-null
+++ a/fs/nls/nls_base.c
@@ -111,7 +111,7 @@ utf8_wctomb(__u8 *s, wchar_t wc, int max
        int c, nc;
        const struct utf8_table *t;
   
-       if (s == 0)
+       if (!s)
                return 0;
   
        l = wc;
diff -puN init/do_mounts_rd.c~sparse-pointer-use-of-zero-as-null 
init/do_mounts_rd.c
--- a/init/do_mounts_rd.c~sparse-pointer-use-of-zero-as-null
+++ a/init/do_mounts_rd.c
@@ -57,7 +57,7 @@ identify_ramdisk_image(int fd, int start
        unsigned char *buf;
 
        buf = kmalloc(size, GFP_KERNEL);
-       if (buf == 0)
+       if (!buf)
                return -1;
 
        minixsb = (struct minix_super_block *) buf;
@@ -407,12 +407,12 @@ static int __init crd_load(int in_fd, in
        crd_infd = in_fd;
        crd_outfd = out_fd;
        inbuf = kmalloc(INBUFSIZ, GFP_KERNEL);
-       if (inbuf == 0) {
+       if (!inbuf) {
                printk(KERN_ERR "RAMDISK: Couldn't allocate gzip buffer\n");
                return -1;
        }
        window = kmalloc(WSIZE, GFP_KERNEL);
-       if (window == 0) {
+       if (!window) {
                printk(KERN_ERR "RAMDISK: Couldn't allocate gzip window\n");
                kfree(inbuf);
                return -1;
diff -puN kernel/futex.c~sparse-pointer-use-of-zero-as-null kernel/futex.c
--- a/kernel/futex.c~sparse-pointer-use-of-zero-as-null
+++ a/kernel/futex.c
@@ -296,7 +296,7 @@ EXPORT_SYMBOL_GPL(get_futex_key_refs);
  */
 void drop_futex_key_refs(union futex_key *key)
 {
-       if (key->both.ptr == 0)
+       if (!key->both.ptr)
                return;
        switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) {
                case FUT_OFF_INODE:
@@ -1048,7 +1048,7 @@ static int unqueue_me(struct futex_q *q)
  retry:
        lock_ptr = q->lock_ptr;
        barrier();
-       if (lock_ptr != 0) {
+       if (lock_ptr != NULL) {
                spin_lock(lock_ptr);
                /*
                 * q->lock_ptr can change between reading it and
diff -puN kernel/kexec.c~sparse-pointer-use-of-zero-as-null kernel/kexec.c
--- a/kernel/kexec.c~sparse-pointer-use-of-zero-as-null
+++ a/kernel/kexec.c
@@ -785,7 +785,7 @@ static int kimage_load_normal_segment(st
                size_t uchunk, mchunk;
 
                page = kimage_alloc_page(image, GFP_HIGHUSER, maddr);
-               if (page == 0) {
+               if (!page) {
                        result  = -ENOMEM;
                        goto out;
                }
@@ -844,7 +844,7 @@ static int kimage_load_crash_segment(str
                size_t uchunk, mchunk;
 
                page = pfn_to_page(maddr >> PAGE_SHIFT);
-               if (page == 0) {
+               if (!page) {
                        result  = -ENOMEM;
                        goto out;
                }
diff -puN mm/hugetlb.c~sparse-pointer-use-of-zero-as-null mm/hugetlb.c
--- a/mm/hugetlb.c~sparse-pointer-use-of-zero-as-null
+++ a/mm/hugetlb.c
@@ -988,7 +988,7 @@ static long region_chg(struct list_head 
         * size such that we can guarentee to record the reservation. */
        if (&rg->link == head || t < rg->from) {
                nrg = kmalloc(sizeof(*nrg), GFP_KERNEL);
-               if (nrg == 0)
+               if (!nrg)
                        return -ENOMEM;
                nrg->from = f;
                nrg->to   = f;
diff -puN mm/mremap.c~sparse-pointer-use-of-zero-as-null mm/mremap.c
--- a/mm/mremap.c~sparse-pointer-use-of-zero-as-null
+++ a/mm/mremap.c
@@ -291,7 +291,7 @@ unsigned long do_mremap(unsigned long ad
                if ((addr <= new_addr) && (addr+old_len) > new_addr)
                        goto out;
 
-               ret = security_file_mmap(0, 0, 0, 0, new_addr, 1);
+               ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
                if (ret)
                        goto out;
 
@@ -399,7 +399,7 @@ unsigned long do_mremap(unsigned long ad
                                goto out;
                        }
 
-                       ret = security_file_mmap(0, 0, 0, 0, new_addr, 1);
+                       ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
                        if (ret)
                                goto out;
                }
diff -puN mm/vmscan.c~sparse-pointer-use-of-zero-as-null mm/vmscan.c
--- a/mm/vmscan.c~sparse-pointer-use-of-zero-as-null
+++ a/mm/vmscan.c
@@ -1326,7 +1326,7 @@ out:
         */
        if (priority < 0)
                priority = 0;
-       for (i = 0; zones[i] != 0; i++) {
+       for (i = 0; zones[i] != NULL; i++) {
                struct zone *zone = zones[i];
 
                if (!cpuset_zone_allowed_hardwall(zone, GFP_KERNEL))
diff -puN security/selinux/xfrm.c~sparse-pointer-use-of-zero-as-null 
security/selinux/xfrm.c
--- a/security/selinux/xfrm.c~sparse-pointer-use-of-zero-as-null
+++ a/security/selinux/xfrm.c
@@ -448,7 +448,7 @@ int selinux_xfrm_postroute_last(u32 isec
        if (dst) {
                struct dst_entry *dst_test;
 
-               for (dst_test = dst; dst_test != 0;
+               for (dst_test = dst; dst_test != NULL;
                     dst_test = dst_test->child) {
                        struct xfrm_state *x = dst_test->xfrm;
 
_

Patches currently in -mm which might be from [EMAIL PROTECTED] are

origin.patch
git-infiniband.patch
git-input.patch
git-net.patch
git-wireless.patch
sparse-pointer-use-of-zero-as-null.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to