tree e4f30c02ed7cd642bb0d6a061a18b434c1d2b695
parent 2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e
parent 5f90472c00ddf1e64c2865f71cced297bd5f80a2
author Kalle Valo <kvalo@codeaurora.org> 1505732923 +0300
committer Kalle Valo <kvalo@codeaurora.org> 1505732923 +0300
mergetag object 5f90472c00ddf1e64c2865f71cced297bd5f80a2
 type commit
 tag iwlwifi-for-kalle-2017-09-15
 tagger Luca Coelho <luciano.coelho@intel.com> 1505475378 +0300
 
 First set of fixes for 4.14
 
 * A couple of bugzilla bugs related to multicast handling;
 * Two fixes for WoWLAN bugs that were causing queue hangs and
   re-initialization problems;
 * Two fixes for potential uninitialized variable use reported by Dan
   Carpenter in relation to a recently introduced patch;
 * A fix for buffer reordering in the newly supported 9000 device
   family;
 * Fix a race when starting aggregation;
 * Small fix for a recent patch to wake mac80211 queues;
 * Send non-bufferable management frames in the generic queue so they
   are not sent on queues that are under power-save;
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEF3LNfgb2BPWm68smoUecoho8xfoFAlm7u44ACgkQoUecoho8
 xfqOPw//TF8p9ZqXknYahiaSM8pQFSXbnbPCa8IFnZs4yTV7f6htQ50bRjafFsbV
 nAUAXaJI3901QyP96yHKX09IYJ6QMFxiCiB2uFmwUdVw+WFRPd9fJMMIFYKKIQTp
 2v3NA2odBrDzWZRp7HAipo6xQTkAEBqubrJqWMGLKoQUcMm7ocVLAazCj66dxbLd
 onyunys2+8DU2krGdDTZA8vlcXWSWvMtDzvsB3yfB4Do0rG+jQj5CDeB6ou7VKtq
 SvVr75qCc/4YHHCxWEU380Usdz36pgW22BVGp8OoAX1SRR26zpeT8g2FwiUIK8R/
 0+vSmbOFnAkXDMezNGQ74tdTB/AoT43kymEq2fCxll7gPMLabuYkZhSIBgIj6rZs
 KCcPcazP93CofTMpG9G/cLphsvGgB0WlYwQhcuUts3+goLKApvpbsKThWRPjsBW4
 0VbH/TTDddaMEuDvm+I1wL49GiF1l2uLlzjuol9W2oM1MXnhFn/QXuntjrKKRwP0
 XiLx07zjaS21jZaIJjRDf7LB02V/47YbJQ83p+kbDccKLhUOtSnbXmZsDfPRLWV+
 klQF2kRusuZbVUrIvExKjJlloz1ydk6MnTP4W31kEyqtNjr1m92oKRvx8vHIZ+A5
 id6KWed8DZU1VM4yFQSt/4LltN7ewdjlRaSOO0WO/C51iHV/vsA=
 =DM5q
 -----END PGP SIGNATURE-----

Merge tag 'iwlwifi-for-kalle-2017-09-15' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes

First set of fixes for 4.14

* A couple of bugzilla bugs related to multicast handling;
* Two fixes for WoWLAN bugs that were causing queue hangs and
  re-initialization problems;
* Two fixes for potential uninitialized variable use reported by Dan
  Carpenter in relation to a recently introduced patch;
* A fix for buffer reordering in the newly supported 9000 device
  family;
* Fix a race when starting aggregation;
* Small fix for a recent patch to wake mac80211 queues;
* Send non-bufferable management frames in the generic queue so they
  are not sent on queues that are under power-save;
