On Sat, Nov 8, 2008 at 2:17 PM, Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: > On Sat, 2008-11-08 at 14:12 -0800, Yinghai Lu wrote: >> On Tue, Nov 4, 2008 at 8:31 AM, Kumar Gala <[EMAIL PROTECTED]> wrote: >> > From 819ad3ed4660f4238e053728a8b5aa93d22b13d7 Mon Sep 17 00:00:00 2001 >> > From: Kumar Gala <[EMAIL PROTECTED]> >> > Date: Tue, 4 Nov 2008 10:13:53 -0600 >> > Subject: [PATCH 1/1] irq: Maintain user set affinity >> > >> > This addresses a regression in that if a user specified an affinity >> > for an interrupt that affinity information would get reset between >> > a request_irq(), free_irq() and request_irq() for the same irq. >> > >> > On example of this is bringing up an ethernet interface, taking >> > it down and bringing it back up again. >> > >> > Instead of always using the irq_default_affinity we use the >> > previous setting of the IRQs affinity with the assumption that >> > at boot the IRQs affinity will be set to irq_default_affinity. >> >> why ?, the default_affinity is expected behavior... >> >> for example: when MSI is used, second driver could get same irq if >> first driver is unloaded. > > The default affinity should be set when the irq is allocated / assigned > to a device, not when it's requested.
ok, you are right. for MSI, affinity is set two times. also in dynamic_irq_init is setting with #ifdef CONFIG_SMP cpus_setall(desc->affinity); #endif it seems should use irq_default_affinity instead of CPU_MASK_ALL directly there. YH _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev