[2.6 patch] drivers/block/nbd.c: don't defer compile error to runtime

From: Adrian Bunk
Date: Fri Sep 02 2005 - 18:25:21 EST


On Fri, Sep 02, 2005 at 07:20:47PM -0400, Adam Kropelin wrote:
> Adrian Bunk wrote:
> > If we can detect a problem at compile time, the compilation should
> > fail.
>
> [...]
>
> > if (sizeof(struct nbd_request) != 28) {
> > - printk(KERN_CRIT "nbd: sizeof nbd_request needs to be 28 in order to work!\n" );
> > - return -EIO;
> > + extern void nbd_request_wrong_size(void);
> > + nbd_request_wrong_size();
>
> BUILD_BUG_ON(sizeof(struct nbd_request) != 28);
>
> ...perhaps?

Neat, I didn't know about this.

I didn't know about this.

> --Adam

cu
Adrian


<-- snip -->


If we can detect a problem at compile time, the compilation should fail.


Signed-off-by: Adrian Bunk <bunk@xxxxxxxxx>

--- linux-2.6.13-mm1-full/drivers/block/nbd.c.old 2005-09-02 23:48:27.000000000 +0200
+++ linux-2.6.13-mm1-full/drivers/block/nbd.c 2005-09-03 01:08:04.000000000 +0200
@@ -643,10 +643,7 @@
int err = -ENOMEM;
int i;

- if (sizeof(struct nbd_request) != 28) {
- printk(KERN_CRIT "nbd: sizeof nbd_request needs to be 28 in order to work!\n" );
- return -EIO;
- }
+ BUILD_BUG_ON(sizeof(struct nbd_request) != 28);

if (nbds_max > MAX_NBD) {
printk(KERN_CRIT "nbd: cannot allocate more than %u nbds; %u requested.\n", MAX_NBD,

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/