* [PATCH v2] bsg: use pr_debug instead of hand craftet macros
@ 2018-01-23 10:55 Johannes Thumshirn
2018-01-23 12:45 ` Joe Perches
2018-01-24 16:24 ` Bart Van Assche
0 siblings, 2 replies; 8+ messages in thread
From: Johannes Thumshirn @ 2018-01-23 10:55 UTC (permalink / raw)
To: Jens Axboe
Cc: Linux Block Layer Mailinglist, Linux Kernel Mailinglist,
Johannes Thumshirn, Joe Perches, Bart Van Assche
Use pr_debug instead of hand craftet macros. This way it is not needed to
re-compile the kernel to enable bsg debug outputs and it's possible to
selectively enable specific prints.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Cc: Joe Perches <joe@perches.com>
Cc: Bart Van Assche <Bart.VanAssche@wdc.com>
---
Changes to v1:
* Aligned arguments (Bart)
* Include bd->name in macro (Joe)
---
block/bsg.c | 40 +++++++++++++++++-----------------------
1 file changed, 17 insertions(+), 23 deletions(-)
diff --git a/block/bsg.c b/block/bsg.c
index 452f94f1c5d4..a1bcbb6ba50b 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -32,6 +32,9 @@
#define BSG_DESCRIPTION "Block layer SCSI generic (bsg) driver"
#define BSG_VERSION "0.4"
+#define bsg_dbg(bd, fmt, ...) \
+ pr_debug("%s: " fmt, (bd)->name, ##__VA_ARGS__)
+
struct bsg_device {
struct request_queue *queue;
spinlock_t lock;
@@ -55,14 +58,6 @@ enum {
#define BSG_DEFAULT_CMDS 64
#define BSG_MAX_DEVS 32768
-#undef BSG_DEBUG
-
-#ifdef BSG_DEBUG
-#define dprintk(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ##args)
-#else
-#define dprintk(fmt, args...)
-#endif
-
static DEFINE_MUTEX(bsg_mutex);
static DEFINE_IDR(bsg_minor_idr);
@@ -123,7 +118,7 @@ static struct bsg_command *bsg_alloc_command(struct bsg_device *bd)
bc->bd = bd;
INIT_LIST_HEAD(&bc->list);
- dprintk("%s: returning free cmd %p\n", bd->name, bc);
+ bsg_dbg(bd, "returning free cmd %p\n", bc);
return bc;
out:
spin_unlock_irq(&bd->lock);
@@ -222,7 +217,8 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, fmode_t mode)
if (!bcd->class_dev)
return ERR_PTR(-ENXIO);
- dprintk("map hdr %llx/%u %llx/%u\n", (unsigned long long) hdr->dout_xferp,
+ bsg_dbg(bd, "map hdr %llx/%u %llx/%u\n",
+ (unsigned long long) hdr->dout_xferp,
hdr->dout_xfer_len, (unsigned long long) hdr->din_xferp,
hdr->din_xfer_len);
@@ -299,8 +295,8 @@ static void bsg_rq_end_io(struct request *rq, blk_status_t status)
struct bsg_device *bd = bc->bd;
unsigned long flags;
- dprintk("%s: finished rq %p bc %p, bio %p\n",
- bd->name, rq, bc, bc->bio);
+ bsg_dbg(bd, "finished rq %p bc %p, bio %p\n",
+ rq, bc, bc->bio);
bc->hdr.duration = jiffies_to_msecs(jiffies - bc->hdr.duration);
@@ -333,7 +329,7 @@ static void bsg_add_command(struct bsg_device *bd, struct request_queue *q,
list_add_tail(&bc->list, &bd->busy_list);
spin_unlock_irq(&bd->lock);
- dprintk("%s: queueing rq %p, bc %p\n", bd->name, rq, bc);
+ bsg_dbg(bd, "queueing rq %p, bc %p\n", rq, bc);
rq->end_io_data = bc;
blk_execute_rq_nowait(q, NULL, rq, at_head, bsg_rq_end_io);
@@ -379,7 +375,7 @@ static struct bsg_command *bsg_get_done_cmd(struct bsg_device *bd)
}
} while (1);
- dprintk("%s: returning done %p\n", bd->name, bc);
+ bsg_dbg(bd, "returning done %p\n", bc);
return bc;
}
@@ -390,7 +386,7 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
struct scsi_request *req = scsi_req(rq);
int ret = 0;
- dprintk("rq %p bio %p 0x%x\n", rq, bio, req->result);
+ pr_debug("rq %p bio %p 0x%x\n", rq, bio, req->result);
/*
* fill in all the output members
*/
@@ -469,7 +465,7 @@ static int bsg_complete_all_commands(struct bsg_device *bd)
struct bsg_command *bc;
int ret, tret;
- dprintk("%s: entered\n", bd->name);
+ bsg_dbg(bd, "entered\n");
/*
* wait for all commands to complete
@@ -572,7 +568,7 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
int ret;
ssize_t bytes_read;
- dprintk("%s: read %zd bytes\n", bd->name, count);
+ bsg_dbg(bd, "read %zd bytes\n", count);
bsg_set_block(bd, file);
@@ -646,7 +642,7 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
ssize_t bytes_written;
int ret;
- dprintk("%s: write %zd bytes\n", bd->name, count);
+ bsg_dbg(bd, "write %zd bytes\n", count);
if (unlikely(uaccess_kernel()))
return -EINVAL;
@@ -664,7 +660,7 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
if (!bytes_written || err_block_err(ret))
bytes_written = ret;
- dprintk("%s: returning %zd\n", bd->name, bytes_written);
+ bsg_dbg(bd, "returning %zd\n", bytes_written);
return bytes_written;
}
@@ -717,7 +713,7 @@ static int bsg_put_device(struct bsg_device *bd)
hlist_del(&bd->dev_list);
mutex_unlock(&bsg_mutex);
- dprintk("%s: tearing down\n", bd->name);
+ bsg_dbg(bd, "tearing down\n");
/*
* close can always block
@@ -744,9 +740,7 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
struct file *file)
{
struct bsg_device *bd;
-#ifdef BSG_DEBUG
unsigned char buf[32];
-#endif
if (!blk_queue_scsi_passthrough(rq)) {
WARN_ONCE(true, "Attempt to register a non-SCSI queue\n");
@@ -771,7 +765,7 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
hlist_add_head(&bd->dev_list, bsg_dev_idx_hash(iminor(inode)));
strncpy(bd->name, dev_name(rq->bsg_dev.class_dev), sizeof(bd->name) - 1);
- dprintk("bound to <%s>, max queue %d\n",
+ bsg_dbg(bd, "bound to <%s>, max queue %d\n",
format_dev_t(buf, inode->i_rdev), bd->max_queue);
mutex_unlock(&bsg_mutex);
--
2.13.6
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-23 10:55 [PATCH v2] bsg: use pr_debug instead of hand craftet macros Johannes Thumshirn
@ 2018-01-23 12:45 ` Joe Perches
2018-01-23 23:12 ` Bart Van Assche
2018-01-24 16:24 ` Bart Van Assche
1 sibling, 1 reply; 8+ messages in thread
From: Joe Perches @ 2018-01-23 12:45 UTC (permalink / raw)
To: Johannes Thumshirn, Jens Axboe
Cc: Linux Block Layer Mailinglist, Linux Kernel Mailinglist,
Bart Van Assche
On Tue, 2018-01-23 at 11:55 +0100, Johannes Thumshirn wrote:
> Use pr_debug instead of hand craftet macros. This way it is not needed to
> re-compile the kernel to enable bsg debug outputs and it's possible to
> selectively enable specific prints.
Perhaps the email subject could be improved to describe
the new macro and as well, this macro, without a pr_fmt
define somewhat above it loses the __func__ output too.
Perhaps add a description of the capability of the
dynamic debug facility to add the function name using +f.
> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
> Cc: Joe Perches <joe@perches.com>
> Cc: Bart Van Assche <Bart.VanAssche@wdc.com>
>
> ---
> Changes to v1:
> * Aligned arguments (Bart)
> * Include bd->name in macro (Joe)
> ---
> block/bsg.c | 40 +++++++++++++++++-----------------------
> 1 file changed, 17 insertions(+), 23 deletions(-)
>
> diff --git a/block/bsg.c b/block/bsg.c
> index 452f94f1c5d4..a1bcbb6ba50b 100644
> --- a/block/bsg.c
> +++ b/block/bsg.c
> @@ -32,6 +32,9 @@
> #define BSG_DESCRIPTION "Block layer SCSI generic (bsg) driver"
> #define BSG_VERSION "0.4"
>
> +#define bsg_dbg(bd, fmt, ...) \
> + pr_debug("%s: " fmt, (bd)->name, ##__VA_ARGS__)
> +
> struct bsg_device {
> struct request_queue *queue;
> spinlock_t lock;
> @@ -55,14 +58,6 @@ enum {
> #define BSG_DEFAULT_CMDS 64
> #define BSG_MAX_DEVS 32768
>
> -#undef BSG_DEBUG
> -
> -#ifdef BSG_DEBUG
> -#define dprintk(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ##args)
> -#else
> -#define dprintk(fmt, args...)
> -#endif
> -
> static DEFINE_MUTEX(bsg_mutex);
> static DEFINE_IDR(bsg_minor_idr);
>
> @@ -123,7 +118,7 @@ static struct bsg_command *bsg_alloc_command(struct bsg_device *bd)
>
> bc->bd = bd;
> INIT_LIST_HEAD(&bc->list);
> - dprintk("%s: returning free cmd %p\n", bd->name, bc);
> + bsg_dbg(bd, "returning free cmd %p\n", bc);
> return bc;
> out:
> spin_unlock_irq(&bd->lock);
> @@ -222,7 +217,8 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, fmode_t mode)
> if (!bcd->class_dev)
> return ERR_PTR(-ENXIO);
>
> - dprintk("map hdr %llx/%u %llx/%u\n", (unsigned long long) hdr->dout_xferp,
> + bsg_dbg(bd, "map hdr %llx/%u %llx/%u\n",
> + (unsigned long long) hdr->dout_xferp,
> hdr->dout_xfer_len, (unsigned long long) hdr->din_xferp,
> hdr->din_xfer_len);
>
> @@ -299,8 +295,8 @@ static void bsg_rq_end_io(struct request *rq, blk_status_t status)
> struct bsg_device *bd = bc->bd;
> unsigned long flags;
>
> - dprintk("%s: finished rq %p bc %p, bio %p\n",
> - bd->name, rq, bc, bc->bio);
> + bsg_dbg(bd, "finished rq %p bc %p, bio %p\n",
> + rq, bc, bc->bio);
>
> bc->hdr.duration = jiffies_to_msecs(jiffies - bc->hdr.duration);
>
> @@ -333,7 +329,7 @@ static void bsg_add_command(struct bsg_device *bd, struct request_queue *q,
> list_add_tail(&bc->list, &bd->busy_list);
> spin_unlock_irq(&bd->lock);
>
> - dprintk("%s: queueing rq %p, bc %p\n", bd->name, rq, bc);
> + bsg_dbg(bd, "queueing rq %p, bc %p\n", rq, bc);
>
> rq->end_io_data = bc;
> blk_execute_rq_nowait(q, NULL, rq, at_head, bsg_rq_end_io);
> @@ -379,7 +375,7 @@ static struct bsg_command *bsg_get_done_cmd(struct bsg_device *bd)
> }
> } while (1);
>
> - dprintk("%s: returning done %p\n", bd->name, bc);
> + bsg_dbg(bd, "returning done %p\n", bc);
>
> return bc;
> }
> @@ -390,7 +386,7 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
> struct scsi_request *req = scsi_req(rq);
> int ret = 0;
>
> - dprintk("rq %p bio %p 0x%x\n", rq, bio, req->result);
> + pr_debug("rq %p bio %p 0x%x\n", rq, bio, req->result);
> /*
> * fill in all the output members
> */
> @@ -469,7 +465,7 @@ static int bsg_complete_all_commands(struct bsg_device *bd)
> struct bsg_command *bc;
> int ret, tret;
>
> - dprintk("%s: entered\n", bd->name);
> + bsg_dbg(bd, "entered\n");
>
> /*
> * wait for all commands to complete
> @@ -572,7 +568,7 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
> int ret;
> ssize_t bytes_read;
>
> - dprintk("%s: read %zd bytes\n", bd->name, count);
> + bsg_dbg(bd, "read %zd bytes\n", count);
>
> bsg_set_block(bd, file);
>
> @@ -646,7 +642,7 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
> ssize_t bytes_written;
> int ret;
>
> - dprintk("%s: write %zd bytes\n", bd->name, count);
> + bsg_dbg(bd, "write %zd bytes\n", count);
>
> if (unlikely(uaccess_kernel()))
> return -EINVAL;
> @@ -664,7 +660,7 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
> if (!bytes_written || err_block_err(ret))
> bytes_written = ret;
>
> - dprintk("%s: returning %zd\n", bd->name, bytes_written);
> + bsg_dbg(bd, "returning %zd\n", bytes_written);
> return bytes_written;
> }
>
> @@ -717,7 +713,7 @@ static int bsg_put_device(struct bsg_device *bd)
> hlist_del(&bd->dev_list);
> mutex_unlock(&bsg_mutex);
>
> - dprintk("%s: tearing down\n", bd->name);
> + bsg_dbg(bd, "tearing down\n");
>
> /*
> * close can always block
> @@ -744,9 +740,7 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
> struct file *file)
> {
> struct bsg_device *bd;
> -#ifdef BSG_DEBUG
> unsigned char buf[32];
> -#endif
>
> if (!blk_queue_scsi_passthrough(rq)) {
> WARN_ONCE(true, "Attempt to register a non-SCSI queue\n");
> @@ -771,7 +765,7 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
> hlist_add_head(&bd->dev_list, bsg_dev_idx_hash(iminor(inode)));
>
> strncpy(bd->name, dev_name(rq->bsg_dev.class_dev), sizeof(bd->name) - 1);
> - dprintk("bound to <%s>, max queue %d\n",
> + bsg_dbg(bd, "bound to <%s>, max queue %d\n",
> format_dev_t(buf, inode->i_rdev), bd->max_queue);
>
> mutex_unlock(&bsg_mutex);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-23 12:45 ` Joe Perches
@ 2018-01-23 23:12 ` Bart Van Assche
2018-01-24 2:53 ` Joe Perches
0 siblings, 1 reply; 8+ messages in thread
From: Bart Van Assche @ 2018-01-23 23:12 UTC (permalink / raw)
To: joe@perches.com, jthumshirn@suse.de, axboe@fb.com
Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org
T24gVHVlLCAyMDE4LTAxLTIzIGF0IDA0OjQ1IC0wODAwLCBKb2UgUGVyY2hlcyB3cm90ZToNCj4g
UGVyaGFwcyB0aGUgZW1haWwgc3ViamVjdCBjb3VsZCBiZSBpbXByb3ZlZCB0byBkZXNjcmliZQ0K
PiB0aGUgbmV3IG1hY3JvIGFuZCBhcyB3ZWxsLCB0aGlzIG1hY3JvLCB3aXRob3V0IGEgcHJfZm10
DQo+IGRlZmluZSBzb21ld2hhdCBhYm92ZSBpdCBsb3NlcyB0aGUgX19mdW5jX18gb3V0cHV0IHRv
by4NCg0KSG1tIC4uLiBJIHRob3VnaHQgdGhhdCB0aGUgcHJfZGVidWcoKSBvdXRwdXQgY2FuIGJl
IGNvbmZpZ3VyZWQgdG8gaW5jbHVkZQ0KdGhlIGZ1bmN0aW9uIG5hbWUgKF9fZnVuY19fKT8gRnJv
bQ0KaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvZHlu
YW1pYy1kZWJ1Zy1ob3d0by5odG1sOg0KDQpUaGUgZmxhZ3MgYXJlOg0KDQpwICAgIGVuYWJsZXMg
dGhlIHByX2RlYnVnKCkgY2FsbHNpdGUuDQpmICAgIEluY2x1ZGUgdGhlIGZ1bmN0aW9uIG5hbWUg
aW4gdGhlIHByaW50ZWQgbWVzc2FnZQ0KbCAgICBJbmNsdWRlIGxpbmUgbnVtYmVyIGluIHRoZSBw
cmludGVkIG1lc3NhZ2UNCm0gICAgSW5jbHVkZSBtb2R1bGUgbmFtZSBpbiB0aGUgcHJpbnRlZCBt
ZXNzYWdlDQp0ICAgIEluY2x1ZGUgdGhyZWFkIElEIGluIG1lc3NhZ2VzIG5vdCBnZW5lcmF0ZWQg
ZnJvbSBpbnRlcnJ1cHQgY29udGV4dA0KXyAgICBObyBmbGFncyBhcmUgc2V0LiAoT3InZCB3aXRo
IG90aGVycyBvbiBpbnB1dCkNCg0KQmFydC4=
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-23 23:12 ` Bart Van Assche
@ 2018-01-24 2:53 ` Joe Perches
2018-01-24 8:03 ` Johannes Thumshirn
0 siblings, 1 reply; 8+ messages in thread
From: Joe Perches @ 2018-01-24 2:53 UTC (permalink / raw)
To: Bart Van Assche, jthumshirn@suse.de, axboe@fb.com
Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org
On Tue, 2018-01-23 at 23:12 +0000, Bart Van Assche wrote:
> On Tue, 2018-01-23 at 04:45 -0800, Joe Perches wrote:
> > Perhaps the email subject could be improved to describe
> > the new macro and as well, this macro, without a pr_fmt
> > define somewhat above it loses the __func__ output too.
>
> Hmm ... I thought that the pr_debug() output can be configured to include
> the function name (__func__)? From
Exactly right.
> https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html:
which is what I wrote when I said use +f.
It's just nice to mention these changes in the
commit message.
cheers, Joe
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-24 2:53 ` Joe Perches
@ 2018-01-24 8:03 ` Johannes Thumshirn
2018-01-24 11:13 ` Joe Perches
0 siblings, 1 reply; 8+ messages in thread
From: Johannes Thumshirn @ 2018-01-24 8:03 UTC (permalink / raw)
To: Joe Perches
Cc: Bart Van Assche, axboe@fb.com, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org
On Tue, Jan 23, 2018 at 06:53:18PM -0800, Joe Perches wrote:
> On Tue, 2018-01-23 at 23:12 +0000, Bart Van Assche wrote:
> > On Tue, 2018-01-23 at 04:45 -0800, Joe Perches wrote:
> > > Perhaps the email subject could be improved to describe
> > > the new macro and as well, this macro, without a pr_fmt
> > > define somewhat above it loses the __func__ output too.
> >
> > Hmm ... I thought that the pr_debug() output can be configured to include
> > the function name (__func__)? From
>
> Exactly right.
>
> > https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html:
>
> which is what I wrote when I said use +f.
>
> It's just nice to mention these changes in the
> commit message.
Sorry Joe but this slowly approaches the bikeshedding area. Why should I
duplicate the dynamic debug howto?
This was literally a drive-by patch I did while riding on the subway to the
office which was indented to ease debugging problems in the field for our (and
other) support engineers (and they are usually well aware of the +f switch).
Byte,
Johannes
--
Johannes Thumshirn Storage
jthumshirn@suse.de +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N�rnberg
GF: Felix Imend�rffer, Jane Smithard, Graham Norton
HRB 21284 (AG N�rnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-24 8:03 ` Johannes Thumshirn
@ 2018-01-24 11:13 ` Joe Perches
0 siblings, 0 replies; 8+ messages in thread
From: Joe Perches @ 2018-01-24 11:13 UTC (permalink / raw)
To: Johannes Thumshirn
Cc: Bart Van Assche, axboe@fb.com, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org
On Wed, 2018-01-24 at 09:03 +0100, Johannes Thumshirn wrote:
> On Tue, Jan 23, 2018 at 06:53:18PM -0800, Joe Perches wrote:
> > On Tue, 2018-01-23 at 23:12 +0000, Bart Van Assche wrote:
> > > On Tue, 2018-01-23 at 04:45 -0800, Joe Perches wrote:
> > > > Perhaps the email subject could be improved to describe
> > > > the new macro and as well, this macro, without a pr_fmt
> > > > define somewhat above it loses the __func__ output too.
> > >
> > > Hmm ... I thought that the pr_debug() output can be configured to include
> > > the function name (__func__)? From
> >
> > Exactly right.
> >
> > > https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html:
> >
> > which is what I wrote when I said use +f.
> >
> > It's just nice to mention these changes in the
> > commit message.
>
> Sorry Joe but this slowly approaches the bikeshedding area. Why should I
> duplicate the dynamic debug howto?
Up to you if you want your commit messages to be
more descriptive of the changes you are making.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-23 10:55 [PATCH v2] bsg: use pr_debug instead of hand craftet macros Johannes Thumshirn
2018-01-23 12:45 ` Joe Perches
@ 2018-01-24 16:24 ` Bart Van Assche
2018-01-24 16:52 ` Jens Axboe
1 sibling, 1 reply; 8+ messages in thread
From: Bart Van Assche @ 2018-01-24 16:24 UTC (permalink / raw)
To: jthumshirn@suse.de, axboe@fb.com
Cc: joe@perches.com, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org
T24gVHVlLCAyMDE4LTAxLTIzIGF0IDExOjU1ICswMTAwLCBKb2hhbm5lcyBUaHVtc2hpcm4gd3Jv
dGU6DQo+IFVzZSBwcl9kZWJ1ZyBpbnN0ZWFkIG9mIGhhbmQgY3JhZnRldCBtYWNyb3MuIFRoaXMg
d2F5IGl0IGlzIG5vdCBuZWVkZWQgdG8NCj4gcmUtY29tcGlsZSB0aGUga2VybmVsIHRvIGVuYWJs
ZSBic2cgZGVidWcgb3V0cHV0cyBhbmQgaXQncyBwb3NzaWJsZSB0bw0KPiBzZWxlY3RpdmVseSBl
bmFibGUgc3BlY2lmaWMgcHJpbnRzLg0KDQpSZXZpZXdlZC1ieTogQmFydCBWYW4gQXNzY2hlIDxi
YXJ0LnZhbmFzc2NoZUB3ZGMuY29tPg0KDQoNCg0K
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] bsg: use pr_debug instead of hand craftet macros
2018-01-24 16:24 ` Bart Van Assche
@ 2018-01-24 16:52 ` Jens Axboe
0 siblings, 0 replies; 8+ messages in thread
From: Jens Axboe @ 2018-01-24 16:52 UTC (permalink / raw)
To: Bart Van Assche, jthumshirn@suse.de
Cc: joe@perches.com, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org
On 1/24/18 9:24 AM, Bart Van Assche wrote:
> On Tue, 2018-01-23 at 11:55 +0100, Johannes Thumshirn wrote:
>> Use pr_debug instead of hand craftet macros. This way it is not needed to
>> re-compile the kernel to enable bsg debug outputs and it's possible to
>> selectively enable specific prints.
>
> Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Added, thanks Johannes.
--
Jens Axboe
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-01-24 16:52 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-23 10:55 [PATCH v2] bsg: use pr_debug instead of hand craftet macros Johannes Thumshirn
2018-01-23 12:45 ` Joe Perches
2018-01-23 23:12 ` Bart Van Assche
2018-01-24 2:53 ` Joe Perches
2018-01-24 8:03 ` Johannes Thumshirn
2018-01-24 11:13 ` Joe Perches
2018-01-24 16:24 ` Bart Van Assche
2018-01-24 16:52 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox