{"push_id":1374533613,"size":31,"distinct_size":1,"ref":"refs/heads/master","head":"b83aec0f797332d6555dca1c08f27250008a6c56","before":"ced313bcdd2b959caa656267fa4458162d948af3","commits":[{"sha":"a54fcea7a9f630fae030fd8e13689a31ec3ba2c1","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"First pass at fixing up this driver locking, unfinished.\n\nThe target is to try and remove the sleep lock and instead convert\nit to a normal mutex and fix all the places where we hold a lock\nwhen we shouldn't.\n\nThe initial pass is to convert the conf lock to a mutex instead of\na sleep lock.  The sleep lock makes a bunch of locking problems\nkinda go away, but it makes other things more complicated.\nNotably, since we need to sleep for certain activities in interrupt\nmode (ie in interrupt handlers), we, well, can't.\n\nThis may not be the final solution, but it does indeed allow me to\nattempt to tidy up how locking is handled.\n\nThe no-nos include:\n\n* the tsleep() in the compl wait paths, which so far haven't complained\n  with other mutexes\n* holding the lock across taskqueue_cancel / taskqueue_drain\n* holding the lock across some busdma operations (tag_create, memalloc)\n  where we shouldn't\n\nNote: this may still prove to be problematic.  We'll see.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/a54fcea7a9f630fae030fd8e13689a31ec3ba2c1"},{"sha":"08b76f0545dd3161823b560e4764bd1ab3376675","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"* Convert the compl/wait APIs to take a mutex\n* And pass in the conf mutex into the compl/wait calls.\n\nThis addresses the compl/wait WITNESS complaints with the new locking\nmethod.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/08b76f0545dd3161823b560e4764bd1ab3376675"},{"sha":"bb2815cd545107fbc4f73c5d2857ece5eef8c78b","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Add missing lock.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/bb2815cd545107fbc4f73c5d2857ece5eef8c78b"},{"sha":"e7b98b95cda88219c9c86ea94fbce6776bb5816d","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Convert the pci diag code over to using the athp conf lock and BMI TX buffer.\n\nThis removes another \"tag creation / memory allocation under a non-sleep lock\"\npoint.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/e7b98b95cda88219c9c86ea94fbce6776bb5816d"},{"sha":"e6fa6fba38104bc3393d3b14ef5a10330a54cb42","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Comment.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/e6fa6fba38104bc3393d3b14ef5a10330a54cb42"},{"sha":"842814ea9c13ed6c318a5435ae9740ac33eb78bd","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Migrate HTT RX buffer allocation out from the core init/teardown\npath and into the global path.\n\nThis way it sits separate from the core setup/teardown under the\nconf mutex, and now happens exactly once.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/842814ea9c13ed6c318a5435ae9740ac33eb78bd"},{"sha":"57e60820eaa4873aaed19df38e1cf0c357bc178e","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"For now, make the conf lock recursive.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/57e60820eaa4873aaed19df38e1cf0c357bc178e"},{"sha":"8e7de3d8ef35d8999ec97eaaadb76ddcb4bbfc8a","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"And now actually do the beacon sending hacks.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/8e7de3d8ef35d8999ec97eaaadb76ddcb4bbfc8a"},{"sha":"208532613edf3da22d41ccac034918a0a26cc552","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Queue the restart work taskqueue, which (among other things)\nunblocks any waiters and sets the CRASH flag.\n\nThe crash flag is then used by the rest of the driver to see\nif we should be waiting for transactions.\n\nThis should make handling crashed firmware slightly easier - no\nlonger will I want for seconds at a time for commands to time out.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/208532613edf3da22d41ccac034918a0a26cc552"},{"sha":"be3c523829762e39a65e45bcf2c9249f662a4729","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Don't dereference 0 length packets.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/be3c523829762e39a65e45bcf2c9249f662a4729"},{"sha":"4f85132eca736873d8b2a87a935730fa321d9e88","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"add ratectl debug section.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/4f85132eca736873d8b2a87a935730fa321d9e88"},{"sha":"f7ee827ba9edeb961cbc530d91eb9e81cf92e1de","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Grab the conf lock before doing PCI copy accesses during firmware crash.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/f7ee827ba9edeb961cbc530d91eb9e81cf92e1de"},{"sha":"84cb22364ca683824d45388650033621cfbfc669","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"* remove some dead code\n* convert some stuff to debug level rather than warnings - I know the\n  WPA2 and the legacy rate control setup stuff works now.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/84cb22364ca683824d45388650033621cfbfc669"},{"sha":"9b1f88a49c69cda75f5f9becebc91cecea626fa0","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"* go back to doing the vdev creation wakeup without a hard-coded long\n  timeout.\n* enforce a minimum number of ticks for calling mtx_sleep().\n\nMy .. feeling is that some of these tick values are being rounded down\nto some lower interval and the firmware doesn't respond in time.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/9b1f88a49c69cda75f5f9becebc91cecea626fa0"},{"sha":"e27575223739f845a6f3fa889307dbe22db8eee7","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Initial taskq implementation for crypto keys and such.\n\nIt doesn't (yet) use the net80211 queue.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/e27575223739f845a6f3fa889307dbe22db8eee7"},{"sha":"ecc224456f205fc8e65eb414e7779ac0ed03166a","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"* delete line we don't need now\n* defer init'ing the taskq stuff until net80211 is up","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/ecc224456f205fc8e65eb414e7779ac0ed03166a"},{"sha":"28a627af35da2d756faa0c8a8ddad031c0324544","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Init the taskq head.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/28a627af35da2d756faa0c8a8ddad031c0324544"},{"sha":"ade03edbdb00d0497f6c62a3df94c9da4d24873b","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Method to convert the taskq entry pointer over to the payload pointer.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/ade03edbdb00d0497f6c62a3df94c9da4d24873b"},{"sha":"e20389f4bc3dd3d97311156fd43ce9106059ad2c","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Initial work to push keycache updates into the deferred driver task queue.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/e20389f4bc3dd3d97311156fd43ce9106059ad2c"},{"sha":"2e46a4cf11ed0caa7907394a45c1fdbbe5c105be","author":{"name":"Adrian Chadd","email":"cf7ed4b502ef3ce05bc86a716c1e59e590e64754@freebsd.org"},"message":"Migrate this driver taskq to the net80211 task queue.\n\nThis means it gets correctly serialised with the rest of net80211\nstate changes.","distinct":false,"url":"https://api.github.com/repos/erikarn/athp/commits/2e46a4cf11ed0caa7907394a45c1fdbbe5c105be"}]}
{"actor":{"display_login":"erikarn"}}