{"id":100,"date":"2010-06-03T13:42:27","date_gmt":"2010-06-03T21:42:27","guid":{"rendered":"http:\/\/digitalvampire.org\/blog\/?p=100"},"modified":"2017-07-19T23:54:53","modified_gmt":"2017-07-20T07:54:53","slug":"was-it-something-i-said","status":"publish","type":"post","link":"https:\/\/digitalvampire.org\/blog\/index.php\/2010\/06\/03\/was-it-something-i-said\/","title":{"rendered":"Was it something I said?"},"content":{"rendered":"<p>I saw that <a href=\"http:\/\/openbsd.org\/47.html\">OpenBSD 4.7<\/a> was released a couple of weeks ago.\u00a0 I tried to help, I really did.<\/p>\n<p>I used to have a fanless 600MHz VIA system with a cheapie Airlink 101 Wi-Fi card that I used as a home wireless router.\u00a0 I ran OpenBSD on it for a few reasons &#8212; at the time I started, the OpenBSD wireless stack was ahead of Linux; their security obsession appealed to me; and not using Linux <em>everywhere<\/em> seemed like a fun thing to do.\u00a0 It all worked pretty well, except that the wireless interface sometimes got stuck while forwarding heavy traffic.\u00a0 For quite a while, I survived with hacks similar to <a href=\"http:\/\/marc.info\/?l=openbsd-misc&amp;m=124087086023018&amp;w=2\">this nutty crontab entry<\/a>.<\/p>\n<p>Eventually, though, I said to myself, &#8220;Self, you&#8217;re a kernel hacker.\u00a0 You should be able to fix this driver.&#8221;\u00a0 And indeed, after a couple of evenings of hacking, I figured out what was wrong and came up with a <a href=\"http:\/\/marc.info\/?l=openbsd-misc&amp;m=125895269930106&amp;w=2\">patch<\/a> that improved things immensely for me.\u00a0 The problem was that the driver was not written with a system as slow as mine in mind, and it got confused if more than one interrupt happened before it got a chance to service the first interrupt &#8212; you can read the patch description for full details.\u00a0 Of course, being a good free software citizen, I sent my patch to the OpenBSD mailing lists so that it could be applied upstream.<\/p>\n<p>Here&#8217;s where things went wrong.\u00a0 I never heard from the author of this driver &#8212; I got no reply when I reported the original bug, and no replies to any mail I sent about my patch.\u00a0 I did get several reports from other users who had the same problem and found that my patch fixed things for them as well, and finally another OpenBSD committer wrote, &#8220;<a href=\"http:\/\/marc.info\/?l=openbsd-tech&amp;m=126377050811426&amp;w=2\">Then if no one objects I&#8217;ll commit it tomorrow.<\/a>&#8221;\u00a0 Unfortunately, at this point the original driver author did seem to get interested &#8212; he sent private email to this committer (not copying the mailing list or me) objecting, and so we ended up with, &#8220;<a href=\"http:\/\/marc.info\/?l=openbsd-tech&amp;m=126420338617838&amp;w=2\">Objections were made.  Apparently this patch only works for AP and does funky stuff to the hardware.  So back to the drawing board on this one.<\/a>&#8221;\u00a0 As I said, all of my attempts to work directly with the driver author to find out what those objections were or how to improve the patch were ignored.<\/p>\n<p>At this point I gave up on getting my patch upstream (and when I upgraded my wireless to 802.11n, I chose a MIPS box running OpenWrt).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I saw that OpenBSD 4.7 was released a couple of weeks ago.\u00a0 I tried to help, I really did. I used to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-hacking"],"_links":{"self":[{"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":8,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":628,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100\/revisions\/628"}],"wp:attachment":[{"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digitalvampire.org\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}