-+ * Credits: Jan Rafaj <imq2t@cedric.vabo.cz>
-+ * - Update patch to 2.4.21
-+ * Sebastian Strollo <sstrollo@nortelnetworks.com>
-+ * - Fix "Dead-loop on netdevice imq"-issue
-+ * Marcel Sebek <sebek64@post.cz>
-+ * - Update to 2.6.2-rc1
-+ *
-+ * After some time of inactivity there is a group taking care
-+ * of IMQ again: http://www.linuximq.net
-+ *
-+ *
-+ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7
-+ * including the following changes:
-+ *
-+ * - Correction of ipv6 support "+"s issue (Hasso Tepper)
-+ * - Correction of imq_init_devs() issue that resulted in
-+ * kernel OOPS unloading IMQ as module (Norbert Buchmuller)
-+ * - Addition of functionality to choose number of IMQ devices
-+ * during kernel config (Andre Correa)
-+ * - Addition of functionality to choose how IMQ hooks on
-+ * PRE and POSTROUTING (after or before NAT) (Andre Correa)
-+ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
-+ *
-+ *
-+ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were
-+ * released with almost no problems. 2.6.14-x was released
-+ * with some important changes: nfcache was removed; After
-+ * some weeks of trouble we figured out that some IMQ fields
-+ * in skb were missing in skbuff.c - skb_clone and copy_skb_header.
-+ * These functions are correctly patched by this new patch version.
-+ *
-+ * Thanks for all who helped to figure out all the problems with
-+ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
-+ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully
-+ * I didn't forget anybody). I apologize again for my lack of time.
-+ *
-+ *
-+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
-+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid
-+ * recursive locking. New initialization routines to fix 'rmmod' not
-+ * working anymore. Used code from ifb.c. (Jussi Kivilinna)
-+ *
-+ * 2008/08/06 - 2.6.26 - (JK)
-+ * - Replaced tasklet with 'netif_schedule()'.
-+ * - Cleaned up and added comments for imq_nf_queue().
-+ *
-+ * 2009/04/12
-+ * - Add skb_save_cb/skb_restore_cb helper functions for backuping
-+ * control buffer. This is needed because qdisc-layer on kernels
-+ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
-+ * - Add better locking for IMQ device. Hopefully this will solve
-+ * SMP issues. (Jussi Kivilinna)
-+ * - Port to 2.6.27
-+ * - Port to 2.6.28
-+ * - Port to 2.6.29 + fix rmmod not working
-+ *
-+ * 2009/04/20 - (Jussi Kivilinna)
-+ * - Use netdevice feature flags to avoid extra packet handling
-+ * by core networking layer and possibly increase performance.
-+ *
-+ * 2009/09/26 - (Jussi Kivilinna)
-+ * - Add imq_nf_reinject_lockless to fix deadlock with
-+ * imq_nf_queue/imq_nf_reinject.
-+ *
-+ * 2009/12/08 - (Jussi Kivilinna)
-+ * - Port to 2.6.32
-+ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
-+ * - Also add better error checking for skb->nf_queue_entry usage
-+ *
-+ * 2010/02/25 - (Jussi Kivilinna)
-+ * - Port to 2.6.33
-+ *
-+ * 2010/08/15 - (Jussi Kivilinna)
-+ * - Port to 2.6.35
-+ * - Simplify hook registration by using nf_register_hooks.
-+ * - nf_reinject doesn't need spinlock around it, therefore remove
-+ * imq_nf_reinject function. Other nf_reinject users protect
-+ * their own data with spinlock. With IMQ however all data is
-+ * needed is stored per skbuff, so no locking is needed.
-+ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of
-+ * NF_QUEUE, this allows working coexistance of IMQ and other
-+ * NF_QUEUE users.
-+ * - Make IMQ multi-queue. Number of IMQ device queues can be
-+ * increased with 'numqueues' module parameters. Default number
-+ * of queues is 1, in other words by default IMQ works as
-+ * single-queue device. Multi-queue selection is based on
-+ * IFB multi-queue patch by Changli Gao <xiaosuo@gmail.com>.
-+ *
-+ * 2011/03/18 - (Jussi Kivilinna)
-+ * - Port to 2.6.38
-+ *
-+ * 2011/07/12 - (syoder89@gmail.com)
-+ * - Crash fix that happens when the receiving interface has more
-+ * than one queue (add missing skb_set_queue_mapping in
-+ * imq_select_queue).
-+ *
-+ * 2011/07/26 - (Jussi Kivilinna)
-+ * - Add queue mapping checks for packets exiting IMQ.
-+ * - Port to 3.0
-+ *
-+ * 2011/08/16 - (Jussi Kivilinna)
-+ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
-+ *
-+ * 2011/11/03 - Germano Michel <germanomichel@gmail.com>
-+ * - Fix IMQ for net namespaces
-+ *
-+ * 2011/11/04 - Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
-+ * - Port to 3.1
-+ * - Clean-up, move 'get imq device pointer by imqX name' to
-+ * separate function from imq_nf_queue().
-+ *
-+ * Also, many thanks to pablo Sebastian Greco for making the initial
-+ * patch and to those who helped the testing.
-+ *
-+ * More info at: http://www.linuximq.net/ (Andre Correa)