From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@osdl.org>
Cc: torvalds@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] remove all kernel bugs
Date: Fri, 1 Apr 2005 12:06:37 -0800 [thread overview]
Message-ID: <20050401200637.GF15453@waste.org> (raw)
In-Reply-To: <20050401013454.1205a3f5.akpm@osdl.org>
On Fri, Apr 01, 2005 at 01:34:54AM -0800, Andrew Morton wrote:
> Matt Mackall <mpm@selenic.com> wrote:
> >
> > I've been sitting on this patch for a while, figured it's high time I
> > shared it with the world. This patch eliminates all kernel bugs, trims
> > about 35k off the typical kernel, and makes the system slightly
> > faster. The patch is against the latest bk snapshot, please apply.
>
> ho-hum, more ifdefs.
>
> How's about you nuke PAGE_BUG first? Just replace it with BUG() everywhere.
>
> Or do it as a later patch - doesn't matter much I guess.
With pleasure.
Exterminate PAGE_BUG.
Signed-off-by: Matt Mackall <mpm@selenic.com>
Index: af/include/asm-sh64/bug.h
===================================================================
--- af.orig/include/asm-sh64/bug.h 2005-04-01 11:17:38.000000000 -0800
+++ af/include/asm-sh64/bug.h 2005-04-01 11:17:40.000000000 -0800
@@ -17,10 +17,6 @@
BUG(); \
} while(0)
-#define PAGE_BUG(page) do { \
- BUG(); \
-} while (0)
-
#define WARN_ON(condition) do { \
if (unlikely((condition)!=0)) { \
printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
Index: af/fs/buffer.c
===================================================================
--- af.orig/fs/buffer.c 2005-04-01 11:17:38.000000000 -0800
+++ af/fs/buffer.c 2005-04-01 11:17:40.000000000 -0800
@@ -2078,8 +2078,7 @@ int block_read_full_page(struct page *pa
int nr, i;
int fully_mapped = 1;
- if (!PageLocked(page))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
blocksize = 1 << inode->i_blkbits;
if (!page_has_buffers(page))
create_empty_buffers(page, blocksize, 0);
Index: af/fs/afs/file.c
===================================================================
--- af.orig/fs/afs/file.c 2005-04-01 11:17:38.000000000 -0800
+++ af/fs/afs/file.c 2005-04-01 11:17:40.000000000 -0800
@@ -131,8 +131,7 @@ static int afs_file_readpage(struct file
vnode = AFS_FS_I(inode);
- if (!PageLocked(page))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
ret = -ESTALE;
if (vnode->flags & AFS_VNODE_DELETED)
Index: af/include/asm-generic/bug.h
===================================================================
--- af.orig/include/asm-generic/bug.h 2005-04-01 11:17:38.000000000 -0800
+++ af/include/asm-generic/bug.h 2005-04-01 11:17:40.000000000 -0800
@@ -12,13 +12,6 @@
} while (0)
#endif
-#ifndef HAVE_ARCH_PAGE_BUG
-#define PAGE_BUG(page) do { \
- printk("page BUG for page at %p\n", page); \
- BUG(); \
-} while (0)
-#endif
-
#ifndef HAVE_ARCH_BUG_ON
#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
#endif
@@ -37,10 +30,6 @@
#define BUG()
#endif
-#ifndef HAVE_ARCH_PAGE_BUG
-#define PAGE_BUG(page) do { if (page) ; } while (0)
-#endif
-
#ifndef HAVE_ARCH_BUG_ON
#define BUG_ON(condition) do { if (condition) ; } while(0)
#endif
Index: af/fs/jffs2/file.c
===================================================================
--- af.orig/fs/jffs2/file.c 2005-04-01 11:17:38.000000000 -0800
+++ af/fs/jffs2/file.c 2005-04-01 11:17:40.000000000 -0800
@@ -79,8 +79,7 @@ static int jffs2_do_readpage_nolock (str
D2(printk(KERN_DEBUG "jffs2_do_readpage_nolock(): ino #%lu, page at offset 0x%lx\n", inode->i_ino, pg->index << PAGE_CACHE_SHIFT));
- if (!PageLocked(pg))
- PAGE_BUG(pg);
+ BUG_ON(!PageLocked(pg));
pg_buf = kmap(pg);
/* FIXME: Can kmap fail? */
Index: af/include/asm-cris/page.h
===================================================================
--- af.orig/include/asm-cris/page.h 2005-04-01 11:17:38.000000000 -0800
+++ af/include/asm-cris/page.h 2005-04-01 11:17:40.000000000 -0800
@@ -77,10 +77,6 @@ typedef struct { unsigned long pgprot; }
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
} while (0)
-#define PAGE_BUG(page) do { \
- BUG(); \
-} while (0)
-
/* Pure 2^n version of get_order */
static inline int get_order(unsigned long size)
{
Index: af/fs/udf/file.c
===================================================================
--- af.orig/fs/udf/file.c 2005-04-01 11:17:38.000000000 -0800
+++ af/fs/udf/file.c 2005-04-01 11:17:40.000000000 -0800
@@ -49,8 +49,7 @@ static int udf_adinicb_readpage(struct f
struct inode *inode = page->mapping->host;
char *kaddr;
- if (!PageLocked(page))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
kaddr = kmap(page);
memset(kaddr, 0, PAGE_CACHE_SIZE);
@@ -67,8 +66,7 @@ static int udf_adinicb_writepage(struct
struct inode *inode = page->mapping->host;
char *kaddr;
- if (!PageLocked(page))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
kaddr = kmap(page);
memcpy(UDF_I_DATA(inode) + UDF_I_LENEATTR(inode), kaddr, inode->i_size);
Index: af/fs/udf/inode.c
===================================================================
--- af.orig/fs/udf/inode.c 2005-04-01 11:17:38.000000000 -0800
+++ af/fs/udf/inode.c 2005-04-01 11:17:40.000000000 -0800
@@ -167,8 +167,8 @@ void udf_expand_file_adinicb(struct inod
}
page = grab_cache_page(inode->i_mapping, 0);
- if (!PageLocked(page))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
+
if (!PageUptodate(page))
{
kaddr = kmap(page);
Index: af/arch/arm26/mm/small_page.c
===================================================================
--- af.orig/arch/arm26/mm/small_page.c 2005-04-01 11:17:38.000000000 -0800
+++ af/arch/arm26/mm/small_page.c 2005-04-01 11:17:40.000000000 -0800
@@ -92,8 +92,7 @@ static unsigned long __get_small_page(in
page = list_entry(order->queue.next, struct page, lru);
again:
#ifdef PEDANTIC
- if (USED_MAP(page) & ~order->all_used)
- PAGE_BUG(page);
+ BUG_ON(USED_MAP(page) & ~order->all_used);
#endif
offset = ffz(USED_MAP(page));
SET_USED(page, offset);
@@ -141,8 +140,7 @@ static void __free_small_page(unsigned l
goto non_small;
#ifdef PEDANTIC
- if (USED_MAP(page) & ~order->all_used)
- PAGE_BUG(page);
+ BUG_ON(USED_MAP(page) & ~order->all_used);
#endif
spage = spage >> order->shift;
Index: af/mm/filemap.c
===================================================================
--- af.orig/mm/filemap.c 2005-04-01 11:17:38.000000000 -0800
+++ af/mm/filemap.c 2005-04-01 11:17:40.000000000 -0800
@@ -123,8 +123,7 @@ void remove_from_page_cache(struct page
{
struct address_space *mapping = page->mapping;
- if (unlikely(!PageLocked(page)))
- PAGE_BUG(page);
+ BUG_ON(!PageLocked(page));
write_lock_irq(&mapping->tree_lock);
__remove_from_page_cache(page);
--
Mathematics is the supreme nostalgia of our time.
prev parent reply other threads:[~2005-04-01 20:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-01 9:07 [PATCH] remove all kernel bugs Matt Mackall
2005-04-01 9:17 ` Jan-Benedict Glaw
2005-04-02 21:03 ` Geert Uytterhoeven
2005-04-02 21:20 ` Jan-Benedict Glaw
2005-04-01 9:34 ` Andrew Morton
2005-04-01 20:06 ` Matt Mackall [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050401200637.GF15453@waste.org \
--to=mpm@selenic.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.