lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 14 Jun 2022 11:10:01 +0300 From: Heikki Krogerus <heikki.krogerus@...ux.intel.com> To: Prashant Malani <pmalani@...omium.org> Cc: linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org, bleung@...omium.org, swboyd@...omium.org, kernel test robot <lkp@...el.com>, Andrzej Hajda <andrzej.hajda@...el.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, Daniel Vetter <daniel@...ll.ch>, David Airlie <airlied@...ux.ie>, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree@...r.kernel.org>, "open list:DRM DRIVERS" <dri-devel@...ts.freedesktop.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Hsin-Yi Wang <hsinyi@...omium.org>, Jernej Skrabec <jernej.skrabec@...il.com>, Jonas Karlman <jonas@...boo.se>, José Expósito <jose.exposito89@...il.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>, Laurent Pinchart <Laurent.pinchart@...asonboard.com>, Maxime Ripard <maxime@...no.tech>, Neil Armstrong <narmstrong@...libre.com>, Nícolas F. R. A. Prado <nfraprado@...labora.com>, Pin-Yen Lin <treapking@...omium.org>, Robert Foss <robert.foss@...aro.org>, Rob Herring <robh+dt@...nel.org>, Sam Ravnborg <sam@...nborg.org>, Thomas Zimmermann <tzimmermann@...e.de>, Tzung-Bi Shih <tzungbi@...gle.com>, Xin Ji <xji@...logixsemi.com> Subject: Re: [PATCH v2 2/7] usb: typec: mux: Add CONFIG guards for functions Hi, On Thu, Jun 09, 2022 at 06:09:41PM +0000, Prashant Malani wrote: > There are some drivers that can use the Type C mux API, but don't have > to. Introduce CONFIG guards for the mux functions so that drivers can > include the header file and not run into compilation errors on systems > which don't have CONFIG_TYPEC enabled. When CONFIG_TYPEC is not enabled, > the Type C mux functions will be stub versions of the original calls. > > Reported-by: kernel test robot <lkp@...el.com> > Signed-off-by: Prashant Malani <pmalani@...omium.org> > --- > > Changes since v1: > - Added static inline to stub functions. > - Updated function signature of stub functions from "struct typec_mux" > to "struct typec_mux_dev" in accordance with updates from commit > 713fd49b430c ("usb: typec: mux: Introduce indirection") > > include/linux/usb/typec_mux.h | 38 +++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/include/linux/usb/typec_mux.h b/include/linux/usb/typec_mux.h > index ee57781dcf28..9eda6146fd26 100644 > --- a/include/linux/usb/typec_mux.h > +++ b/include/linux/usb/typec_mux.h > @@ -58,6 +58,8 @@ struct typec_mux_desc { > void *drvdata; > }; > > +#if IS_ENABLED(CONFIG_TYPEC) || IS_MODULE(CONFIG_TYPEC) > + > struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode, > const struct typec_altmode_desc *desc); > void typec_mux_put(struct typec_mux *mux); > @@ -76,4 +78,40 @@ void typec_mux_unregister(struct typec_mux_dev *mux); > void typec_mux_set_drvdata(struct typec_mux_dev *mux, void *data); > void *typec_mux_get_drvdata(struct typec_mux_dev *mux); > > +#else > + > +static inline struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode, > + const struct typec_altmode_desc *desc) > +{ > + return ERR_PTR(-EOPNOTSUPP); > +} The mux is optional resource for the drivers - fwnode_typec_mux_get() returns NULL if there is no mux for the caller - so it's better to just return NULL from this stub. > +static inline void typec_mux_put(struct typec_mux *mux) {} > + > +static inline int typec_mux_set(struct typec_mux *mux, struct typec_mux_state *state) > +{ > + return -EOPNOTSUPP; > +} Return 0 in this case. That way this stub matches the function behaviour: ... if (IS_ERR_OR_NULL(mux)) return 0; ... > +static inline struct typec_mux * > +typec_mux_get(struct device *dev, const struct typec_altmode_desc *desc) > +{ > + return ERR_PTR(-EOPNOTSUPP); > +} You don't need this one. Just leave the original outside of the ifdef. It's already an inline wrapper function. > +static inline struct typec_mux_dev * > +typec_mux_register(struct device *parent, const struct typec_mux_desc *desc) > +{ > + return ERR_PTR(-EOPNOTSUPP); > +} > +static inline void typec_mux_unregister(struct typec_mux_dev *mux) {} > + > +static inline void typec_mux_set_drvdata(struct typec_mux_dev *mux, void *data) {} > +static inline void *typec_mux_get_drvdata(struct typec_mux_dev *mux) > +{ > + return ERR_PTR(-EOPNOTSUPP); > +} > + > +#endif /* CONFIG_TYPEC */ > + > #endif /* __USB_TYPEC_MUX */ thanks, -- heikki
Powered by blists - more mailing lists