On Thu, 2012-02-09 at 12:18 -0800, Andy Grover wrote: > This code isn't broken per se, but it's scary to look at! It looks like > in the t_data_nents==1 case we're doing both a kunmap and a vunmap, > what's saving us is that t_data_vmap in this case is 0, so vunmap > doesn't do anything. > > Return after kunmap, so the handling of the three cases does not overlap. > > Signed-off-by: Andy Grover <agrover@xxxxxxxxxx> > --- > drivers/target/target_core_transport.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c > index 9338939..0dd8aad 100644 > --- a/drivers/target/target_core_transport.c > +++ b/drivers/target/target_core_transport.c > @@ -3525,10 +3525,12 @@ EXPORT_SYMBOL(transport_kmap_data_sg); > > void transport_kunmap_data_sg(struct se_cmd *cmd) > { > - if (!cmd->t_data_nents) > + if (!cmd->t_data_nents) { > return; > - else if (cmd->t_data_nents == 1) > + } else if (cmd->t_data_nents == 1) { > kunmap(sg_page(cmd->t_data_sg)); > + return; > + } > > vunmap(cmd->t_data_vmap); > cmd->t_data_vmap = NULL; Looks like a reasonable cleanup to me, applied to lio-core. Thanks Andy! --nab -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html