public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Bluetooth: Add documentation and replace printk calls
@ 2023-11-06 22:21 Yuran Pereira
  2023-11-06 22:24 ` [PATCH 1/2] Bluetooth: Add documentation to exported functions in lib Yuran Pereira
  2023-11-06 22:26 ` [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg Yuran Pereira
  0 siblings, 2 replies; 7+ messages in thread
From: Yuran Pereira @ 2023-11-06 22:21 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: Yuran Pereira, marcel, johan.hedberg, luiz.dentz, linux-kernel,
	linux-kernel-mentees

The following patchset adds documentation to exported functions in
`net/bluetooth/lib.c` and ensures that `bt_*` logging functions are
calling the correct pr_* function as opposed to `printk(KERN_*`.

Yuran Pereira (2):
  Bluetooth: Add documentation to exported functions in lib
  Bluetooth: Replaces printk with pr_debug in bt_dbg

 net/bluetooth/lib.c | 71 ++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 67 insertions(+), 4 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] Bluetooth: Add documentation to exported functions in lib
  2023-11-06 22:21 [PATCH 0/2] Bluetooth: Add documentation and replace printk calls Yuran Pereira
@ 2023-11-06 22:24 ` Yuran Pereira
  2023-11-06 23:00   ` Bluetooth: Add documentation and replace printk calls bluez.test.bot
  2023-11-06 22:26 ` [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg Yuran Pereira
  1 sibling, 1 reply; 7+ messages in thread
From: Yuran Pereira @ 2023-11-06 22:24 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: Yuran Pereira, marcel, johan.hedberg, luiz.dentz, linux-kernel,
	linux-kernel-mentees

Most functions in `net/bluetooth/lib.c` lack propper
documentation.

This patch adds documentation to all exported functions
in `net/bluetooth/lib.c`.
Unnecessary or redundant comments are also removed to
ensure the file looks clean.

Signed-off-by: Yuran Pereira <yuran.pereira@hotmail.com>
---
 net/bluetooth/lib.c | 69 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 66 insertions(+), 3 deletions(-)

diff --git a/net/bluetooth/lib.c b/net/bluetooth/lib.c
index 53a796ac078c..063032fe9c68 100644
--- a/net/bluetooth/lib.c
+++ b/net/bluetooth/lib.c
@@ -30,6 +30,15 @@
 
 #include <net/bluetooth/bluetooth.h>
 
+/**
+ * baswap() - Swaps the order of a bd address
+ * @dst: Pointer to a bdaddr_t struct that will store the swapped
+ * 		 bd address.
+ * @src: Pointer to the bdaddr_t struct to be swapped.
+ *
+ * This function reverses the byte order of a Bluetooth device
+ * address.
+ */
 void baswap(bdaddr_t *dst, const bdaddr_t *src)
 {
 	const unsigned char *s = (const unsigned char *)src;
@@ -41,7 +50,19 @@ void baswap(bdaddr_t *dst, const bdaddr_t *src)
 }
 EXPORT_SYMBOL(baswap);
 
-/* Bluetooth error codes to Unix errno mapping */
+/**
+ * bt_to_errno() - Bluetooth error codes to standard errno
+ * @code: Bluetooth error code to be converted
+ *
+ * This function takes a Bluetooth error code as input and convets
+ * it to an equivalent Unix/standard errno value.
+ *
+ * Return: 
+ *
+ * If the bt error code is known, an equivalent Unix errno value
+ * is returned.
+ * If the given bt error code is not known, ENOSYS is returned.
+ */
 int bt_to_errno(__u16 code)
 {
 	switch (code) {
@@ -135,10 +156,22 @@ int bt_to_errno(__u16 code)
 }
 EXPORT_SYMBOL(bt_to_errno);
 
-/* Unix errno to Bluetooth error codes mapping */
+/**
+ * bt_status() - Standard errno value to Bluetooth error code
+ * @err: Unix/standard errno value to be converted
+ *
+ * This function converts a standard/Unix errno value to an
+ * equivalent Bluetooth error code.
+ *
+ * Return: Bluetooth error code.
+ *
+ * If the given errno is not found, 0x1f is returned by default
+ * which indicates an unspecified error.
+ * For err >= 0, no conversion is performed, and the same value
+ * is immediately returned.
+ */
 __u8 bt_status(int err)
 {
-	/* Don't convert if already positive value */
 	if (err >= 0)
 		return err;
 
@@ -206,6 +239,10 @@ __u8 bt_status(int err)
 }
 EXPORT_SYMBOL(bt_status);
 
+/**
+ * bt_info() - Log Bluetooth information message
+ * @format: Message's format string
+ */
 void bt_info(const char *format, ...)
 {
 	struct va_format vaf;
@@ -222,6 +259,10 @@ void bt_info(const char *format, ...)
 }
 EXPORT_SYMBOL(bt_info);
 
+/**
+ * bt_warn() - Log Bluetooth warning message
+ * @format: Message's format string
+ */
 void bt_warn(const char *format, ...)
 {
 	struct va_format vaf;
@@ -238,6 +279,10 @@ void bt_warn(const char *format, ...)
 }
 EXPORT_SYMBOL(bt_warn);
 
+/**
+ * bt_err() - Log Bluetooth error message
+ * @format: Message's format string
+ */
 void bt_err(const char *format, ...)
 {
 	struct va_format vaf;
@@ -267,6 +312,10 @@ bool bt_dbg_get(void)
 	return debug_enable;
 }
 
+/**
+ * bt_dbg() - Log Bluetooth debugging message
+ * @format: Message's format string
+ */
 void bt_dbg(const char *format, ...)
 {
 	struct va_format vaf;
@@ -287,6 +336,13 @@ void bt_dbg(const char *format, ...)
 EXPORT_SYMBOL(bt_dbg);
 #endif
 
+/**
+ * bt_warn_ratelimited() - Log rate-limited Bluetooth warning message
+ * @format: Message's format string
+ *
+ * This functions works like bt_warn, but it uses rate limiting
+ * to prevent the message from being logged too often.
+ */
 void bt_warn_ratelimited(const char *format, ...)
 {
 	struct va_format vaf;
@@ -303,6 +359,13 @@ void bt_warn_ratelimited(const char *format, ...)
 }
 EXPORT_SYMBOL(bt_warn_ratelimited);
 
+/**
+ * bt_err_ratelimited() - Log rate-limited Bluetooth error message
+ * @format: Message's format string
+ *
+ * This functions works like bt_err, but it uses rate limiting
+ * to prevent the message from being logged too often.
+ */
 void bt_err_ratelimited(const char *format, ...)
 {
 	struct va_format vaf;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg
  2023-11-06 22:21 [PATCH 0/2] Bluetooth: Add documentation and replace printk calls Yuran Pereira
  2023-11-06 22:24 ` [PATCH 1/2] Bluetooth: Add documentation to exported functions in lib Yuran Pereira
@ 2023-11-06 22:26 ` Yuran Pereira
  2023-11-07  6:31   ` Greg KH
  1 sibling, 1 reply; 7+ messages in thread
From: Yuran Pereira @ 2023-11-06 22:26 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: Yuran Pereira, marcel, johan.hedberg, luiz.dentz, linux-kernel,
	linux-kernel-mentees

bt_dbg() uses printk, as opposed to other functions in this file
which use pr_* family of logging functions.

This patch changes that by replacing `printk(KERN_DEBUG` with
the equivalent pr_debug() call which makes the overall file
look more uniform and cleaner.

Signed-off-by: Yuran Pereira <yuran.pereira@hotmail.com>
---
 net/bluetooth/lib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/lib.c b/net/bluetooth/lib.c
index 063032fe9c68..96ba39f8b461 100644
--- a/net/bluetooth/lib.c
+++ b/net/bluetooth/lib.c
@@ -329,7 +329,7 @@ void bt_dbg(const char *format, ...)
 	vaf.fmt = format;
 	vaf.va = &args;
 
-	printk(KERN_DEBUG pr_fmt("%pV"), &vaf);
+	pr_debug("%pV", &vaf);
 
 	va_end(args);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: Bluetooth: Add documentation and replace printk calls
  2023-11-06 22:24 ` [PATCH 1/2] Bluetooth: Add documentation to exported functions in lib Yuran Pereira
@ 2023-11-06 23:00   ` bluez.test.bot
  0 siblings, 0 replies; 7+ messages in thread
From: bluez.test.bot @ 2023-11-06 23:00 UTC (permalink / raw)
  To: linux-bluetooth, yuran.pereira

[-- Attachment #1: Type: text/plain, Size: 2322 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=799231

---Test result---

Test Summary:
CheckPatch                    FAIL      1.54 seconds
GitLint                       PASS      0.59 seconds
SubjectPrefix                 PASS      0.18 seconds
BuildKernel                   PASS      32.85 seconds
CheckAllWarning               PASS      35.98 seconds
CheckSparse                   PASS      41.19 seconds
CheckSmatch                   PASS      116.09 seconds
BuildKernel32                 PASS      32.19 seconds
TestRunnerSetup               PASS      502.42 seconds
TestRunner_l2cap-tester       PASS      29.45 seconds
TestRunner_iso-tester         PASS      53.84 seconds
TestRunner_bnep-tester        PASS      10.02 seconds
TestRunner_mgmt-tester        PASS      203.88 seconds
TestRunner_rfcomm-tester      PASS      15.10 seconds
TestRunner_sco-tester         PASS      18.24 seconds
TestRunner_ioctl-tester       PASS      16.98 seconds
TestRunner_mesh-tester        PASS      12.28 seconds
TestRunner_smp-tester         PASS      13.22 seconds
TestRunner_userchan-tester    PASS      10.21 seconds
IncrementalBuild              PASS      34.94 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[1/2] Bluetooth: Add documentation to exported functions in lib
WARNING: please, no space before tabs
#121: FILE: net/bluetooth/lib.c:36:
+ * ^I^I bd address.$

ERROR: trailing whitespace
#142: FILE: net/bluetooth/lib.c:60:
+ * Return: $

total: 1 errors, 1 warnings, 0 checks, 125 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

NOTE: Whitespace errors detected.
      You may wish to use scripts/cleanpatch or scripts/cleanfile

/github/workspace/src/src/13447550.patch has style problems, please review.

NOTE: Ignored message types: UNKNOWN_COMMIT_ID

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.




---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg
  2023-11-06 22:26 ` [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg Yuran Pereira
@ 2023-11-07  6:31   ` Greg KH
  2023-11-07 16:02     ` Yuran Pereira
  0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2023-11-07  6:31 UTC (permalink / raw)
  To: Yuran Pereira
  Cc: linux-bluetooth, johan.hedberg, marcel, linux-kernel, luiz.dentz,
	linux-kernel-mentees

On Tue, Nov 07, 2023 at 03:56:08AM +0530, Yuran Pereira wrote:
> bt_dbg() uses printk, as opposed to other functions in this file
> which use pr_* family of logging functions.
> 
> This patch changes that by replacing `printk(KERN_DEBUG` with
> the equivalent pr_debug() call which makes the overall file
> look more uniform and cleaner.
> 
> Signed-off-by: Yuran Pereira <yuran.pereira@hotmail.com>
> ---
>  net/bluetooth/lib.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/bluetooth/lib.c b/net/bluetooth/lib.c
> index 063032fe9c68..96ba39f8b461 100644
> --- a/net/bluetooth/lib.c
> +++ b/net/bluetooth/lib.c
> @@ -329,7 +329,7 @@ void bt_dbg(const char *format, ...)
>  	vaf.fmt = format;
>  	vaf.va = &args;
>  
> -	printk(KERN_DEBUG pr_fmt("%pV"), &vaf);
> +	pr_debug("%pV", &vaf);

You might have just changed the functionality here, are you SURE this is
identical to the original code?  How was it tested?

I'm not saying this is a bad idea to do, just be aware of the
consequences for this change and document it properly (hint, the
changelog does not document the user-visible change that just happened.)

Note, pr_debug() is NOT identical to printk(), look at the source for
the full details.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg
  2023-11-07  6:31   ` Greg KH
@ 2023-11-07 16:02     ` Yuran Pereira
  2023-11-07 18:13       ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Yuran Pereira @ 2023-11-07 16:02 UTC (permalink / raw)
  To: Greg KH
  Cc: linux-bluetooth, johan.hedberg, marcel, linux-kernel, luiz.dentz,
	linux-kernel-mentees

Hello Greg,
On Tue, Nov 07, 2023 at 07:31:27AM +0100, Greg KH wrote:
> 
> You might have just changed the functionality here, are you SURE this is
> identical to the original code?  How was it tested?
> 
> I'm not saying this is a bad idea to do, just be aware of the
> consequences for this change and document it properly (hint, the
> changelog does not document the user-visible change that just happened.)
> 
> Note, pr_debug() is NOT identical to printk(), look at the source for
> the full details.
> 

Thank you for the heads-up. 
Yes, you're right.

I just took another look and it seems that using pr_debug here
does defeat the purpose of bt_dbg which was created for situations
where `DYNAMIC_DEBUG` and `DEBUG` are disabled.

The likely equivalent would have been `pr_devel` but that also
depends on `DEBUG`.

Do you think that a new `pr_devel_uncond` like the one below
(only to be used in exceptional scenarios) would be a good idea?

```
#define pr_devel_uncond(fmt, ...) \
    printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
```

This would neither depend on `DYNAMIC_DEBUG` nor on `DEBUG`.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg
  2023-11-07 16:02     ` Yuran Pereira
@ 2023-11-07 18:13       ` Greg KH
  0 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2023-11-07 18:13 UTC (permalink / raw)
  To: Yuran Pereira
  Cc: linux-bluetooth, johan.hedberg, marcel, linux-kernel, luiz.dentz,
	linux-kernel-mentees

On Tue, Nov 07, 2023 at 09:32:51PM +0530, Yuran Pereira wrote:
> Hello Greg,
> On Tue, Nov 07, 2023 at 07:31:27AM +0100, Greg KH wrote:
> > 
> > You might have just changed the functionality here, are you SURE this is
> > identical to the original code?  How was it tested?
> > 
> > I'm not saying this is a bad idea to do, just be aware of the
> > consequences for this change and document it properly (hint, the
> > changelog does not document the user-visible change that just happened.)
> > 
> > Note, pr_debug() is NOT identical to printk(), look at the source for
> > the full details.
> > 
> 
> Thank you for the heads-up. 
> Yes, you're right.
> 
> I just took another look and it seems that using pr_debug here
> does defeat the purpose of bt_dbg which was created for situations
> where `DYNAMIC_DEBUG` and `DEBUG` are disabled.
> 
> The likely equivalent would have been `pr_devel` but that also
> depends on `DEBUG`.
> 
> Do you think that a new `pr_devel_uncond` like the one below
> (only to be used in exceptional scenarios) would be a good idea?
> 
> ```
> #define pr_devel_uncond(fmt, ...) \
>     printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
> ```
> 
> This would neither depend on `DYNAMIC_DEBUG` nor on `DEBUG`.

No, not at all, the bluetooth subsystem should move to actually use the
proper dynamic debug infrastructure and not have their own "special"
subsystem loging macros/functions.  What you are doing here is the
proper way forward, BUT you need to make everyone aware that it is going
to change how things work from what they do today.

In other words, it's not just a "trivial" change, you need to get
approval to change this type of functionality from the Bluetooth
developers/maintainers.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-11-07 18:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-06 22:21 [PATCH 0/2] Bluetooth: Add documentation and replace printk calls Yuran Pereira
2023-11-06 22:24 ` [PATCH 1/2] Bluetooth: Add documentation to exported functions in lib Yuran Pereira
2023-11-06 23:00   ` Bluetooth: Add documentation and replace printk calls bluez.test.bot
2023-11-06 22:26 ` [PATCH 2/2] Bluetooth: Replaces printk with pr_debug in bt_dbg Yuran Pereira
2023-11-07  6:31   ` Greg KH
2023-11-07 16:02     ` Yuran Pereira
2023-11-07 18:13       ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox