On September 19, 2017 7:19:35 AM PDT, Vivien Didelot <vivien.dide...@savoirfairelinux.com> wrote: >Hi David, > >David Laight <david.lai...@aculab.com> writes: > >> From: Florian Fainelli >>> Sent: 18 September 2017 22:41 >>> Instead of repeating the same pattern: acquire mutex, read/write, >release >>> mutex, define a macro: b53_build_op() which takes the type >(read|write), I/O >>> size, and value (scalar or pointer). This helps with fixing bugs >that could >>> exit (e.g: missing barrier, lock etc.). >> .... >>> +#define b53_build_op(type, op_size, val_type) \ >>> +static inline int b53_##type##op_size(struct b53_device *dev, u8 >page, \ >>> + u8 reg, val_type val) >>> \ >>> +{ >>> \ >>> + int ret; >>> \ >>> + >>> \ >>> + mutex_lock(&dev->reg_mutex); >>> \ >>> + ret = dev->ops->type##op_size(dev, page, reg, val); >>> \ >>> + mutex_unlock(&dev->reg_mutex); >>> \ >>> + >>> \ >>> + return ret; >>> \ >>> } >> >> Why separate the 'type' and 'op_size' arguments since they >> are always pasted together? > >For read/write48, the value type is u64.
The way I read David's comment is that instead of calling the macro with read, 48, just combine that in a single argument: read48. I don't have a preference about that and can respin eventually. -- Florian