> > > /* and copy the data that needs to be copied */ > > > cmd_pos = offsetof(struct iwl_device_cmd, payload); > > > + copy_size = sizeof(out_cmd->hdr); > > > for (i = 0; i < IWL_MAX_CMD_TFDS; i++) { > > > - if (!cmd->len[i]) > > > + int copy = 0; > > > + > > > + if (!cmd->len) > > > continue; > > > > cmd->len is an array, so the new condition is always false. Shouldn't > > it be 'if (!cmdlen[i])'? > > To answer myself: no, it should still be 'if (!cmd->len[i])' as this loop needs to > include input fragments that will be completely copied into the header > fragment. Ick, good catch. It luckily doesn't matter as if cmd->len[i] is 0 (in which case we'd continue) the "if (copy)" below saves us in all the different code paths inside the loop. This is still clearly a mistake in the patch though. I will fix this upstream, I guess you'll want to wait for that for stable? I'll Cc:stable that patch as well. johannes Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen, Deutschland Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk Registergericht: Muenchen HRB 47456 Ust.-IdNr./VAT Registration No.: DE129385895 Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052 ��.n��������+%������w��{.n�����������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f