lkml.org 
[lkml]   [2010]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] mtd: Fix bug using smp_processor_id() in preemptible ubi_bgt1d kthread
    From
    Date
    On Mon, 2010-06-14 at 16:04 +0100, Jamie Lokier wrote:
    > Philby John wrote:
    > > mtd: Fix bug using smp_processor_id() in preemptible ubi_bgt1d kthread
    > >
    > > On a MIPS Cavium Octeon CN5020 when trying to create a UBI volume,
    > > on the NOR flash, the kernel thread ubi_bgt1d calls
    > > cfi_amdstd_write_buffers() --> do_write_buffer() -->
    > > INVALIDATE_CACHE_UDELAY --> __udelay(). Its __udelay() that calls
    > > smp_processor_id() in preemptible code, which you are not supposed to.
    > > Fix the problem by disabling preemption.
    >
    > The MTD code just calls udelay().
    > Are you sure it isn't permitted to call udelay() from preemptible code?
    > I think it is fine.

    It isn't really udelay() but smp_processor_id() that you are not to call
    from a preemptible thread. Now I also see Ed Swierk has done a similar
    thing https://patchwork.kernel.org/patch/4049/ and he comments "..which
    calls smp_processor_id(), which is not supposed to be called from a
    preemptible thread."


    So perhaps I can use preempt_disable() around just this call in function
    __udelay()?

    Regards,
    Philby



    \
     
     \ /
      Last update: 2010-06-14 18:41    [W:0.042 / U:63.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site