lkml.org 
[lkml]   [2011]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subjectlinux-next: build failure after merge of the block tree
    Hi Jens,

    After merging the block tree, today's linux-next build (x86_64
    allmodconfig) failed like this:

    drivers/block/drbd/drbd_bitmap.c: In function '__bm_find_next':
    drivers/block/drbd/drbd_bitmap.c:1187: error: implicit declaration of function 'generic_find_next_zero_le_bit'
    drivers/block/drbd/drbd_bitmap.c:1190: error: implicit declaration of function 'generic_find_next_le_bit'
    drivers/block/drbd/drbd_bitmap.c: In function '__bm_change_bits_to':
    drivers/block/drbd/drbd_bitmap.c:1290: error: implicit declaration of function 'generic___test_and_set_le_bit'
    drivers/block/drbd/drbd_bitmap.c:1292: error: implicit declaration of function 'generic___test_and_clear_le_bit'
    drivers/block/drbd/drbd_bitmap.c: In function 'drbd_bm_test_bit':
    drivers/block/drbd/drbd_bitmap.c:1441: error: implicit declaration of function 'generic_test_le_bit'

    Caused by commit 95a0f10cddbf ("drbd: store in-core bitmap little endian,
    regardless of architecture") interacting with commit c4945b9ed472
    ("asm-generic: rename generic little-endian bitops functions") from
    Linus' tree.

    I applied the following merge fix patch for today:

    From: Stephen Rothwell <sfr@canb.auug.org.au>
    Date: Fri, 25 Mar 2011 14:27:57 +1100
    Subject: [PATCH] drbd: update for bitop api changes

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    ---
    drivers/block/drbd/drbd_bitmap.c | 12 ++++++------
    1 files changed, 6 insertions(+), 6 deletions(-)

    diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
    index f0ae63d..eb925fa 100644
    --- a/drivers/block/drbd/drbd_bitmap.c
    +++ b/drivers/block/drbd/drbd_bitmap.c
    @@ -1184,10 +1184,10 @@ static unsigned long __bm_find_next(struct drbd_conf *mdev, unsigned long bm_fo,
    p_addr = __bm_map_pidx(b, bm_bit_to_page_idx(b, bm_fo), km);

    if (find_zero_bit)
    - i = generic_find_next_zero_le_bit(p_addr,
    + i = find_next_zero_bit_le(p_addr,
    PAGE_SIZE*8, bm_fo & BITS_PER_PAGE_MASK);
    else
    - i = generic_find_next_le_bit(p_addr,
    + i = find_next_bit_le(p_addr,
    PAGE_SIZE*8, bm_fo & BITS_PER_PAGE_MASK);

    __bm_unmap(p_addr, km);
    @@ -1287,9 +1287,9 @@ static int __bm_change_bits_to(struct drbd_conf *mdev, const unsigned long s,
    last_page_nr = page_nr;
    }
    if (val)
    - c += (0 == generic___test_and_set_le_bit(bitnr & BITS_PER_PAGE_MASK, p_addr));
    + c += (0 == __test_and_set_bit_le(bitnr & BITS_PER_PAGE_MASK, p_addr));
    else
    - c -= (0 != generic___test_and_clear_le_bit(bitnr & BITS_PER_PAGE_MASK, p_addr));
    + c -= (0 != __test_and_clear_bit_le(bitnr & BITS_PER_PAGE_MASK, p_addr));
    }
    if (p_addr)
    __bm_unmap(p_addr, km);
    @@ -1438,7 +1438,7 @@ int drbd_bm_test_bit(struct drbd_conf *mdev, const unsigned long bitnr)
    bm_print_lock_info(mdev);
    if (bitnr < b->bm_bits) {
    p_addr = bm_map_pidx(b, bm_bit_to_page_idx(b, bitnr));
    - i = generic_test_le_bit(bitnr & BITS_PER_PAGE_MASK, p_addr) ? 1 : 0;
    + i = test_bit_le(bitnr & BITS_PER_PAGE_MASK, p_addr) ? 1 : 0;
    bm_unmap(p_addr);
    } else if (bitnr == b->bm_bits) {
    i = -1;
    @@ -1482,7 +1482,7 @@ int drbd_bm_count_bits(struct drbd_conf *mdev, const unsigned long s, const unsi
    ERR_IF (bitnr >= b->bm_bits) {
    dev_err(DEV, "bitnr=%lu bm_bits=%lu\n", bitnr, b->bm_bits);
    } else {
    - c += (0 != generic_test_le_bit(bitnr - (page_nr << (PAGE_SHIFT+3)), p_addr));
    + c += (0 != test_bit_le(bitnr - (page_nr << (PAGE_SHIFT+3)), p_addr));
    }
    }
    if (p_addr)
    --
    1.7.4.1

    --
    Cheers,
    Stephen Rothwell sfr@canb.auug.org.au


    \
     
     \ /
      Last update: 2011-03-25 04:33    [W:0.025 / U:1.468 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site