Search Linux Wireless

Re: [RFC][PATCH] bcmai: introduce AI driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2011-04-05 at 22:15 +0200, RafaÅ MiÅecki wrote:
> 2011/4/5 Joe Perches <joe@xxxxxxxxxxx>:
> > On Tue, 2011-04-05 at 21:57 +0200, RafaÅ MiÅecki wrote:
> >> Signed-off-by: RafaÅ MiÅecki <zajec5@xxxxxxxxx>
> > Just some trivia.
[]
> >> diff --git a/drivers/bcmai/core.c b/drivers/bcmai/core.c
> > []
> >> +             bcmai_err("Power control not implemented!\n");
> > []
> >> diff --git a/include/linux/bcmai/bcmai.h b/include/linux/bcmai/bcmai.h
> > []
> >> +#define bcmai_info(fmt, args...)     printk(KERN_INFO "bcmai: " fmt, ##args)
> >> +#ifdef CONFIG_BCMAI_DEBUG
> >> +#define bcmai_dbg(fmt, args...)              printk(KERN_DEBUG "bcmai debug: " fmt, ##args)
> >> +#else
> >> +#define bcmai_dbg(fmt, args...)              do { } while (0)
> >> +#endif
> >> +#define bcmai_err(fmt, args...)              printk(KERN_ERR "bcmai error: " fmt, ##args)
> > I think there's very little value in prefixing
> > "error" and "debug" in front of equivalent
> > KERN_<level> message levels.
> > I think you might as well just use pr_<level>
> > and pr_fmt.
> Hm, I've taken this idea from ssb and b43:
> [b43err] printk(KERN_ERR "b43-%s ERROR: %pV", ...);

I think that per module extra text based
"error/info/whatnot" prefixes are just unnecessary
duplication to KERN_<level>.

> [_pll_init] ssb_printk(KERN_ERR PFX "ERROR: PLL init unknown for...

[]

I think ssb_printk and CONFIG_SSB_SILENT is not
particularly useful.  I think printk support is
or should be generally enabled or disabled and a
per module on/off just for embedded module size
is unnecessary complexity for almost no benefit.

> is there some official coding-style for such a situations?

There's definitely no mandated coding-style for such things
and I certainly support per module named module_<level>
prefixing where the module passes some struct pointer
or another for things like masking printing of specific
errors or debugging levels.

Like:

#define <modulename>_info(foo, fmt, ...) \
	pr_info("%s: " fmt, foo->info, ##__VA_ARGS__)

or

__attribute__((format (printf, 2, 3)))
int <modulename>_info(struct type, const char *fmt, ...)
{
	int rtn;
	struct va_format vaf;
	va_list args;

	va_start(args, fmt);

        vaf.fmt = fmt;
        vaf.va = &args;

	rtn = pr_info"%s: %pV", type->info, &vaf);

        va_end(args);

	return rtn;
}

> >> diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
> > []
> >> +/* AI core, see drivers/bcmai/ */
> >> +struct bcmai_device_id {
> >> +     __u16   manuf;
> >> +     __u16   id;
> >> +     __u8    rev;
> >> +};
> >
> > Do some of these structs need __packed declarations?
> 
> I was reading about __packed long time ago and it was a little tricky
> for me. However I don't see anything in mod_devicetable.h using that
> __packed. Why should we?

I didn't look very hard.  If this struct (or any other)
is read directly from some device expecting a contiguous
byte block, then it's likely that it should be declared
"__packed".
 
cheers, Joe

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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux