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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <54FDA6A4.1090202@huawei.com>
Date:	Mon, 9 Mar 2015 21:56:52 +0800
From:	"Chentao (Boby)" <boby.chen@...wei.com>
To:	Juergen Gross <jgross@...e.com>, <konrad.wilk@...cle.com>,
	<boris.ostrovsky@...cle.com>, <david.vrabel@...rix.com>
CC:	<xen-devel@...ts.xenproject.org>, <linux-scsi@...r.kernel.org>,
	<linux-kernel@...r.kernel.org>, <wu.wubin@...wei.com>,
	<rudy.zhangmin@...wei.com>
Subject: Re: [PATCH v3] xen-scsiback: define a pr_fmt macro with xen-pvscsi



On 2015/3/6 20:53, Juergen Gross wrote:
> On 03/06/2015 09:34 PM, Tao Chen wrote:
>> Add the {xen-pvscsi: } prefix in pr_fmt and remove DPRINTK, then
>> replace all DPRINTK with pr_debug.
>>
>> Also fixed up some comments just as eliminate redundant whitespace
>> and format the code.
>>
>> These will make the code easier to read.
>>
>> Signed-off-by: Tao Chen <boby.chen@...wei.com>
>> ---
>>   drivers/xen/xen-scsiback.c | 72
>> ++++++++++++++++++++++++----------------------
>>   1 file changed, 37 insertions(+), 35 deletions(-)
>>
>> diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
>> index 9faca6a..919397e 100644
>> --- a/drivers/xen/xen-scsiback.c
>> +++ b/drivers/xen/xen-scsiback.c
>> @@ -69,8 +69,10 @@
>>   #include <xen/interface/grant_table.h>
>>   #include <xen/interface/io/vscsiif.h>
>>
>> -#define DPRINTK(_f, _a...)            \
>> -    pr_debug("(file=%s, line=%d) " _f, __FILE__ , __LINE__ , ## _a)
>> +#ifdef pr_fmt
>> +#undef pr_fmt
>> +#endif
>> +#define pr_fmt(fmt) "xen-pvscsi: " fmt
>
> Have you looked around in the kernel how pr_fmt() is used normally?
> You can spare 3 lines by placing the #define above all #include lines.
>

Many thanks for pointing out my mistake. I will correct it.

>>
>>   #define VSCSI_VERSION    "v0.1"
>>   #define VSCSI_NAMELEN    32
>> @@ -271,7 +273,7 @@ static void scsiback_print_status(char
>> *sense_buffer, int errors,
>>   {
>>       struct scsiback_tpg *tpg = pending_req->v2p->tpg;
>>
>> -    pr_err("xen-pvscsi[%s:%d] cmnd[0]=%02x -> st=%02x msg=%02x
>> host=%02x drv=%02x\n",
>> +    pr_err("[%s:%d] cmnd[0]=%02x -> st=%02x msg=%02x host=%02x
>> drv=%02x\n",
>>              tpg->tport->tport_name, pending_req->v2p->lun,
>>              pending_req->cmnd[0], status_byte(errors), msg_byte(errors),
>>              host_byte(errors), driver_byte(errors));
>> @@ -427,7 +429,7 @@ static int scsiback_gnttab_data_map_batch(struct
>> gnttab_map_grant_ref *map,
>>       BUG_ON(err);
>>       for (i = 0; i < cnt; i++) {
>>           if (unlikely(map[i].status != GNTST_okay)) {
>> -            pr_err("xen-pvscsi: invalid buffer -- could not remap
>> it\n");
>> +            pr_err("invalid buffer -- could not remap it\n");
>>               map[i].handle = SCSIBACK_INVALID_HANDLE;
>>               err = -ENOMEM;
>>           } else {
>> @@ -449,7 +451,7 @@ static int scsiback_gnttab_data_map_list(struct
>> vscsibk_pend *pending_req,
>>       for (i = 0; i < cnt; i++) {
>>           if (get_free_page(pg + mapcount)) {
>>               put_free_pages(pg, mapcount);
>> -            pr_err("xen-pvscsi: no grant page\n");
>> +            pr_err("no grant page\n");
>>               return -ENOMEM;
>>           }
>>           gnttab_set_map_op(&map[mapcount], vaddr_page(pg[mapcount]),
>> @@ -492,7 +494,7 @@ static int scsiback_gnttab_data_map(struct
>> vscsiif_request *ring_req,
>>           return 0;
>>
>>       if (nr_segments > VSCSIIF_SG_TABLESIZE) {
>> -        DPRINTK("xen-pvscsi: invalid parameter nr_seg = %d\n",
>> +        pr_debug("invalid parameter nr_seg = %d\n",
>>               ring_req->nr_segments);
>>           return -EINVAL;
>>       }
>> @@ -516,13 +518,13 @@ static int scsiback_gnttab_data_map(struct
>> vscsiif_request *ring_req,
>>               nr_segments += n_segs;
>>           }
>>           if (nr_segments > SG_ALL) {
>> -            DPRINTK("xen-pvscsi: invalid nr_seg = %d\n",
>> +            pr_debug("invalid nr_seg = %d\n",
>>                   nr_segments);
>
> Above 2 lines fit into a single one now.
>

I will correct it.

>>               return -EINVAL;
>>           }
>>       }
>>
>> -    /* free of (sgl) in fast_flush_area()*/
>> +    /* free of (sgl) in fast_flush_area() */
>>       pending_req->sgl = kmalloc_array(nr_segments,
>>                       sizeof(struct scatterlist), GFP_KERNEL);
>>       if (!pending_req->sgl)
>> @@ -679,7 +681,7 @@ static int prepare_pending_reqs(struct
>> vscsibk_info *info,
>>       v2p = scsiback_do_translation(info, &vir);
>>       if (!v2p) {
>>           pending_req->v2p = NULL;
>> -        DPRINTK("xen-pvscsi: doesn't exist.\n");
>> +        pr_debug("doesn't exist.\n");
>
> Without the line information this message is pretty meaningless.

For this suggestion, I want to modify this print like below

pr_debug("the v2p of (chn:%d, tgt:%d, lun:%d) doesn't exist.\n",
                  vir.chn, vir.tgt, vir.lun);

What do you think, Juergen?

>
>>           return -ENODEV;
>>       }
>>       pending_req->v2p = v2p;
>> @@ -690,14 +692,14 @@ static int prepare_pending_reqs(struct
>> vscsibk_info *info,
>>           (pending_req->sc_data_direction != DMA_TO_DEVICE) &&
>>           (pending_req->sc_data_direction != DMA_FROM_DEVICE) &&
>>           (pending_req->sc_data_direction != DMA_NONE)) {
>> -        DPRINTK("xen-pvscsi: invalid parameter data_dir = %d\n",
>> +        pr_debug("invalid parameter data_dir = %d\n",
>>               pending_req->sc_data_direction);
>>           return -EINVAL;
>>       }
>>
>>       pending_req->cmd_len = ring_req->cmd_len;
>>       if (pending_req->cmd_len > VSCSIIF_MAX_COMMAND_SIZE) {
>> -        DPRINTK("xen-pvscsi: invalid parameter cmd_len = %d\n",
>> +        pr_debug("invalid parameter cmd_len = %d\n",
>>               pending_req->cmd_len);
>>           return -EINVAL;
>>       }
>> @@ -721,7 +723,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info
>> *info)
>>
>>       if (RING_REQUEST_PROD_OVERFLOW(ring, rp)) {
>>           rc = ring->rsp_prod_pvt;
>> -        pr_warn("xen-pvscsi: Dom%d provided bogus ring requests (%#x
>> - %#x = %u). Halting ring processing\n",
>> +        pr_warn("Dom%d provided bogus ring requests (%#x - %#x = %u).
>> Halting ring processing\n",
>>                  info->domid, rp, rc, rp - rc);
>>           info->ring_error = 1;
>>           return 0;
>> @@ -772,7 +774,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info
>> *info)
>>               scsiback_device_action(pending_req, TMR_LUN_RESET, 0);
>>               break;
>>           default:
>> -            pr_err_ratelimited("xen-pvscsi: invalid request\n");
>> +            pr_err_ratelimited("invalid request\n");
>>               scsiback_do_resp_with_sense(NULL, DRIVER_ERROR << 24,
>>                               0, pending_req);
>>               kmem_cache_free(scsiback_cachep, pending_req);
>> @@ -874,14 +876,14 @@ static int scsiback_add_translation_entry(struct
>> vscsibk_info *info,
>>
>>       lunp = strrchr(phy, ':');
>>       if (!lunp) {
>> -        pr_err("xen-pvscsi: illegal format of physical device %s\n",
>> +        pr_err("illegal format of physical device %s\n",
>>               phy);
>
> Merge lines.

I will correct it.

>
>>           return -EINVAL;
>>       }
>>       *lunp = 0;
>>       lunp++;
>>       if (kstrtouint(lunp, 10, &lun) || lun >=
>> TRANSPORT_MAX_LUNS_PER_TPG) {
>> -        pr_err("xen-pvscsi: lun number not valid: %s\n", lunp);
>> +        pr_err("lun number not valid: %s\n", lunp);
>>           return -EINVAL;
>>       }
>>
>> @@ -909,7 +911,7 @@ static int scsiback_add_translation_entry(struct
>> vscsibk_info *info,
>>       mutex_unlock(&scsiback_mutex);
>>
>>       if (!tpg) {
>> -        pr_err("xen-pvscsi: %s:%d %s\n", phy, lun, error);
>> +        pr_err("%s:%d %s\n", phy, lun, error);
>>           return -ENODEV;
>>       }
>>
>> @@ -926,7 +928,7 @@ static int scsiback_add_translation_entry(struct
>> vscsibk_info *info,
>>           if ((entry->v.chn == v->chn) &&
>>               (entry->v.tgt == v->tgt) &&
>>               (entry->v.lun == v->lun)) {
>> -            pr_warn("xen-pvscsi: Virtual ID is already used.
>> Assignment was not performed.\n");
>> +            pr_warn("Virtual ID is already used. Assignment was not
>> performed.\n");
>>               err = -EEXIST;
>>               goto out;
>>           }
>> @@ -997,7 +999,7 @@ static void scsiback_do_add_lun(struct
>> vscsibk_info *info, const char *state,
>>       if (!scsiback_add_translation_entry(info, phy, vir)) {
>>           if (xenbus_printf(XBT_NIL, info->dev->nodename, state,
>>                     "%d", XenbusStateInitialised)) {
>> -            pr_err("xen-pvscsi: xenbus_printf error %s\n", state);
>> +            pr_err("xenbus_printf error %s\n", state);
>>               scsiback_del_translation_entry(info, vir);
>>           }
>>       } else {
>> @@ -1012,7 +1014,7 @@ static void scsiback_do_del_lun(struct
>> vscsibk_info *info, const char *state,
>>       if (!scsiback_del_translation_entry(info, vir)) {
>>           if (xenbus_printf(XBT_NIL, info->dev->nodename, state,
>>                     "%d", XenbusStateClosed))
>> -            pr_err("xen-pvscsi: xenbus_printf error %s\n", state);
>> +            pr_err("xenbus_printf error %s\n", state);
>>       }
>>   }
>>
>> @@ -1071,7 +1073,7 @@ static void scsiback_do_1lun_hotplug(struct
>> vscsibk_info *info, int op,
>>               /* modify vscsi-devs/dev-x/state */
>>               if (xenbus_printf(XBT_NIL, dev->nodename, state,
>>                         "%d", XenbusStateConnected)) {
>> -                pr_err("xen-pvscsi: xenbus_printf error %s\n",
>> +                pr_err("xenbus_printf error %s\n",
>>                          str);
>
> Merge lines.

I will correct it.

>
>>                   scsiback_del_translation_entry(info, &vir);
>>                   xenbus_printf(XBT_NIL, dev->nodename, state,
>> @@ -1079,7 +1081,7 @@ static void scsiback_do_1lun_hotplug(struct
>> vscsibk_info *info, int op,
>>               }
>>           }
>>           break;
>> -    /*When it is necessary, processing is added here.*/
>> +    /* When it is necessary, processing is added here. */
>>       default:
>>           break;
>>       }
>> @@ -1196,7 +1198,7 @@ static int scsiback_probe(struct xenbus_device
>> *dev,
>>       struct vscsibk_info *info = kzalloc(sizeof(struct vscsibk_info),
>>                           GFP_KERNEL);
>>
>> -    DPRINTK("%p %d\n", dev, dev->otherend_id);
>> +    pr_debug("%p %d\n", dev, dev->otherend_id);
>
> Meaningless without more info.
>

For this suggestion, I want to modify this print like below

pr_debug("%s %p %d\n", __func__, dev, dev->otherend_id);

What do you think, Juergen?

>
> Juergen
>
>>
>>       if (!info) {
>>           xenbus_dev_fatal(dev, -ENOMEM, "allocating backend structure");
>> @@ -1227,7 +1229,7 @@ static int scsiback_probe(struct xenbus_device
>> *dev,
>>       return 0;
>>
>>   fail:
>> -    pr_warn("xen-pvscsi: %s failed\n", __func__);
>> +    pr_warn("%s failed\n", __func__);
>>       scsiback_remove(dev);
>>
>>       return err;
>> @@ -1432,7 +1434,7 @@ check_len:
>>       }
>>       snprintf(&tport->tport_name[0], VSCSI_NAMELEN, "%s", &name[off]);
>>
>> -    pr_debug("xen-pvscsi: Allocated emulated Target %s Address: %s\n",
>> +    pr_debug("Allocated emulated Target %s Address: %s\n",
>>            scsiback_dump_proto_id(tport), name);
>>
>>       return &tport->tport_wwn;
>> @@ -1443,7 +1445,7 @@ static void scsiback_drop_tport(struct se_wwn *wwn)
>>       struct scsiback_tport *tport = container_of(wwn,
>>                   struct scsiback_tport, tport_wwn);
>>
>> -    pr_debug("xen-pvscsi: Deallocating emulated Target %s Address:
>> %s\n",
>> +    pr_debug("Deallocating emulated Target %s Address: %s\n",
>>            scsiback_dump_proto_id(tport), tport->tport_name);
>>
>>       kfree(tport);
>> @@ -1470,8 +1472,8 @@ static u32 scsiback_tpg_get_inst_index(struct
>> se_portal_group *se_tpg)
>>   static int scsiback_check_stop_free(struct se_cmd *se_cmd)
>>   {
>>       /*
>> -     * Do not release struct se_cmd's containing a valid TMR
>> -     * pointer.  These will be released directly in
>> scsiback_device_action()
>> +     * Do not release struct se_cmd's containing a valid TMR pointer.
>> +     * These will be released directly in scsiback_device_action()
>>        * with transport_generic_free_cmd().
>>        */
>>       if (se_cmd->se_cmd_flags & SCF_SCSI_TMR_CDB)
>> @@ -1637,7 +1639,7 @@ static int scsiback_make_nexus(struct
>> scsiback_tpg *tpg,
>>           return -ENOMEM;
>>       }
>>       /*
>> -     *  Initialize the struct se_session pointer
>> +     * Initialize the struct se_session pointer
>>        */
>>       tv_nexus->tvn_se_sess = transport_init_session(TARGET_PROT_NORMAL);
>>       if (IS_ERR(tv_nexus->tvn_se_sess)) {
>> @@ -1708,7 +1710,7 @@ static int scsiback_drop_nexus(struct
>> scsiback_tpg *tpg)
>>           return -EBUSY;
>>       }
>>
>> -    pr_debug("xen-pvscsi: Removing I_T Nexus to emulated %s Initiator
>> Port: %s\n",
>> +    pr_debug("Removing I_T Nexus to emulated %s Initiator Port: %s\n",
>>           scsiback_dump_proto_id(tpg->tport),
>>           tv_nexus->tvn_se_sess->se_node_acl->initiatorname);
>>
>> @@ -1754,7 +1756,7 @@ static ssize_t scsiback_tpg_store_nexus(struct
>> se_portal_group *se_tpg,
>>       unsigned char i_port[VSCSI_NAMELEN], *ptr, *port_ptr;
>>       int ret;
>>       /*
>> -     * Shutdown the active I_T nexus if 'NULL' is passed..
>> +     * Shutdown the active I_T nexus if 'NULL' is passed.
>>        */
>>       if (!strncmp(page, "NULL", 4)) {
>>           ret = scsiback_drop_nexus(tpg);
>> @@ -1925,7 +1927,7 @@ static void scsiback_drop_tpg(struct
>> se_portal_group *se_tpg)
>>        */
>>       scsiback_drop_nexus(tpg);
>>       /*
>> -     * Deregister the se_tpg from TCM..
>> +     * Deregister the se_tpg from TCM.
>>        */
>>       core_tpg_deregister(se_tpg);
>>       kfree(tpg);
>> @@ -1995,7 +1997,7 @@ static int scsiback_register_configfs(void)
>>       struct target_fabric_configfs *fabric;
>>       int ret;
>>
>> -    pr_debug("xen-pvscsi: fabric module %s on %s/%s on "UTS_RELEASE"\n",
>> +    pr_debug("fabric module %s on %s/%s on "UTS_RELEASE"\n",
>>            VSCSI_VERSION, utsname()->sysname, utsname()->machine);
>>       /*
>>        * Register the top level struct config_item_type with TCM core
>> @@ -2032,7 +2034,7 @@ static int scsiback_register_configfs(void)
>>        * Setup our local pointer to *fabric
>>        */
>>       scsiback_fabric_configfs = fabric;
>> -    pr_debug("xen-pvscsi: Set fabric -> scsiback_fabric_configfs\n");
>> +    pr_debug("Set fabric -> scsiback_fabric_configfs\n");
>>       return 0;
>>   };
>>
>> @@ -2043,7 +2045,7 @@ static void scsiback_deregister_configfs(void)
>>
>>       target_fabric_configfs_deregister(scsiback_fabric_configfs);
>>       scsiback_fabric_configfs = NULL;
>> -    pr_debug("xen-pvscsi: Cleared scsiback_fabric_configfs\n");
>> +    pr_debug("Cleared scsiback_fabric_configfs\n");
>>   };
>>
>>   static const struct xenbus_device_id scsiback_ids[] = {
>> @@ -2094,7 +2096,7 @@ out_unregister_xenbus:
>>       xenbus_unregister_driver(&scsiback_driver);
>>   out_cache_destroy:
>>       kmem_cache_destroy(scsiback_cachep);
>> -    pr_err("xen-pvscsi: %s: error %d\n", __func__, ret);
>> +    pr_err("%s: error %d\n", __func__, ret);
>>       return ret;
>>   }
>>
>>
>
>
> .
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ