1. 20 11月, 2008 21 次提交
  2. 19 11月, 2008 10 次提交
    • J
      iwlagn: fix RX skb alignment · 4018517a
      Johannes Berg 提交于
      So I dug deeper into the DMA problems I had with iwlagn and a kind soul
      helped me in that he said something about pci-e alignment and mentioned
      the iwl_rx_allocate function to check for crossing 4KB boundaries. Since
      there's 8KB A-MPDU support, crossing 4k boundaries didn't seem like
      something the device would fail with, but when I looked into the
      function for a minute anyway I stumbled over this little gem:
      
      	BUG_ON(rxb->dma_addr & (~DMA_BIT_MASK(36) & 0xff));
      
      Clearly, that is a totally bogus check, one would hope the compiler
      removes it entirely. (Think about it)
      
      After fixing it, I obviously ran into it, nothing guarantees the
      alignment the way you want it,  because of the way skbs and their
      headroom are allocated. I won't explain that here nor double-check that
      I'm right, that goes beyond what most of the CC'ed people care about.
      
      So then I came up with the patch below, and so far my system has
      survived minutes with 64K pages, when it would previously fail in
      seconds. And I haven't seen a single instance of the TX bug either. But
      when you see the patch it'll be pretty obvious to you why.
      
      This should fix the following reported kernel bugs:
      
      http://bugzilla.kernel.org/show_bug.cgi?id=11596
      http://bugzilla.kernel.org/show_bug.cgi?id=11393
      http://bugzilla.kernel.org/show_bug.cgi?id=11983
      
      I haven't checked if there are any elsewhere, but I suppose RHBZ will
      have a few instances too...
      
      I'd like to ask anyone who is CC'ed (those are people I know ran into
      the bug) to try this patch.
      
      I am convinced that this patch is correct in spirit, but I haven't
      understood why, for example, there are so many unmap calls. I'm not
      entirely convinced that this is the only bug leading to the TX reply
      errors.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4018517a
    • J
      mac80211: remove ieee80211_notify_mac · 8e3bad65
      Johannes Berg 提交于
      Before ieee80211_notify_mac() was added, it was presented with the
      use case of using it to tell mac80211 that the association may
      have been lost because the firmware crashed/reset.
      
      Since then, it has also been used by iwlwifi to (slightly) speed
      up re-association after resume, a workaround around the fact that
      mac80211 has no suspend/resume handling yet. It is also not used
      by any other drivers, so clearly it cannot be necessary for "good
      enough" suspend/resume.
      
      Unfortunately, the callback suffers from a severe problem: It only
      works for station mode. If suspend/resume happens while in IBSS or
      any other mode (but station), then the callback is pointless.
      
      Recently, it has created a number of locking issues, first because
      it required rtnl locking rather than RCU due to calling sleeping
      functions within the critical section, and now because it's called
      by iwlwifi from the mac80211 workqueue that may not use the rtnl
      because it is flushed under rtnl.
      (cf. http://bugzilla.kernel.org/show_bug.cgi?id=12046)
      
      I think, therefore, that we should take a step back, remove it
      entirely for now and add the small feature it provided properly.
      For suspend and resume we will need to introduce new hooks, and for
      the case where the firmware was reset the driver will probably
      simply just pretend it has done a suspend/resume cycle to get
      mac80211 to reprogram the hardware completely, not just try to
      connect to the current AP again in station mode. When doing so, we
      will need to take into account locking issues and possibly defer
      to schedule_work from within mac80211 for the resume operation,
      while the suspend operation must be done directly.
      
      Proper suspend/resume should also not necessarily try to reconnect
      to the current AP, the time spent in suspend may have been short
      enough to not be disconnected from the AP, mac80211 will detect
      that the AP went out of range quickly if it did, and if the
      association is lost then the AP will disassoc as soon as a data
      frame is sent. We might also take into account WWOL then, and
      have mac80211 program the hardware into such a mode where it is
      available and requested.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8e3bad65
    • J
      libertas_tf: fix skb tail pointer · 9b44fb89
      Johannes Berg 提交于
      skb->tail can't be meant here because it's not the same across 32/64 bit
      compilations. This means there's no way the current driver can work on
      64-bit architectures.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: stable@kernel.org [2.6.27]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9b44fb89
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 7f0f598a
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        block: hold extra reference to bio in blk_rq_map_user_iov()
        relay: fix cpu offline problem
        Release old elevator on change elevator
        block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT=y and nash
        block/md: fix md autodetection
        block: make add_partition() return pointer to hd_struct
        block: fix add_partition() error path
      7f0f598a
    • A
      suspend: use WARN not WARN_ON to print the message · a6a0c4ca
      Arjan van de Ven 提交于
      By using WARN(), kerneloops.org can collect which component is causing
      the delay and make statistics about that. suspend_test_finish() is
      currently the number 2 item but unless we can collect who's causing
      it we're not going to be able to fix the hot topic ones..
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a6a0c4ca
    • L
      Merge branch 'tracing-fixes-for-linus' of... · 72b51a6b
      Linus Torvalds 提交于
      Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        kernel/profile.c: fix section mismatch warning
        function tracing: fix wrong pos computing when read buffer has been fulfilled
        tracing: fix mmiotrace resizing crash
        ring-buffer: no preempt for sched_clock()
        ring-buffer: buffer record on/off switch
      72b51a6b
    • L
      Merge branch 'sched-fixes-for-linus' of... · 8c60bfb0
      Linus Torvalds 提交于
      Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        cpuset: fix regression when failed to generate sched domains
        sched, signals: fix the racy usage of ->signal in account_group_xxx/run_posix_cpu_timers
        sched: fix kernel warning on /proc/sched_debug access
        sched: correct sched-rt-group.txt pathname in init/Kconfig
      8c60bfb0
    • L
      Merge branch 'core-fixes-for-linus' of... · b6584065
      Linus Torvalds 提交于
      Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        swiotlb: use coherent_dma_mask in alloc_coherent
        MAINTAINERS: remove me as RAID maintainer
      b6584065
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 · 376fdd2a
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6:
        Blackfin arch: fix a broken define in dma-mapping
        Blackfin arch: fix bug - Turn on DEBUG_DOUBLEFAULT, booting SMP kernel crash
        Blackfin arch: fix bug - shared lib function in L2 failed be called
        Blackfin arch: fix incorrect limit check for bf54x check_gpio
        Blackfin arch: fix bug - Cpufreq assumes clocks in kHz and not Hz.
        Blackfin arch: dont warn when running a kernel on the oldest supported silicon
        Blackfin arch: fix bug - kernel build with write back policy fails to be booted up
        Blackfin arch: fix bug - dmacopy test case fail on all platform
        Blackfin arch: Fix typo when adding CONFIG_DEBUG_VERBOSE
        Blackfin arch: don't copy bss when copying L1
        Blackfin arch: fix bug - Fail to boot jffs2 kernel for BF561 with SMP patch
        Blackfin arch: handle case of d_path() returning error in decode_address()
      376fdd2a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · af94ce06
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Fix resume of GPIO unsol event for STAC/IDT
        ALSA: hda - Add quirks for HP Pavilion DV models
        ALSA: hda - Fix GPIO initialization in patch_stac92hd71bxx()
        ALSA: hda - Check model type instead of SSID in patch_92hd71bxx()
        ALSA: sound/pci/pcxhr/pcxhr.c: introduce missing kfree and pci_disable_device
        ALSA: hda: STAC_VREF_EVENT value change
        ALSA: hda - Missing NULL check in hda_beep.c
        ALSA: hda - Add digital beep playback switch for STAC/IDT codecs
      af94ce06
  3. 18 11月, 2008 9 次提交