lkml.org 
[lkml]   [2008]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [PATCH 7/8] cpumask: convert misc driver functions
    Date
    On Sunday 21 December 2008 09:52:39 Ben Hutchings wrote:
    > I assume you're moving the allocation up to efx_probe_nic() because
    > efx_wanted_rx_queues() and efx_probe_interrupts() cannot return failure.
    > It really isn't worth exposing that detail up the call chain though. I
    > think it's acceptable for efx_wanted_rx_queues() to log an error message
    > and return 1 in the exceedingly unlikely case that the allocation fails.

    OK, fair call. I was trying trying hard not to break anything.

    How's this?

    cpumask: convert drivers/net/sfc

    Remove a cpumask from the stack. Ben Hutchings indicated that printing
    a warning and returning 1 was acceptable for the corner case where allocation
    fails.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Ben Hutchings <bhutchings@solarflare.com>

    diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
    --- a/drivers/net/sfc/efx.c
    +++ b/drivers/net/sfc/efx.c
    @@ -854,20 +854,27 @@ static void efx_fini_io(struct efx_nic *
    * interrupts across them. */
    static int efx_wanted_rx_queues(void)
    {
    - cpumask_t core_mask;
    + cpumask_var_t core_mask;
    int count;
    int cpu;

    - cpus_clear(core_mask);
    + if (!alloc_cpumask_var(&core_mask, GFP_KERNEL)) {
    + printk(KERN_WARNING
    + "efx.c: allocation failure, irq balancing hobbled\n");
    + return 1;
    + }
    +
    + cpumask_clear(core_mask);
    count = 0;
    for_each_online_cpu(cpu) {
    - if (!cpu_isset(cpu, core_mask)) {
    + if (!cpumask_test_cpu(cpu, core_mask)) {
    ++count;
    - cpumask_or(&core_mask, &core_mask,
    + cpumask_or(core_mask, core_mask,
    topology_core_cpumask(cpu));
    }
    }

    + free_cpumask_var(core_mask);
    return count;
    }


    \
     
     \ /
      Last update: 2008-12-29 03:31    [W:0.025 / U:1.420 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site