Hi Marcel, On Thu, May 19, 2022 at 11:07 AM Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > > Hi Luiz, > > > This adds bt_status which can be used to convert Unix errno to > > Bluetooth status. > > > > Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > --- > > include/net/bluetooth/bluetooth.h | 1 + > > net/bluetooth/lib.c | 71 +++++++++++++++++++++++++++++++ > > 2 files changed, 72 insertions(+) > > > > diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h > > index 6b48d9e2aab9..cfe6159f26bc 100644 > > --- a/include/net/bluetooth/bluetooth.h > > +++ b/include/net/bluetooth/bluetooth.h > > @@ -521,6 +521,7 @@ static inline struct sk_buff *bt_skb_sendmmsg(struct sock *sk, > > } > > > > int bt_to_errno(u16 code); > > +__u8 bt_status(int err); > > > > void hci_sock_set_flag(struct sock *sk, int nr); > > void hci_sock_clear_flag(struct sock *sk, int nr); > > diff --git a/net/bluetooth/lib.c b/net/bluetooth/lib.c > > index 5326f41a58b7..469a0c95b6e8 100644 > > --- a/net/bluetooth/lib.c > > +++ b/net/bluetooth/lib.c > > @@ -135,6 +135,77 @@ int bt_to_errno(__u16 code) > > } > > EXPORT_SYMBOL(bt_to_errno); > > > > +/* Unix errno to Bluetooth error codes mapping */ > > +__u8 bt_status(int err) > > +{ > > + /* Don't convert if already positive value */ > > + if (err >= 0) > > + return err; > > + > > + switch (err) { > > + case -EBADRQC: > > + return 0x01; > > + > > + case -ENOTCONN: > > + return 0x02; > > + > > + case -EIO: > > + return 0x03; > > + > > + case -EHOSTDOWN: > > + return 0x04; > > + > > + case -EACCES: > > + return 0x05; > > + > > + case -EBADE: > > + return 0x06; > > + > > + case -ENOMEM: > > + return 0x07; > > + > > + case -ETIMEDOUT: > > + return 0x08; > > + > > + case -EMLINK: > > + return 0x09; > > + > > + case EALREADY: > > + return 0x0b; > > + > > + case -EBUSY: > > + return 0x0c; > > + > > + case -ECONNREFUSED: > > + return 0x0d; > > + > > + case -EOPNOTSUPP: > > + return 0x11; > > + > > + case -EINVAL: > > + return 0x12; > > + > > + case -ECONNRESET: > > + return 0x13; > > + > > + case -ECONNABORTED: > > + return 0x16; > > + > > + case ELOOP: > > + return 0x17; > > + > > + case -EPROTONOSUPPORT: > > + return 0x1a; > > + > > + case -EPROTO: > > + return 0x19; > > + > > + default: > > + return 0x1f; > > + } > > +} > > +EXPORT_SYMBOL(bt_status); > > + > > why are exporting this? Isn't it supposed to be exported since it is part of lib.c? All functions in this file use it. > Regards > > Marcel > -- Luiz Augusto von Dentz