On Tue, May 21, 2019 at 11:42 AM Greg KH <[email protected]> wrote:
>
> Ick, if you are using __force, almost always something is wrong.
>
What if I create a separate structure for the regmap context ?
struct anybus_regmap_context {
void __iomem *base;
};
Then just store the base pointer inside the struct, and pass the struct
as the regmap context:
ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
ctx->base = base;
devm_regmap_init(..., ctx);
static int write_reg_bus(void *context, unsigned int reg,
unsigned int val)
{
struct anybus_regmap_context *ctx = context;
<now access ctx->base>
}
Penalty is an additional dynamic pointer-size
allocation. Pro: it'll be formally correct ?
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel