{
        unsigned long *addrs;
 
-       if (alist->index >= alist->size)
-               return -ENOMEM;
+       /* Previously we failed to expand the list. */
+       if (alist->index == alist->size)
+               return -ENOSPC;
 
        alist->addrs[alist->index++] = addr;
        if (alist->index < alist->size)
        for (i = 0; i < FPROBE_IP_TABLE_SIZE; i++)
                fprobe_remove_node_in_module(mod, &fprobe_ip_table[i], &alist);
 
-       if (alist.index < alist.size && alist.index > 0)
+       if (alist.index > 0)
                ftrace_set_filter_ips(&fprobe_graph_ops.ops,
                                      alist.addrs, alist.index, 1, 0);
        mutex_unlock(&fprobe_mutex);