lkml.org 
[lkml]   [2006]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] drivers/base: error handling fixes
    Heiko Carstens wrote:
    > On Wed, Oct 04, 2006 at 05:24:34PM +0200, Cornelia Huck wrote:
    >> On Wed, 4 Oct 2006 09:05:54 -0400,
    >> Jeff Garzik <jeff@garzik.org> wrote:
    >>
    >>> static int __cpuinit topology_cpu_callback(struct notifier_block *nfb,
    >>> @@ -112,17 +110,18 @@ static int __cpuinit topology_cpu_callba
    >>> {
    >>> unsigned int cpu = (unsigned long)hcpu;
    >>> struct sys_device *sys_dev;
    >>> + int rc = 0;
    >>>
    >>> sys_dev = get_cpu_sysdev(cpu);
    >>> switch (action) {
    >>> case CPU_ONLINE:
    >>> - topology_add_dev(sys_dev);
    >>> + rc = topology_add_dev(sys_dev);
    >>> break;
    >>> case CPU_DEAD:
    >>> topology_remove_dev(sys_dev);
    >>> break;
    >>> }
    >>> - return NOTIFY_OK;
    >>> + return rc ? NOTIFY_BAD : NOTIFY_OK;
    >>> }
    >> Wouldn't that also require that _cpu_up checked the return code when
    >> doing CPU_ONLINE notification (and clean up on error)?
    >
    > After all code that gets a CPU_ONLINE notification is not supposed to fail.
    > For allocating resources while bringing up a cpu CPU_UP_PREPARE is supposed
    > to be used. That one is allowed to fail.

    It's a bug no matter how you look at it... I just lessen the impact. :)

    If someone wants to provide a better fix, let's see the patch...

    Jeff



    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-05 13:19    [W:4.523 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site