linux-stable/drivers/cxl/core
Dan Williams 48667f6761 cxl/core: Split decoder setup into alloc + add
The kbuild robot reports:

    drivers/cxl/core/bus.c:516:1: warning: stack frame size (1032) exceeds
    limit (1024) in function 'devm_cxl_add_decoder'

It is also the case the devm_cxl_add_decoder() is unwieldy to use for
all the different decoder types. Fix the stack usage by splitting the
creation into alloc and add steps. This also allows for context
specific construction before adding.

With the split the caller is responsible for registering a devm callback
to trigger device_unregister() for the decoder rather than it being
implicit in the decoder registration. I.e. the routine that calls alloc
is responsible for calling put_device() if the "add" operation fails.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Ben Widawsky <ben.widawsky@intel.com>
Link: https://lore.kernel.org/r/163225205828.3038145.6831131648369404859.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2021-09-21 14:09:34 -07:00
..
Makefile cxl/mbox: Move mailbox and other non-PCI specific infrastructure to the core 2021-09-21 13:44:56 -07:00
bus.c cxl/core: Split decoder setup into alloc + add 2021-09-21 14:09:34 -07:00
core.h cxl/core: Split decoder setup into alloc + add 2021-09-21 14:09:34 -07:00
mbox.c cxl/mbox: Move command definitions to common location 2021-09-21 14:09:34 -07:00
memdev.c cxl/mbox: Add exclusive kernel command support 2021-09-21 13:44:57 -07:00
pmem.c cxl/core: Split decoder setup into alloc + add 2021-09-21 14:09:34 -07:00
regs.c