[bug report] soundwire: debugfs: add interface for BPT/BRA transfers

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



Hello Pierre-Louis Bossart,

Commit bb5cb09eedce ("soundwire: debugfs: add interface for BPT/BRA
transfers") from Feb 27, 2025 (linux-next), leads to the following
Smatch static checker warning:

drivers/soundwire/debugfs.c:301 cmd_go() error: uninitialized symbol 'finish_t'.
drivers/soundwire/debugfs.c:301 cmd_go() error: uninitialized symbol 'start_t'.

drivers/soundwire/debugfs.c
    236 static int cmd_go(void *data, u64 value)
    237 {
    238         const struct firmware *fw = NULL;
    239         struct sdw_slave *slave = data;
    240         ktime_t start_t;
    241         ktime_t finish_t;
    242         int ret;
    243 
    244         if (value != 1)
    245                 return -EINVAL;
    246 
    247         /* one last check */
    248         if (start_addr > SDW_REG_MAX ||
    249             num_bytes == 0 || num_bytes > MAX_CMD_BYTES)
    250                 return -EINVAL;
    251 
    252         ret = pm_runtime_get_sync(&slave->dev);
    253         if (ret < 0 && ret != -EACCES) {
    254                 pm_runtime_put_noidle(&slave->dev);
    255                 return ret;
    256         }
    257 
    258         if (cmd == 0) {
    259                 ret = request_firmware(&fw, firmware_file, &slave->dev);
    260                 if (ret < 0) {
    261                         dev_err(&slave->dev, "firmware %s not found\n", firmware_file);
    262                         goto out;

start_t and finish_t are not initialized

    263                 }
    264                 if (fw->size < num_bytes) {
    265                         dev_err(&slave->dev,
    266                                 "firmware %s: firmware size %zd, desired %zd\n",
    267                                 firmware_file, fw->size, num_bytes);
    268                         goto out;
    269                 }
    270         }
    271 
    272         /* Userspace changed the hardware state behind the kernel's back */
    273         add_taint(TAINT_USER, LOCKDEP_STILL_OK);
    274 
    275         dev_dbg(&slave->dev, "starting command\n");
    276         start_t = ktime_get();
    277 
    278         if (cmd == 0) {
    279                 if (cmd_type)
    280                         ret = do_bpt_sequence(slave, true, (u8 *)fw->data);
    281                 else
    282                         ret = sdw_nwrite_no_pm(slave, start_addr, num_bytes, fw->data);
    283         } else {
    284                 memset(read_buffer, 0, sizeof(read_buffer));
    285 
    286                 if (cmd_type)
    287                         ret = do_bpt_sequence(slave, false, read_buffer);
    288                 else
    289                         ret = sdw_nread_no_pm(slave, start_addr, num_bytes, read_buffer);
    290         }
    291 
    292         finish_t = ktime_get();
    293 
    294 out:
    295         if (fw)
    296                 release_firmware(fw);
    297 
    298         pm_runtime_mark_last_busy(&slave->dev);
    299         pm_runtime_put(&slave->dev);
    300 
--> 301         dev_dbg(&slave->dev, "command completed, num_byte %zu status %d, time %lld ms\n",
    302                 num_bytes, ret, div_u64(finish_t - start_t, NSEC_PER_MSEC));
                                                ^^^^^^^^^^^^^^^^^^
Uninitialized

    303 
    304         return ret;
    305 }

regards,
dan carpenter




[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux