Re: [PATCH 3/3] radix-tree: support locking of individual exception entries.
From: kbuild test robot
Date: Sun Feb 28 2016 - 00:31:26 EST
Hi NeilBrown,
[auto build test ERROR on v4.5-rc5]
[also build test ERROR on next-20160226]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/NeilBrown/RFC-improvements-to-radix-tree-related-to-DAX/20160228-132214
config: i386-tinyconfig (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
lib/radix-tree.c: In function 'radix_tree_lookup_lock':
>> lib/radix-tree.c:1616:5: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
TASK_UNINTERRUPTIBLE);
^
lib/radix-tree.c:1616:5: note: each undeclared identifier is reported only once for each function it appears in
>> lib/radix-tree.c:1621:3: error: implicit declaration of function 'schedule' [-Werror=implicit-function-declaration]
schedule();
^
lib/radix-tree.c: In function 'radix_tree_unlock':
>> lib/radix-tree.c:1644:17: error: 'TASK_NORMAL' undeclared (first use in this function)
__wake_up(wq, TASK_NORMAL, 1, &key);
^
lib/radix-tree.c: In function 'radix_tree_delete_unlock':
lib/radix-tree.c:1657:17: error: 'TASK_NORMAL' undeclared (first use in this function)
__wake_up(wq, TASK_NORMAL, 1, &key);
^
cc1: some warnings being treated as errors
vim +/TASK_UNINTERRUPTIBLE +1616 lib/radix-tree.c
1610 wait.state = SLOT_WAITING;
1611 wait.root = root;
1612 wait.index = index;
1613 wait.ret = NULL;
1614 for (;;) {
1615 prepare_to_wait(wq, &wait.wait,
> 1616 TASK_UNINTERRUPTIBLE);
1617 if (wait.state != SLOT_WAITING)
1618 break;
1619
1620 spin_unlock(lock);
> 1621 schedule();
1622 spin_lock(lock);
1623 }
1624 finish_wait(wq, &wait.wait);
1625 return wait.ret;
1626 }
1627 EXPORT_SYMBOL(radix_tree_lookup_lock);
1628
1629 void radix_tree_unlock(struct radix_tree_root *root, wait_queue_head_t *wq,
1630 unsigned long index)
1631 {
1632 void *ret, **slot;
1633
1634 ret = __radix_tree_lookup(root, index, NULL, &slot);
1635 if (WARN_ON_ONCE(!ret || !radix_tree_exceptional_entry(ret)))
1636 return;
1637 if (WARN_ON_ONCE(!slot_locked(slot)))
1638 return;
1639 unlock_slot(slot);
1640
1641 if (waitqueue_active(wq)) {
1642 struct wait_bit_key key = {.flags = root, .bit_nr = -2,
1643 .timeout = index};
> 1644 __wake_up(wq, TASK_NORMAL, 1, &key);
1645 }
1646 }
1647 EXPORT_SYMBOL(radix_tree_unlock);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data