parisc: BUG_ON() cleanup
Helge Deller
maintainerPATCH 1/1 parisc: BUG_ON() cleanup
- convert a few "if (xx) BUG();" to BUG_ON(xx)
- remove a few printk()s, as we get a backtrace with BUG_ON() anyway
kernel/cache.c | 5 +---- kernel/pci-dma.c | 22 ++++++---------------- mm/init.c | 6 ++---- 3 files changed, 9 insertions(+), 24 deletions(-)
arch/parisc/kernel/cache.c +1 -4
@@ -551,10 +551,7 @@ void flush_cache_range(struct vm_area_struct *vma, {int sr3; -if (!vma->vm_mm->context) { -BUG (); -return ; - } +BUG_ON (!vma->vm_mm->context); sr3 =mfsp (3 );if (vma->vm_mm->context == sr3) {
arch/parisc/kernel/pci-dma.c +6 -16
@@ -447,10 +447,7 @@ static void pa11_dma_free_consistent (struct device *dev, size_t size, void *vadstatic dma_addr_t pa11_dma_map_single (struct device *dev,void *addr,size_t size,enum dma_data_direction direction) { -if (direction ==DMA_NONE ) { -printk (KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n" ,__builtin_return_address (0 )); -BUG (); - } +BUG_ON (direction ==DMA_NONE );flush_kernel_dcache_range ((unsigned long ) addr, size);return virt_to_phys (addr);
@@ -458,10 +455,7 @@ static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t sizstatic void pa11_dma_unmap_single (struct device *dev,dma_addr_t dma_handle,size_t size,enum dma_data_direction direction) { -if (direction ==DMA_NONE ) { -printk (KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n" ,__builtin_return_address (0 )); -BUG (); - } +BUG_ON (direction ==DMA_NONE );if (direction ==DMA_TO_DEVICE )return ;
@@ -480,8 +474,7 @@ static int pa11_dma_map_sg(struct device *dev, struct scatterlist *sglist, int n {int i; -if (direction ==DMA_NONE ) -BUG (); +BUG_ON (direction ==DMA_NONE );for (i =0 ; i < nents; i++, sglist++ ) {unsigned long vaddr =sg_virt_addr (sglist);
@@ -496,8 +489,7 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in {int i; -if (direction ==DMA_NONE ) -BUG (); +BUG_ON (direction ==DMA_NONE );if (direction ==DMA_TO_DEVICE )return ;
@@ -511,16 +503,14 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, instatic void pa11_dma_sync_single_for_cpu (struct device *dev,dma_addr_t dma_handle,unsigned long offset,size_t size,enum dma_data_direction direction) { -if (direction ==DMA_NONE ) -BUG (); +BUG_ON (direction ==DMA_NONE );flush_kernel_dcache_range ((unsigned long )phys_to_virt (dma_handle) + offset, size); }static void pa11_dma_sync_single_for_device (struct device *dev,dma_addr_t dma_handle,unsigned long offset,size_t size,enum dma_data_direction direction) { -if (direction ==DMA_NONE ) -BUG (); +BUG_ON (direction ==DMA_NONE );flush_kernel_dcache_range ((unsigned long )phys_to_virt (dma_handle) + offset, size); }
arch/parisc/mm/init.c +2 -4
@@ -304,10 +304,8 @@ static void __init setup_bootmem(void)*/ max_low_pfn = max_pfn; -if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) { -printk (KERN_WARNING "WARNING! bootmap sizing is messed up!\n" ); -BUG (); - } +/* bootmap sizing messed up? */ +BUG_ON ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages);/* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */
James Bottomley
maintainerQuoted 1 line · Helge Deller
- convert a few "if (xx)
BUG();" toBUG_ON(xx)
This is fine
Quoted 1 line
- remove a few printk()s, as we get a backtrace with
BUG_ON()anyway
This is less helpful. Each of the printks explains why the bug triggers. In theory you can work this out from the BUG_ON line number, but *only* if your source files match those of the reporter, which isn't the case in an annoyingly large number of bug reports ... speaking as someone who seems to get to diagnose large numbers of bugs, it makes my life harder.
James
Helge Deller
maintainerQuoted 5 lines · James Bottomley
Quoted 1 line · Helge Deller
- convert a few "if (xx)
BUG();" toBUG_ON(xx)This is fine
Quoted 8 lines
Quoted 1 line
- remove a few printk()s, as we get a backtrace with
BUG_ON()anywayThis is less helpful. Each of the printks explains why the bug triggers. In theory you can work this out from the
BUG_ONline number, but *only* if your source files match those of the reporter, which isn't the case in an annoyingly large number of bug reports ... speaking as someone who seems to get to diagnose large numbers of bugs, it makes my life harder.
I fully understand your point.
Regarding arch/parisc/kernel/pci-dma.c:
- each of the pa11_dma_map_* functions where I removed the printks only had one BUG() anyway. Should be easy to find it in backtraces.
- a few of the pa11_dma_map_* functions have printks, the others don't. I just made it consistent.
Regarding arch/parisc/mm/init.c:
- setup_bootmem() is a huge function. I agree that keeping this printk would make sense.
So, would you be OK with the patch if I drop the init.c change and keep the pci-dma.c changes?
Helge
Quoted 5 lines · On Tuesday 06 January 2009 10:20:33 James Bottomley wrote:
Quoted 1 line · Helge Deller
- convert a few "if (xx)
BUG();" toBUG_ON(xx)This is fine
Quoted 8 lines
Quoted 1 line
- remove a few printk()s, as we get a backtrace with
BUG_ON()anywayThis is less helpful. Each of the printks explains why the bug triggers. In theory you can work this out from the
BUG_ONline number, but *only* if your source files match those of the reporter, which isn't the case in an annoyingly large number of bug reports ... speaking as someone who seems to get to diagnose large numbers of bugs, it makes my life harder.
i think those comments go beyond parisc. perhaps we should add a BUG_ON_ANNOTATED() that includes another printk ?
-mike