ipmi: kcs_bmc: Strip private client data from struct kcs_bmc
authorAndrew Jeffery <andrew@aj.id.au>
Tue, 8 Jun 2021 10:47:48 +0000 (20:17 +0930)
committerCorey Minyard <cminyard@mvista.com>
Tue, 22 Jun 2021 00:50:22 +0000 (19:50 -0500)
commitd4e7ac68f771addc19352121706d8584eb0166cd
treecb9cc19a3648713f755bdd47f83c42e166899bca
parentfaae6e391eda73a5b9870c78349064282a625bfa
ipmi: kcs_bmc: Strip private client data from struct kcs_bmc

Move all client-private data out of `struct kcs_bmc` into the KCS client
implementation.

With this change the KCS BMC core code now only concerns itself with
abstract `struct kcs_bmc` and `struct kcs_bmc_client` types, achieving
expected separation of concerns. Further, the change clears the path for
implementation of alternative userspace interfaces.

The chardev data-structures are rearranged in the same manner applied to
the KCS device driver data-structures in an earlier patch - `struct
kcs_bmc_client` is embedded in the client's private data and we exploit
container_of() to translate as required.

Finally, now that it is free of client data, `struct kcs_bmc` is renamed
to `struct kcs_bmc_device` to contrast `struct kcs_bmc_client`.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Reviewed-by: Zev Weiss <zweiss@equinix.com>
Message-Id: <20210608104757.582199-8-andrew@aj.id.au>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/kcs_bmc.c
drivers/char/ipmi/kcs_bmc.h
drivers/char/ipmi/kcs_bmc_aspeed.c
drivers/char/ipmi/kcs_bmc_cdev_ipmi.c
drivers/char/ipmi/kcs_bmc_client.h
drivers/char/ipmi/kcs_bmc_device.h
drivers/char/ipmi/kcs_bmc_npcm7xx.c