On Sun, 27 Jun 2021 07:12:03 +0200, Nathan Chancellor wrote: > > Clang warns: > > sound/usb/mixer_scarlett_gen2.c:1189:32: warning: expression result > unused [-Wunused-value] > for (i = 0; i < count; i++, (u16 *)buf++) > ^ ~~~~~ > 1 warning generated. > > It appears the intention was to cast the void pointer to a u16 pointer > so that the data could be iterated through like an array of u16 values. > However, the cast happens after the increment because a cast is an > rvalue, whereas the post-increment operator only works on lvalues, so > the loop does not iterate as expected. This is not a bug in practice > because count is not greater than one at the moment but this could > change in the future so this should be fixed. > > Replace the cast with a temporary variable of the proper type, which is > less error prone and fixes the iteration. Do the same thing for the > 'u8 *' below this if block. > > Fixes: ac34df733d2d ("ALSA: usb-audio: scarlett2: Update get_config to do endian conversion") > Link: https://github.com/ClangBuiltLinux/linux/issues/1408 > Acked-by: Geoffrey D. Bennett <g@xxxxx> > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > --- > > v1 -> v2: > > * Use temporary variables of proper type rather than casting, as > requested by Takashi. > > * Mention that there is not a bug at the moment per Geoffrey's comment. > > v2 -> v3: > > * Restrict scope of buf_16 more, as requested by Geoffrey. > > * Add Geoffrey's ack. > > v3 -> v4: > > * Fix stray newline added below > > if (config_item->size >= 8) { > > leftover from buf_16's declaration. > > v4 -> v5 (or how many times does it take Nathan to get a patch right): > > * Re-add note about no bug that was dropped in v3 by accident, as > noticed by Geoffrey. My apologies for the multiple revisions. Thanks, applied now. Takashi