1. 21 May, 2010 11 commits
    • Reinette Chatre's avatar
      iwlwifi: fix internal scan race · 073d5eab
      Reinette Chatre authored
      It is possible for internal scan to race against itself if the device is
      not returning the scan results from first requests. What happens in this
      case is the cleanup done during the abort of the first internal scan also
      cleans up part of the new scan, causing it to access memory it shouldn't.
      
      Here are details:
      * First internal scan is triggered and scan command sent to device.
      * After seven seconds there is no scan results so the watchdog timer
        triggers a scan abort.
      * The scan abort succeeds and a SCAN_COMPLETE_NOTIFICATION is received for
       failed scan.
      * During processing of SCAN_COMPLETE_NOTIFICATION we clear STATUS_SCANNING
        and queue the "scan_completed" work.
      ** At this time, since the problem that caused the internal scan in first
         place is still present, a new internal scan is triggered.
      The behavior at this point is a bit different between 2.6.34 and 2.6.35
      since 2.6.35 has a lot of this synchronized. The rest of the race
      description will thus be generalized.
      ** As part of preparing for the scan "is_internal_short_scan" is set to
      true.
      * At this point the completion work for fist scan is run. As part of this
        there is some locking missing around the "is_internal_short_scan"
        variable and it is set to "false".
      ** Now the second scan runs and it considers itself a real (not internal0
         scan and thus causes problems with wrong memory being accessed.
      
      The fix is twofold.
      * Since "is_internal_short_scan" should be protected by mutex, fix this in
        scan completion work so that changes to it can be serialized.
      * Do not queue a new internal scan if one is in progress.
      
      This fixes https://bugzilla.kernel.org/show_bug.cgi?id=15824Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      073d5eab
    • Sujith's avatar
      cfg80211: Fix signal_type comparison · 22fe88d3
      Sujith authored
      signal_type is enum cfg80211_signal_type.
      
      This fixes the gcc warning:
      
      scan.c: In function `cfg80211_inform_bss':
      scan.c:518:6: warning: comparison between `enum cfg80211_signal_type' and `enum nl80211_bss'
      scan.c: In function `cfg80211_inform_bss_frame':
      scan.c:574:6: warning: comparison between `enum cfg80211_signal_type' and `enum nl80211_bss'
      Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      22fe88d3
    • Tom Herbert's avatar
      net: fix problem in dequeuing from input_pkt_queue · 76cc8b13
      Tom Herbert authored
      Fix some issues introduced in batch skb dequeuing for input_pkt_queue.
      The primary issue it that the queue head must be incremented only
      after a packet has been processed, that is only after
      __netif_receive_skb has been called.  This is needed for the mechanism
      to prevent OOO packet in RFS.  Also when flushing the input_pkt_queue
      and process_queue, the process queue should be done first to prevent
      OOO packets.
      
      Because the input_pkt_queue has been effectively split into two queues,
      the calculation of the tail ptr is no longer correct.  The correct value
      would be head+input_pkt_queue->len+process_queue->len.  To avoid
      this calculation we added an explict input_queue_tail in softnet_data.
      The tail value is simply incremented when queuing to input_pkt_queue.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76cc8b13
    • Oliver Hartkopp's avatar
      can: SJA1000 add missing spin_lock_init() · 1f01bfd2
      Oliver Hartkopp authored
      As remarked by Sam Ravnborg the spin_lock variable, that has been introduced
      in commit 57c8a456 ("can: Fix SJA1000 command
      register writes on SMP systems") has not been initialized properly.
      
      This patch adds the initialization to allow spinlock debugging.
      Signed-off-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
      CC: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f01bfd2
    • Denis Kirjanov's avatar
      sh_eth: Fix memleak in sh_mdio_release · 0f0b405c
      Denis Kirjanov authored
      Allocated memory for IRQs should be freed when releasing the mii_bus
      Signed-off-by: default avatarDenis Kirjanov <dkirjanov@kernel.org>
      Acked-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0f0b405c
    • David S. Miller's avatar
    • Herbert Xu's avatar
      gro: Fix bogus gso_size on the first fraglist entry · 622e0ca1
      Herbert Xu authored
      When GRO produces fraglist entries, and the resulting skb hits
      an interface that is incapable of TSO but capable of FRAGLIST,
      we end up producing a bogus packet with gso_size non-zero.
      
      This was reported in the field with older versions of KVM that
      did not set the TSO bits on tuntap.
      
      This patch fixes that.
      Reported-by: default avatarIgor Zhang <yugzhang@redhat.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      622e0ca1
    • Mallikarjuna R Chilakala's avatar
      ixgbe:add support for a new 82599 10G Base-T device · 119fc60a
      Mallikarjuna R Chilakala authored
      This adds support for a new copper device for 82599, device id 0x151c.
      This 82599 10GBase-T device uses the PHY's internal temperature sensor
      to guard against over-temp conditions. In this scenario the PHY will be
      put in a low power mode and link will no longer be able to transmit or
      receive any data. When this occurs, the over-temp interrupt is latched
      and driver logs this error message. A HW reset or power cycle is
      required to clear this status.
      Signed-off-by: default avatarMallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      119fc60a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 7a9b1492
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)
        USB: remove unused usb_buffer_alloc and usb_buffer_free macros
        usb: musb: update gfp/slab.h includes
        USB: ftdi_sio: fix legacy SIO-device header
        USB: kl5usb105: reimplement using generic framework
        USB: kl5usb105: minor clean ups
        USB: kl5usb105: fix memory leak
        USB: io_ti: use kfifo to implement write buffering
        USB: io_ti: remove unsused private counter
        USB: ti_usb: use kfifo to implement write buffering
        USB: ir-usb: fix incorrect write-buffer length
        USB: aircable: fix incorrect write-buffer length
        USB: safe_serial: straighten out read processing
        USB: safe_serial: reimplement read using generic framework
        USB: safe_serial: reimplement write using generic framework
        usb-storage: always print quirks
        USB: usb-storage: trivial debug improvements
        USB: oti6858: use port write fifo
        USB: oti6858: use kfifo to implement write buffering
        USB: cypress_m8: use kfifo to implement write buffering
        USB: cypress_m8: remove unused drain define
        ...
      
      Fix up conflicts (due to usb_buffer_alloc/free renaming) in
      	drivers/input/tablet/acecad.c
      	drivers/input/tablet/kbtab.c
      	drivers/input/tablet/wacom_sys.c
      	drivers/media/video/gspca/gspca.c
      	sound/usb/usbaudio.c
      7a9b1492
    • Stephen Rothwell's avatar
      sound: fixup for usb_buffer_alloc/free rename · 3d62e3fd
      Stephen Rothwell authored
      This is needed before the USB merge.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3d62e3fd
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 · f8965467
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)
        qlcnic: adding co maintainer
        ixgbe: add support for active DA cables
        ixgbe: dcb, do not tag tc_prio_control frames
        ixgbe: fix ixgbe_tx_is_paused logic
        ixgbe: always enable vlan strip/insert when DCB is enabled
        ixgbe: remove some redundant code in setting FCoE FIP filter
        ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp
        ixgbe: fix header len when unsplit packet overflows to data buffer
        ipv6: Never schedule DAD timer on dead address
        ipv6: Use POSTDAD state
        ipv6: Use state_lock to protect ifa state
        ipv6: Replace inet6_ifaddr->dead with state
        cxgb4: notify upper drivers if the device is already up when they load
        cxgb4: keep interrupts available when the ports are brought down
        cxgb4: fix initial addition of MAC address
        cnic: Return SPQ credit to bnx2x after ring setup and shutdown.
        cnic: Convert cnic_local_flags to atomic ops.
        can: Fix SJA1000 command register writes on SMP systems
        bridge: fix build for CONFIG_SYSFS disabled
        ARCNET: Limit com20020 PCI ID matches for SOHARD cards
        ...
      
      Fix up various conflicts with pcmcia tree drivers/net/
      {pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and
      wireless/orinoco/spectrum_cs.c} and feature removal
      (Documentation/feature-removal-schedule.txt).
      
      Also fix a non-content conflict due to pm_qos_requirement getting
      renamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c
      f8965467
  2. 20 May, 2010 29 commits