• John Ernberg's avatar
    rpmb: Zero-init MMC_IOC_MULTI_CMD structures · 271bdfc6
    John Ernberg authored
    
    
    On our board we would occationally see what looked like a
    kernel hang while doing RPMB operations, some additional
    printk debugging revealed that in the trouble case data
    such as this was being sent to the kernel:
    
        [  109.076981] idata[0]->ic->opcode = 0x19
        [  109.077027] idata[0]->ic->arg = 0x0
        [  109.080954] idata[0]->ic->write_flag = 0x1
        [  109.084691] idata[0]->ic->is_acmd = 0x0
        [  109.089007] idata[0]->ic->flags = 0xb5
        [  109.092949] idata[0]->ic->blocks = 0x1
        [  109.096865] idata[0]->ic->blksz = 0x200
        [  109.100791] idata[0]->ic->postsleep_min_us = 0x7473696e
        [  109.104745] idata[0]->ic->postsleep_max_us = 0x34383370
        [  109.110167] idata[0]->ic->data_timeout_ns = 0x7265632d
        [  109.115494] idata[0]->ic->data_ptr = 00000000e7ddd4cd
        [  109.120832] idata[0]->rpmb = 00000000ffab5640
        [  109.126077] idata[1]->ic->opcode = 0x12
        [  109.130622] idata[1]->ic->arg = 0x0
        [  109.135451] idata[1]->ic->write_flag = 0x0
        [  109.139153] idata[1]->ic->is_acmd = 0x0
        [  109.143437] idata[1]->ic->flags = 0xb5
        [  109.147553] idata[1]->ic->blocks = 0x1
        [  109.151420] idata[1]->ic->blksz = 0x200
        [  109.155251] idata[1]->ic->postsleep_min_us = 0x652d6873
        [  109.159166] idata[1]->ic->postsleep_max_us = 0x35353264
        [  109.164561] idata[1]->ic->data_timeout_ns = 0x632d3931
        [  109.169915] idata[1]->ic->data_ptr = 00000000bc641ed4
        [  109.175152] idata[1]->rpmb = 00000000ffab5640
    
    Therefor, zero-init the MMC_IOC_MULTI_CMD structures to
    avoid the obscene sleep values.
    Signed-off-by: default avatarJohn Ernberg <john.ernberg@actia.se>
    Link: https://lore.kernel.org/r/20201216093146.6218-1-john.ernberg@actia.se
    
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    271bdfc6
mmc_cmds.c 67 KB