public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* new bio: compile fix for alpha
@ 2001-11-29 13:54 Ivan Kokshaysky
  2001-11-29 14:23 ` Jens Axboe
  0 siblings, 1 reply; 7+ messages in thread
From: Ivan Kokshaysky @ 2001-11-29 13:54 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

Added BUG_ON macro, similar to x86 one;
arg 2 for blk_queue_bounce_limit() declared `long long' in blkdev.h
and `u64' in ll_rw_blk.c, which is not the same thing on alpha.
There are several compiler warnings "long long format, long arg",
caused by the same reason, but I think they could be ignored at this point.

Ivan.

--- 2.5.1p3/include/linux/blkdev.h	Wed Nov 28 16:35:34 2001
+++ linux/include/linux/blkdev.h	Wed Nov 28 18:31:32 2001
@@ -238,7 +238,7 @@ extern void blk_attempt_remerge(request_
 extern int blk_init_queue(request_queue_t *, request_fn_proc *, char *);
 extern void blk_cleanup_queue(request_queue_t *);
 extern void blk_queue_make_request(request_queue_t *, make_request_fn *);
-extern void blk_queue_bounce_limit(request_queue_t *, unsigned long long);
+extern void blk_queue_bounce_limit(request_queue_t *, u64);
 extern void blk_queue_max_sectors(request_queue_t *q, unsigned short);
 extern void blk_queue_max_segments(request_queue_t *q, unsigned short);
 extern void blk_queue_max_segment_size(request_queue_t *q, unsigned int);
--- 2.5.1p3/include/asm-alpha/page.h	Wed Nov 28 16:34:32 2001
+++ linux/include/asm-alpha/page.h	Wed Nov 28 18:30:31 2001
@@ -64,7 +64,14 @@ do {										\
 	printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__);			\
 	__asm__ __volatile__("call_pal %0  # bugchk" : : "i" (PAL_bugchk));	\
 } while (0)
+
 #define PAGE_BUG(page)	BUG()
+
+#define BUG_ON(condition)			\
+	do {					\
+		if (unlikely((long)(condition)))\
+			BUG();			\
+	} while (0)
 
 /* Pure 2^n version of get_order */
 extern __inline__ int get_order(unsigned long size)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-11-29 13:54 new bio: compile fix for alpha Ivan Kokshaysky
@ 2001-11-29 14:23 ` Jens Axboe
  2001-12-06 17:43   ` Ivan Kokshaysky
  0 siblings, 1 reply; 7+ messages in thread
From: Jens Axboe @ 2001-11-29 14:23 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: linux-kernel

On Thu, Nov 29 2001, Ivan Kokshaysky wrote:
> Added BUG_ON macro, similar to x86 one;
> arg 2 for blk_queue_bounce_limit() declared `long long' in blkdev.h
> and `u64' in ll_rw_blk.c, which is not the same thing on alpha.

Ah indeed, thanks.

> There are several compiler warnings "long long format, long arg",
> caused by the same reason, but I think they could be ignored at this point.

Please send whatever you find, thanks.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-11-29 14:23 ` Jens Axboe
@ 2001-12-06 17:43   ` Ivan Kokshaysky
  2001-12-06 18:23     ` Jens Axboe
  0 siblings, 1 reply; 7+ messages in thread
From: Ivan Kokshaysky @ 2001-12-06 17:43 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

On Thu, Nov 29, 2001 at 03:23:39PM +0100, Jens Axboe wrote:
> Please send whatever you find, thanks.

Well, I think this one is critical - in -pre4 BIO_CONTIG macro
has been changed:
-	(bio_to_phys((bio)) + bio_size((bio)) == bio_to_phys((nxt)))
+	(bvec_to_phys(__BVEC_END((bio)) + (bio)->bi_size) ==bio_to_phys((nxt)))
		      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This means that you add size in bytes to the `struct bio_vec' pointer,
which is obviously bogus. I wonder why this typo didn't expose itself
on x86 - on alpha I've got an oops on very first disk i/o in partition
check...

The rest is cleaning up some format vs. arg inconsistency on 64-bit
platforms.
Oh, and yet another [incorrect] BUG_ON macro on alpha killed.

Ivan.

--- 2.5.1p5/fs/bio.c	Thu Dec  6 19:25:13 2001
+++ linux/fs/bio.c	Thu Dec  6 19:25:26 2001
@@ -703,7 +703,7 @@ static int __init init_bio(void)
 		panic("bio: can't create bio_cachep slab cache\n");
 
 	nr = bio_init_pool();
-	printk("BIO: pool of %d setup, %uKb (%d bytes/bio)\n", nr, nr * sizeof(struct bio) >> 10, sizeof(struct bio));
+	printk("BIO: pool of %d setup, %luKb (%ld bytes/bio)\n", nr, nr * sizeof(struct bio) >> 10, sizeof(struct bio));
 
 	biovec_init_pool();
 
--- 2.5.1p5/include/linux/bio.h	Thu Dec  6 18:53:42 2001
+++ linux/include/linux/bio.h	Thu Dec  6 18:55:31 2001
@@ -120,7 +120,7 @@ struct bio {
  */
 #define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_idx - 1)
 #define BIO_CONTIG(bio, nxt) \
-	(bvec_to_phys(__BVEC_END((bio)) + (bio)->bi_size) == bio_to_phys((nxt)))
+	(bvec_to_phys(__BVEC_END((bio))) + (bio)->bi_size == bio_to_phys((nxt)))
 #define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \
 	(((addr1) | (mask)) == (((addr2) - 1) | (mask)))
 #define BIO_SEG_BOUNDARY(q, b1, b2) \
--- 2.5.1p5/include/asm-alpha/page.h	Thu Dec  6 18:53:42 2001
+++ linux/include/asm-alpha/page.h	Thu Dec  6 19:02:04 2001
@@ -73,12 +73,6 @@ do {										\
 			BUG();			\
 	} while (0)
 
-#define BUG_ON(condition)			\
-	do {					\
-		if (unlikely((int)(condition)))	\
-			BUG();			\
-	} while (0)
-
 /* Pure 2^n version of get_order */
 extern __inline__ int get_order(unsigned long size)
 {
--- 2.5.1p5/drivers/block/ll_rw_blk.c	Thu Dec  6 18:53:37 2001
+++ linux/drivers/block/ll_rw_blk.c	Thu Dec  6 18:55:10 2001
@@ -177,7 +177,7 @@ void blk_queue_bounce_limit(request_queu
 		if (dma_addr == BLK_BOUNCE_ANY)
 			printk("no I/O memory limit\n");
 		else
-			printk("I/O limit %luMb (mask 0x%Lx)\n", mb, (u64) dma_addr);
+			printk("I/O limit %luMb (mask 0x%Lx)\n", mb, (long long) dma_addr);
 	}
 
 	q->bounce_pfn = bounce_pfn;
@@ -1056,7 +1056,7 @@ void generic_make_request(struct bio *bi
 				printk(KERN_INFO "%s: rw=%ld, want=%ld, limit=%Lu\n",
 				       kdevname(bio->bi_dev), bio->bi_rw,
 				       (sector + nr_sectors)>>1,
-				       (u64) blk_size[major][minor]);
+				       (long long) blk_size[major][minor]);
 			}
 			set_bit(BIO_EOF, &bio->bi_flags);
 			goto end_io;
@@ -1076,7 +1076,7 @@ void generic_make_request(struct bio *bi
 		if (!q) {
 			printk(KERN_ERR
 			       "generic_make_request: Trying to access nonexistent block-device %s (%Lu)\n",
-			       kdevname(bio->bi_dev), (u64) bio->bi_sector);
+			       kdevname(bio->bi_dev), (long long) bio->bi_sector);
 end_io:
 			bio->bi_end_io(bio, nr_sectors);
 			break;

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-12-06 17:43   ` Ivan Kokshaysky
@ 2001-12-06 18:23     ` Jens Axboe
  2001-12-06 18:39       ` Jeff V. Merkey
  2001-12-07 10:10       ` Ivan Kokshaysky
  0 siblings, 2 replies; 7+ messages in thread
From: Jens Axboe @ 2001-12-06 18:23 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: linux-kernel

On Thu, Dec 06 2001, Ivan Kokshaysky wrote:
> On Thu, Nov 29, 2001 at 03:23:39PM +0100, Jens Axboe wrote:
> > Please send whatever you find, thanks.
> 
> Well, I think this one is critical - in -pre4 BIO_CONTIG macro
> has been changed:
> -	(bio_to_phys((bio)) + bio_size((bio)) == bio_to_phys((nxt)))
> +	(bvec_to_phys(__BVEC_END((bio)) + (bio)->bi_size) ==bio_to_phys((nxt)))
> 		      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This means that you add size in bytes to the `struct bio_vec' pointer,
> which is obviously bogus. I wonder why this typo didn't expose itself
> on x86 - on alpha I've got an oops on very first disk i/o in partition
> check...

Irk, good spotting. Thanks!

> The rest is cleaning up some format vs. arg inconsistency on 64-bit
> platforms.
> Oh, and yet another [incorrect] BUG_ON macro on alpha killed.

Applied, although I think we'll make BUG_ON a kernel generic and not
platform specific as per Rusty's patch.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-12-06 18:23     ` Jens Axboe
@ 2001-12-06 18:39       ` Jeff V. Merkey
  2001-12-07 14:51         ` Jens Axboe
  2001-12-07 10:10       ` Ivan Kokshaysky
  1 sibling, 1 reply; 7+ messages in thread
From: Jeff V. Merkey @ 2001-12-06 18:39 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Ivan Kokshaysky, linux-kernel


Jens,

This interface is totally cool and much appreciated.  I am 
nearly done getting the page cache mapped into NWFS.  I am 
waiting for the bugs to settle down, I still see some issues
with the AHA1512 drivers, but IDE works great and is 
really fast.

Jeff


On Thu, Dec 06, 2001 at 07:23:18PM +0100, Jens Axboe wrote:
> On Thu, Dec 06 2001, Ivan Kokshaysky wrote:
> > On Thu, Nov 29, 2001 at 03:23:39PM +0100, Jens Axboe wrote:
> > > Please send whatever you find, thanks.
> > 
> > Well, I think this one is critical - in -pre4 BIO_CONTIG macro
> > has been changed:
> > -	(bio_to_phys((bio)) + bio_size((bio)) == bio_to_phys((nxt)))
> > +	(bvec_to_phys(__BVEC_END((bio)) + (bio)->bi_size) ==bio_to_phys((nxt)))
> > 		      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > This means that you add size in bytes to the `struct bio_vec' pointer,
> > which is obviously bogus. I wonder why this typo didn't expose itself
> > on x86 - on alpha I've got an oops on very first disk i/o in partition
> > check...
> 
> Irk, good spotting. Thanks!
> 
> > The rest is cleaning up some format vs. arg inconsistency on 64-bit
> > platforms.
> > Oh, and yet another [incorrect] BUG_ON macro on alpha killed.
> 
> Applied, although I think we'll make BUG_ON a kernel generic and not
> platform specific as per Rusty's patch.
> 
> -- 
> Jens Axboe
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-12-06 18:23     ` Jens Axboe
  2001-12-06 18:39       ` Jeff V. Merkey
@ 2001-12-07 10:10       ` Ivan Kokshaysky
  1 sibling, 0 replies; 7+ messages in thread
From: Ivan Kokshaysky @ 2001-12-07 10:10 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

On Thu, Dec 06, 2001 at 07:23:18PM +0100, Jens Axboe wrote:
> Applied, although I think we'll make BUG_ON a kernel generic and not
> platform specific as per Rusty's patch.

Agreed, this would be better.

Ivan.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: new bio: compile fix for alpha
  2001-12-06 18:39       ` Jeff V. Merkey
@ 2001-12-07 14:51         ` Jens Axboe
  0 siblings, 0 replies; 7+ messages in thread
From: Jens Axboe @ 2001-12-07 14:51 UTC (permalink / raw)
  To: Jeff V. Merkey; +Cc: Ivan Kokshaysky, linux-kernel

On Thu, Dec 06 2001, Jeff V. Merkey wrote:
> 
> Jens,
> 
> This interface is totally cool and much appreciated.  I am 
> nearly done getting the page cache mapped into NWFS.  I am 
> waiting for the bugs to settle down, I still see some issues
> with the AHA1512 drivers, but IDE works great and is 
> really fast.

Great, glad to hear it. There will be "issues" for a while :-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2001-12-07 14:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-11-29 13:54 new bio: compile fix for alpha Ivan Kokshaysky
2001-11-29 14:23 ` Jens Axboe
2001-12-06 17:43   ` Ivan Kokshaysky
2001-12-06 18:23     ` Jens Axboe
2001-12-06 18:39       ` Jeff V. Merkey
2001-12-07 14:51         ` Jens Axboe
2001-12-07 10:10       ` Ivan Kokshaysky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox