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? David