• Paul Walmsley's avatar
    OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups. · 5d113262
    Paul Walmsley authored
    At the end of the list pd is a pointer to a NULL struct, so checking
    if the address == NULL doesn't help here. In fact the original code
    will just keep running past the struct to read who knows what in
    memory.
    
    This case manifests itself when from clkdms_setup() when enabling auto
    idle for a clock domain and the clockdomain usecount is greater than
    0. When _clkdm_add_autodeps() tries to add the a dependency that does
    not exist in the powerdomain->wkdep_srcs array the for loop will run
    past the wkdep_srcs array.
    
    Currently in linux-omap you won't hit this because the not found case
    is never executed, unless you start modifying powerdomains and their
    wakeup/sleep deps.
    Signed-off-by: default avatarMike Chan <mike@android.com>
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    5d113262
powerdomain.c 29.9 KB