lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 21 May 2007 10:54:45 -0700 From: Stephen Hemminger <shemminger@...ux-foundation.org> To: Kieran Mansley <kmansley@...arflare.com> Cc: xen-devel@...ts.xensource.com, netdev@...r.kernel.org, muli@...ibm.com, herbert@...dor.apana.org.au Subject: Re: [PATCH 3/4] [Net] Support Xen accelerated network plugin modules O > + > +/* > + * Macro to call one of the accelerator's function hooks. The use > + * count for the accelerator's hooks is incremented for the duration > + * of the call to prevent the accelerator being able to modify the > + * hooks in the middle (by, for example, unloading) > + */ > +#define netfront_call_accelerator_hook(_np, _hook, _args...) > \ > + do { > \ > + if ( (_np)->accel_vif_state.hooks ) { > \ > + unsigned flags; > \ > + spin_lock_irqsave(&accelerators_lock, flags); > \ > + ++(_np)->accelerator->hooks_usecount; > \ > + spin_unlock_irqrestore(&accelerators_lock, > flags); \ > + if ( (_np)->accel_vif_state.hooks ) > \ > + (_np)->accel_vif_state.hooks->_hook > (_args); \ > + spin_lock_irqsave(&accelerators_lock, flags); > \ > + if ( (--(_np)->accelerator->hooks_usecount) == > 0 ) \ > + accelerator_remove_hooks((_np)- > >accelerator); \ > + spin_unlock_irqrestore(&accelerators_lock, > flags); \ > + } > \ > + } while(0) Gag, why a macro... See earlier comments about suing RCU and eliminating the refcount and locking overhead. -- Stephen Hemminger <shemminger@...ux-foundation.org> - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists