Re: [PATCH] lib/vsprintf.c: remove %Z support

From: Andy Shevchenko
Date: Wed Jan 04 2017 - 04:33:24 EST


On Wed, Jan 4, 2017 at 1:01 AM, Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
> Now that %z is standartised in C99 there is no reason to support %Z.
> Unlike %L it doesn't even make format strings smaller.

For the following files:
Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>

> drivers/net/ethernet/cadence/macb.c | 2
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2
> drivers/net/wireless/intel/iwlegacy/4965-mac.c | 30 ++---
> drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 16 +--

> kernel/relay.c | 2
> lib/vsprintf.c | 8 -
> mm/dmapool.c | 2

> sound/soc/soc-core.c | 2

And couple of comment below.

> --- a/drivers/net/ethernet/cadence/macb.c
> +++ b/drivers/net/ethernet/cadence/macb.c
> @@ -1566,7 +1566,7 @@ static void macb_init_rx_buffer_size(struct macb *bp, size_t size)
> }
> }
>
> - netdev_dbg(bp->dev, "mtu [%u] rx_buffer_size [%Zu]\n",
> + netdev_dbg(bp->dev, "mtu [%u] rx_buffer_size [%zu]\n",
> bp->dev->mtu, bp->rx_buffer_size);
> }

> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -4878,7 +4878,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
> kfree(af_params);
> } else {
> brcmf_dbg(TRACE, "Unhandled, fc=%04x!!\n", mgmt->frame_control);
> - brcmf_dbg_hex_dump(true, buf, len, "payload, len=%Zu\n", len);
> + brcmf_dbg_hex_dump(true, buf, len, "payload, len=%zu\n", len);
> }
>
> exit:
> --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c
> +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
> @@ -4855,39 +4855,39 @@ il4965_ucode_callback(const struct firmware *ucode_raw, void *context)
> */
>
> D_INFO("f/w package hdr ucode version raw = 0x%x\n", il->ucode_ver);
> - D_INFO("f/w package hdr runtime inst size = %Zd\n", pieces.inst_size);
> - D_INFO("f/w package hdr runtime data size = %Zd\n", pieces.data_size);
> - D_INFO("f/w package hdr init inst size = %Zd\n", pieces.init_size);
> - D_INFO("f/w package hdr init data size = %Zd\n", pieces.init_data_size);
> - D_INFO("f/w package hdr boot inst size = %Zd\n", pieces.boot_size);
> + D_INFO("f/w package hdr runtime inst size = %zd\n", pieces.inst_size);
> + D_INFO("f/w package hdr runtime data size = %zd\n", pieces.data_size);
> + D_INFO("f/w package hdr init inst size = %zd\n", pieces.init_size);
> + D_INFO("f/w package hdr init data size = %zd\n", pieces.init_data_size);
> + D_INFO("f/w package hdr boot inst size = %zd\n", pieces.boot_size);
>
> /* Verify that uCode images will fit in card's SRAM */
> if (pieces.inst_size > il->hw_params.max_inst_size) {
> - IL_ERR("uCode instr len %Zd too large to fit in\n",
> + IL_ERR("uCode instr len %zd too large to fit in\n",
> pieces.inst_size);
> goto try_again;
> }
>
> if (pieces.data_size > il->hw_params.max_data_size) {
> - IL_ERR("uCode data len %Zd too large to fit in\n",
> + IL_ERR("uCode data len %zd too large to fit in\n",
> pieces.data_size);
> goto try_again;
> }
>
> if (pieces.init_size > il->hw_params.max_inst_size) {
> - IL_ERR("uCode init instr len %Zd too large to fit in\n",
> + IL_ERR("uCode init instr len %zd too large to fit in\n",
> pieces.init_size);
> goto try_again;
> }
>
> if (pieces.init_data_size > il->hw_params.max_data_size) {
> - IL_ERR("uCode init data len %Zd too large to fit in\n",
> + IL_ERR("uCode init data len %zd too large to fit in\n",
> pieces.init_data_size);
> goto try_again;
> }
>
> if (pieces.boot_size > il->hw_params.max_bsm_size) {
> - IL_ERR("uCode boot instr len %Zd too large to fit in\n",
> + IL_ERR("uCode boot instr len %zd too large to fit in\n",
> pieces.boot_size);
> goto try_again;
> }
> @@ -4938,7 +4938,7 @@ il4965_ucode_callback(const struct firmware *ucode_raw, void *context)
> /* Copy images into buffers for card's bus-master reads ... */
>
> /* Runtime instructions (first block of data in file) */
> - D_INFO("Copying (but not loading) uCode instr len %Zd\n",
> + D_INFO("Copying (but not loading) uCode instr len %zd\n",
> pieces.inst_size);
> memcpy(il->ucode_code.v_addr, pieces.inst, pieces.inst_size);
>
> @@ -4949,28 +4949,28 @@ il4965_ucode_callback(const struct firmware *ucode_raw, void *context)
> * Runtime data
> * NOTE: Copy into backup buffer will be done in il_up()
> */
> - D_INFO("Copying (but not loading) uCode data len %Zd\n",
> + D_INFO("Copying (but not loading) uCode data len %zd\n",
> pieces.data_size);
> memcpy(il->ucode_data.v_addr, pieces.data, pieces.data_size);
> memcpy(il->ucode_data_backup.v_addr, pieces.data, pieces.data_size);
>
> /* Initialization instructions */
> if (pieces.init_size) {
> - D_INFO("Copying (but not loading) init instr len %Zd\n",
> + D_INFO("Copying (but not loading) init instr len %zd\n",
> pieces.init_size);
> memcpy(il->ucode_init.v_addr, pieces.init, pieces.init_size);
> }
>
> /* Initialization data */
> if (pieces.init_data_size) {
> - D_INFO("Copying (but not loading) init data len %Zd\n",
> + D_INFO("Copying (but not loading) init data len %zd\n",
> pieces.init_data_size);
> memcpy(il->ucode_init_data.v_addr, pieces.init_data,
> pieces.init_data_size);
> }
>
> /* Bootstrap instructions */
> - D_INFO("Copying (but not loading) boot instr len %Zd\n",
> + D_INFO("Copying (but not loading) boot instr len %zd\n",
> pieces.boot_size);
> memcpy(il->ucode_boot.v_addr, pieces.boot, pieces.boot_size);
>
> --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> @@ -1096,21 +1096,21 @@ static int validate_sec_sizes(struct iwl_drv *drv,
> struct iwl_firmware_pieces *pieces,
> const struct iwl_cfg *cfg)
> {
> - IWL_DEBUG_INFO(drv, "f/w package hdr runtime inst size = %Zd\n",
> + IWL_DEBUG_INFO(drv, "f/w package hdr runtime inst size = %zd\n",
> get_sec_size(pieces, IWL_UCODE_REGULAR,
> IWL_UCODE_SECTION_INST));
> - IWL_DEBUG_INFO(drv, "f/w package hdr runtime data size = %Zd\n",
> + IWL_DEBUG_INFO(drv, "f/w package hdr runtime data size = %zd\n",
> get_sec_size(pieces, IWL_UCODE_REGULAR,
> IWL_UCODE_SECTION_DATA));
> - IWL_DEBUG_INFO(drv, "f/w package hdr init inst size = %Zd\n",
> + IWL_DEBUG_INFO(drv, "f/w package hdr init inst size = %zd\n",
> get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST));
> - IWL_DEBUG_INFO(drv, "f/w package hdr init data size = %Zd\n",
> + IWL_DEBUG_INFO(drv, "f/w package hdr init data size = %zd\n",
> get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA));
>
> /* Verify that uCode images will fit in card's SRAM. */
> if (get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST) >
> cfg->max_inst_size) {
> - IWL_ERR(drv, "uCode instr len %Zd too large to fit in\n",
> + IWL_ERR(drv, "uCode instr len %zd too large to fit in\n",
> get_sec_size(pieces, IWL_UCODE_REGULAR,
> IWL_UCODE_SECTION_INST));
> return -1;
> @@ -1118,7 +1118,7 @@ static int validate_sec_sizes(struct iwl_drv *drv,
>
> if (get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA) >
> cfg->max_data_size) {
> - IWL_ERR(drv, "uCode data len %Zd too large to fit in\n",
> + IWL_ERR(drv, "uCode data len %zd too large to fit in\n",
> get_sec_size(pieces, IWL_UCODE_REGULAR,
> IWL_UCODE_SECTION_DATA));
> return -1;
> @@ -1126,7 +1126,7 @@ static int validate_sec_sizes(struct iwl_drv *drv,
>
> if (get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST) >
> cfg->max_inst_size) {
> - IWL_ERR(drv, "uCode init instr len %Zd too large to fit in\n",
> + IWL_ERR(drv, "uCode init instr len %zd too large to fit in\n",
> get_sec_size(pieces, IWL_UCODE_INIT,
> IWL_UCODE_SECTION_INST));
> return -1;
> @@ -1134,7 +1134,7 @@ static int validate_sec_sizes(struct iwl_drv *drv,
>
> if (get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA) >
> cfg->max_data_size) {
> - IWL_ERR(drv, "uCode init data len %Zd too large to fit in\n",
> + IWL_ERR(drv, "uCode init data len %zd too large to fit in\n",
> get_sec_size(pieces, IWL_UCODE_REGULAR,
> IWL_UCODE_SECTION_DATA));
> return -1;

> --- a/kernel/relay.c
> +++ b/kernel/relay.c
> @@ -847,7 +847,7 @@ void relay_close(struct rchan *chan)
>
> if (chan->last_toobig)
> printk(KERN_WARNING "relay: one or more items not logged "
> - "[item size (%Zd) > sub-buffer size (%Zd)]\n",
> + "[item size (%zd) > sub-buffer size (%zd)]\n",
> chan->last_toobig, chan->subbuf_size);
>
> list_del(&chan->list);

> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> @@ -1739,6 +1739,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
> * 'h', 'l', or 'L' for integer fields
> * 'z' support added 23/7/1999 S.H.
> * 'z' changed to 'Z' --davidm 1/25/99
> + * 'Z' changed to 'z' --adobriyan 2017-01-25
> * 't' added for ptrdiff_t
> *
> * @fmt: the format string
> @@ -1838,7 +1839,7 @@ int format_decode(const char *fmt, struct printf_spec *spec)
> /* get the conversion qualifier */
> qualifier = 0;

> if (*fmt == 'h' || _tolower(*fmt) == 'l' ||
> - _tolower(*fmt) == 'z' || *fmt == 't') {
> + *fmt == 'z' || *fmt == 't') {

Can it be one line?

> @@ -2657,7 +2658,7 @@ int vsscanf(const char *buf, const char *fmt, va_list args)
> /* get conversion qualifier */
> qualifier = -1;

> if (*fmt == 'h' || _tolower(*fmt) == 'l' ||
> - _tolower(*fmt) == 'z') {
> + *fmt == 'z') {

Ditto.

> --- a/mm/dmapool.c
> +++ b/mm/dmapool.c
> @@ -93,7 +93,7 @@ show_pools(struct device *dev, struct device_attribute *attr, char *buf)
> spin_unlock_irq(&pool->lock);
>
> /* per-pool info, no real statistics yet */
> - temp = scnprintf(next, size, "%-16s %4u %4Zu %4Zu %2u\n",
> + temp = scnprintf(next, size, "%-16s %4u %4zu %4zu %2u\n",
> pool->name, blocks,
> pages * (pool->allocation / pool->size),
> pool->size, pages);

> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -2879,7 +2879,7 @@ static int snd_soc_register_dais(struct snd_soc_component *component,
> unsigned int i;
> int ret;
>
> - dev_dbg(dev, "ASoC: dai register %s #%Zu\n", dev_name(dev), count);
> + dev_dbg(dev, "ASoC: dai register %s #%zu\n", dev_name(dev), count);
>
> component->dai_drv = dai_drv;

--
With Best Regards,
Andy Shevchenko