Re: [PATCH] [v2] blkdev: always export SECTOR_SHIFT

From: Arnd Bergmann
Date: Fri Jul 19 2019 - 09:28:28 EST


On Fri, Jul 19, 2019 at 3:14 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> On Fri, Jul 19, 2019 at 2:13 PM Christoph Hellwig <hch@xxxxxx> wrote:
> >
> > > +/*
> > > + * The basic unit of block I/O is a sector. It is used in a number of contexts
> > > + * in Linux (blk, bio, genhd). The size of one sector is 512 = 2**9
> > > + * bytes. Variables of type sector_t represent an offset or size that is a
> > > + * multiple of 512 bytes. Hence these two constants.
> > > + */
> > > +#ifndef SECTOR_SHIFT
> > > +#define SECTOR_SHIFT 9
> > > +#endif
> > > +#ifndef SECTOR_SIZE
> > > +#define SECTOR_SIZE (1 << SECTOR_SHIFT)
> > > +#endif
> >
> > While we're at it we really should drop the ifndefs.
>
> Good idea. Needs some more build testing then.

Did not take long:

In file included from block/partitions/msdos.c:24:
In file included from block/partitions/check.h:3:
include/linux/blkdev.h:15:9: error: 'SECTOR_SIZE' macro redefined
[-Werror,-Wmacro-redefined]
#define SECTOR_SIZE (1 << SECTOR_SHIFT)
^
include/uapi/linux/msdos_fs.h:14:9: note: previous definition is here
#define SECTOR_SIZE 512 /* sector size (bytes) */
^

This could clearly be fixed as well, but I suspect we're better off not touching
it any further than necessary.

Arnd