• Thomas Petazzoni's avatar
    dma: mv_xor: fix error handling path · 73d9cdca
    Thomas Petazzoni authored
    The ->probe() function of the mv_xor function contains in its error
    handling code a loop to cleanup the XOR channels that had been
    successfully initialized if some other XOR channel fails to be
    initialized. It does that by traveling the list of XOR channels, and
    cleanup those for which the pointer is not NULL.
    
    However, since the mv_xor_channel_add() function return a PTR_ERR
    style value, the pointer is not NULL on error. So, when handling the
    error of a given channel initialization, we cleanup this channel
    initialization and mark this channel entry as NULL in the array. This
    allows the remaining of the cleanup (for other channels) to work
    properly.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    73d9cdca
mv_xor.c 36.2 KB