• T
    drivers: serial: apbuart: Handle OF failures gracefully · 35c64e5d
    Thomas Gleixner 提交于
    The apbuart driver depends on OF and relies on everything being
    available. So if it's probed on a platform which has OF support, but
    no device tree is available it crashes. Triggered by the upcoming x86
    OF support in randconfig testing.
    
    Further it's inconsistent vs. the probing and exiting from the
    of_match loop.
    
    Make it robust and consistent:
    
     - check the availablility of OF nodes before dereferencing
     - return -ENODEV when the device tree lookup fails
     - return -ENODEV when no uart port configuration is found
     - return -ENODEV when invalid uart port configuration is found
    
    Remove the enum_done check while at it. Driver init functions are only
    called once. Remove the pointless vendor and device queries as well.
    
    Reported-by: Ingo Molnar <mingo.elte.hu>
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    Cc: Grant Likely <grant.likely@secretlab.ca>
    Cc: Kristoffer Glembo <kristoffer@gaisler.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    35c64e5d
apbuart.c 16.0 KB