[PATCH linux dev-5.10 2/7] ipmi: kcs_bmc: Add a "raw" character device interface
Joel Stanley
joel at jms.id.au
Wed Jun 23 11:04:43 AEST 2021
On Wed, 23 Jun 2021 at 00:48, Andrew Jeffery <andrew at aj.id.au> wrote:
>
>
>
> On Fri, 18 Jun 2021, at 13:28, Andrew Jeffery wrote:
> > +static int kcs_bmc_raw_add_device(struct kcs_bmc_device *kcs_bmc)
> > +{
> > + struct kcs_bmc_raw *priv;
> > + int rc;
> > +
> > + priv = devm_kzalloc(kcs_bmc->dev, sizeof(*priv), GFP_KERNEL);
> > + if (!priv)
> > + return -ENOMEM;
> > +
> > + priv->client.dev = kcs_bmc;
> > + priv->client.ops = &kcs_bmc_raw_client_ops;
> > +
> > + init_waitqueue_head(&priv->queue);
> > + priv->writable = false;
> > + priv->readable = false;
> > +
> > + priv->miscdev.minor = MISC_DYNAMIC_MINOR;
> > + priv->miscdev.name = devm_kasprintf(kcs_bmc->dev, GFP_KERNEL, "%s%u",
> > DEVICE_NAME,
> > + kcs_bmc->channel);
> > + if (!priv->miscdev.name)
> > + return -EINVAL;
> > +
> > + priv->miscdev.fops = &kcs_bmc_raw_fops;
> > +
> > + /* Initialise our expected events. Listen for IBF but ignore OBE
> > until necessary */
> > + kcs_bmc_raw_update_event_mask(priv, (KCS_BMC_EVENT_TYPE_IBF |
> > KCS_BMC_EVENT_TYPE_OBE),
> > + KCS_BMC_EVENT_TYPE_IBF);
>
> Ah, this is now wrong wrt to some other rework that went on, we should be disabling IBF and OBE until the chardev is opened.
>
> With the code as it is we can get a "nobody cared" WARN().
>
> I'll send a v2.
Best to put it on the upstream lists. We can pull it in if you need it sooner.
>
> Andrew
More information about the openbmc
mailing list