[bug report] ptp: ocp: Add debugfs entry for timecard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jonathan Lemon,

The patch f67bf662d2cf: "ptp: ocp: Add debugfs entry for timecard"
from Sep 14, 2021, leads to the following Smatch static checker
warning:

	drivers/ptp/ptp_ocp.c:3102 ptp_ocp_summary_show()
	warn: right shifting more than type allows 16 vs 16

drivers/ptp/ptp_ocp.c
    2969 static int
    2970 ptp_ocp_summary_show(struct seq_file *s, void *data)
    2971 {
    2972         struct device *dev = s->private;
    2973         struct ptp_system_timestamp sts;
    2974         u16 sma_val[4][2], ctrl, val;
                                    ^^^^
This "ctrl" variable should probably be a u32.

    2975         struct ts_reg __iomem *ts_reg;
    2976         struct timespec64 ts;
    2977         struct ptp_ocp *bp;
    2978         char *src, *buf;
    2979         bool on, map;
    2980         int i;
    2981 
    2982         buf = (char *)__get_free_page(GFP_KERNEL);
    2983         if (!buf)
    2984                 return -ENOMEM;
    2985 

[ snip ]

    3087 
    3088         if (bp->fw_cap & OCP_CAP_SIGNAL)
    3089                 for (i = 0; i < 4; i++)
    3090                         _signal_summary_show(s, bp, i);
    3091 
    3092         if (bp->fw_cap & OCP_CAP_FREQ)
    3093                 for (i = 0; i < 4; i++)
    3094                         _frequency_summary_show(s, i, bp->freq_in[i]);
    3095 
    3096         if (bp->irig_out) {
    3097                 ctrl = ioread32(&bp->irig_out->ctrl);

reads a u32

    3098                 on = ctrl & IRIG_M_CTRL_ENABLE;
    3099                 val = ioread32(&bp->irig_out->status);
    3100                 gpio_output_map(buf, bp, sma_val, 4);
    3101                 seq_printf(s, "%7s: %s, error: %d, mode %d, out: %s\n", "IRIG",
--> 3102                            on ? " ON" : "OFF", val, (ctrl >> 16), buf);
                                                              ^^^^^^^^^^
shifts to zero

    3103         }
    3104 
    3105         if (bp->irig_in) {
    3106                 on = ioread32(&bp->irig_in->ctrl) & IRIG_S_CTRL_ENABLE;
    3107                 val = ioread32(&bp->irig_in->status);
    3108                 gpio_input_map(buf, bp, sma_val, 4, NULL);
    3109                 seq_printf(s, "%7s: %s, error: %d, src: %s\n", "IRIG in",
    3110                            on ? " ON" : "OFF", val, buf);
    3111         }
    3112 

regards,
dan carpenter



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux