1. 18 Sep, 2011 1 commit
    • Linus Torvalds's avatar
      Merge git://github.com/davem330/net · b0e7031a
      Linus Torvalds authored
      * git://github.com/davem330/net: (62 commits)
        ipv6: don't use inetpeer to store metrics for routes.
        can: ti_hecc: include linux/io.h
        IRDA: Fix global type conflicts in net/irda/irsysctl.c v2
        net: Handle different key sizes between address families in flow cache
        net: Align AF-specific flowi structs to long
        ipv4: Fix fib_info->fib_metrics leak
        caif: fix a potential NULL dereference
        sctp: deal with multiple COOKIE_ECHO chunks
        ibmveth: Fix checksum offload failure handling
        ibmveth: Checksum offload is always disabled
        ibmveth: Fix issue with DMA mapping failure
        ibmveth: Fix DMA unmap error
        pch_gbe: support ML7831 IOH
        pch_gbe: added the process of FIFO over run error
        pch_gbe: fixed the issue which receives an unnecessary packet.
        sfc: Use 64-bit writes for TX push where possible
        Revert "sfc: Use write-combining to reduce TX latency" and follow-ups
        bnx2x: Fix ethtool advertisement
        bnx2x: Fix 578xx link LED
        bnx2x: Fix XMAC loopback test
        ...
      b0e7031a
  2. 17 Sep, 2011 3 commits
  3. 16 Sep, 2011 22 commits
    • Nicholas Bellinger's avatar
      iscsi-target: Fix sendpage breakage with proper padding+DataDigest iovec offsets · 40b05497
      Nicholas Bellinger authored
      This patch fixes a bug in the iscsit_fe_sendpage_sg() transmit codepath that
      was originally introduced with the v3.1 iscsi-target merge that incorrectly
      uses hardcoded cmd->iov_data_count values to determine cmd->iov_data[] offsets
      for extra outgoing padding and DataDigest payload vectors.
      
      This code is obviously incorrect for the DataDigest enabled case with sendpage
      offload, and this fix ensures correct operation for padding + DataDigest,
      padding only, and DataDigest only cases.  The bug was introduced during a
      pre-merge change in iscsit_fe_sendpage_sg() to natively use struct scatterlist
      instead of the legacy v3.0 struct se_mem logic.
      
      Cc: Andy Grover <agrover@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      40b05497
    • Daniel Mack's avatar
      can: ti_hecc: include linux/io.h · 34b8686d
      Daniel Mack authored
      This fixes a build breakage for OMAP3 boards.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Cc: Wolfgang Grandegger <wg@grandegger.com>
      Cc: netdev@vger.kernel.org
      Acked-by: default avatarWolfgang Grandegger <wg@grandegger.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34b8686d
    • Andi Kleen's avatar
      IRDA: Fix global type conflicts in net/irda/irsysctl.c v2 · 9566042e
      Andi Kleen authored
      The externs here didn't agree with the declarations in qos.c.
      
      Better would be probably to move this into a header, but since it's
      common practice to have naked externs with sysctls I left it for now.
      
      Cc: samuel@sortiz.org
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9566042e
    • dpward's avatar
      net: Handle different key sizes between address families in flow cache · aa1c366e
      dpward authored
      With the conversion of struct flowi to a union of AF-specific structs, some
      operations on the flow cache need to account for the exact size of the key.
      Signed-off-by: default avatarDavid Ward <david.ward@ll.mit.edu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aa1c366e
    • David Ward's avatar
      net: Align AF-specific flowi structs to long · 728871bc
      David Ward authored
      AF-specific flowi structs are now passed to flow_key_compare, which must
      also be aligned to a long.
      Signed-off-by: default avatarDavid Ward <david.ward@ll.mit.edu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      728871bc
    • Yan, Zheng's avatar
      ipv4: Fix fib_info->fib_metrics leak · 19c1ea14
      Yan, Zheng authored
      Commit 4670994d(net,rcu: convert call_rcu(fc_rport_free_rcu) to
      kfree_rcu()) introduced a memory leak. This patch reverts it.
      Signed-off-by: default avatarZheng Yan <zheng.z.yan@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      19c1ea14
    • Eric Dumazet's avatar
      caif: fix a potential NULL dereference · 4fb66b82
      Eric Dumazet authored
      Commit bd30ce4b (caif: Use RCU instead of spin-lock in caif_dev.c)
      added a potential NULL dereference in case alloc_percpu() fails.
      
      caif_device_alloc() can also use GFP_KERNEL instead of GFP_ATOMIC.
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      CC: Sjur Brændeland <sjur.brandeland@stericsson.com>
      Acked-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4fb66b82
    • Max Matveev's avatar
      sctp: deal with multiple COOKIE_ECHO chunks · d5ccd496
      Max Matveev authored
      Attempt to reduce the number of IP packets emitted in response to single
      SCTP packet (2e3216cd) introduced a complication - if a packet contains
      two COOKIE_ECHO chunks and nothing else then SCTP state machine corks the
      socket while processing first COOKIE_ECHO and then loses the association
      and forgets to uncork the socket. To deal with the issue add new SCTP
      command which can be used to set association explictly. Use this new
      command when processing second COOKIE_ECHO chunk to restore the context
      for SCTP state machine.
      Signed-off-by: default avatarMax Matveev <makc@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d5ccd496
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://github.com/dtor/input · 279b1e0f
      Linus Torvalds authored
      * 'for-linus' of git://github.com/dtor/input:
        Input: wacom - fix touch parsing on newer Bamboos
        Input: bcm5974 - add MacBookAir4,1 trackpad support
        Input: wacom - add POINTER and DIRECT device properties
        Input: adp5588-keys - remove incorrect modalias
        Input: cm109 - fix checking return value of usb_control_msg
        Input: wacom - advertise BTN_TOOL_PEN and BTN_STYLUS for PenPartner
        Input: wacom - remove pressure for touch devices
      279b1e0f
    • Ming Lei's avatar
      firewire: ohci: add no MSI quirk for O2Micro controller · f39aa30d
      Ming Lei authored
      This fixes https://bugs.launchpad.net/ubuntu/+source/linux/+bug/801719 .
      
      An O2Micro PCI Express FireWire controller,
      "FireWire (IEEE 1394) [0c00]: O2 Micro, Inc. Device [1217:11f7] (rev 05)"
      which is a combination device together with an SDHCI controller and some
      sort of storage controller, misses SBP-2 status writes from an attached
      FireWire HDD.  This problem goes away if MSI is disabled for this
      FireWire controller.
      
      The device reportedly does not require QUIRK_CYCLE_TIMER.
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (amended changelog)
      Cc: <stable@kernel.org>
      f39aa30d
    • Nicholas Bellinger's avatar
      iscsi-target: Disable markers + remove dangerous local scope array usage · 2ff017f5
      Nicholas Bellinger authored
      This patch makes iscsi-target explictly disable OFMarker=Yes and IFMarker=yes
      parameter key usage during iscsi login by setting IFMarkInt_Reject and
      OFMarkInt_Reject values in iscsi_enforce_integrity_rules() to effectively
      disable iscsi marker usage.  With this patch, an initiator proposer asking
      to enable either marker parameter keys will be issued a 'No' response, and
      the target sets OFMarkInt + IFMarkInt parameter key response to 'Irrelevant'.
      
      With markers disabled during iscsi login, this patch removes the problematic
      on-stack local-scope array for marker intervals in iscsit_do_rx_data() +
      iscsit_do_tx_data(), and other related marker code in iscsi_target_util.c.
      This fixes a potentional stack smashing scenario with small range markers
      enabled and a large MRDSL as reported by DanC here:
      
      [bug report] target: stack can be smashed
      http://www.spinics.net/lists/target-devel/msg00453.htmlReported-by: default avatarDan Carpenter <error27@gmail.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      2ff017f5
    • Nicholas Bellinger's avatar
      target: Skip non hex characters for VPD=0x83 NAA IEEE Registered Extended · 784eb99e
      Nicholas Bellinger authored
      This patch adds target_parse_naa_6h_vendor_specific() to address a bug where the
      conversion of PRODUCT SERIAL NUMBER to use hex2bin() in target_emulate_evpd_83()
      was not doing proper isxdigit() checking.  This conversion of the vpd_unit_serial
      configifs attribute is done while generating a VPD=0x83 NAA IEEE Registered
      Extended DESIGNATOR format's 100 bits of unique VENDOR SPECIFIC IDENTIFIER +
      VENDOR SPECIFIC IDENTIFIER EXTENSION area.
      
      This patch allows vpd_unit_serial (VPD=0x80) and the T10 Vendor ID DESIGNATOR
      format (VPD=0x83) to continue to use free-form variable length ASCII values,
      and now skips any non hex characters for fixed length NAA IEEE Registered Extended
      DESIGNATOR format (VPD=0x83) requring the binary conversion.
      
      This was originally reported by Martin after the v3.1-rc1 change to use hex2bin()
      in commit 11650b85 where the use of non hex
      characters in vpd_unit_serial generated different values than the original
      v3.0 internal hex -> binary code.  This v3.1 change caused a problem with
      filesystems who write a NAA DESIGNATOR onto it's ondisk metadata, and this patch
      will (again) change existing values to ensure that non hex characters are not
      included in the fixed length NAA DESIGNATOR.
      
      Note this patch still expects vpd_unit_serial to be set via existing userspace
      methods of uuid generation, and does not do strict formatting via configfs input.
      
      The original bug report and thread can be found here:
      
      NAA breakage
      http://www.spinics.net/lists/target-devel/msg00477.html
      
      The v3.1-rc1 formatting of VPD=0x83 w/o this patch:
      
      VPD INQUIRY: Device Identification page
        Designation descriptor number 1, descriptor length: 20
          designator_type: NAA,  code_set: Binary
          associated with the addressed logical unit
            NAA 6, IEEE Company_id: 0x1405
            Vendor Specific Identifier: 0xffde35ebf
            Vendor Specific Identifier Extension: 0x3092f498ffa820f9
            [0x6001405ffde35ebf3092f498ffa820f9]
        Designation descriptor number 2, descriptor length: 56
          designator_type: T10 vendor identification,  code_set: ASCII
          associated with the addressed logical unit
            vendor id: LIO-ORG
            vendor specific: IBLOCK:ffde35ec-3092-4980-a820-917636ca54f1
      
      The v3.1-final formatting of VPD=0x83 w/ this patch:
      
      VPD INQUIRY: Device Identification page
        Designation descriptor number 1, descriptor length: 20
          designator_type: NAA,  code_set: Binary
          associated with the addressed logical unit
            NAA 6, IEEE Company_id: 0x1405
            Vendor Specific Identifier: 0xffde35ec3
            Vendor Specific Identifier Extension: 0x924980a82091763
            [0x6001405ffde35ec30924980a82091763]
        Designation descriptor number 2, descriptor length: 56
          designator_type: T10 vendor identification,  code_set: ASCII
          associated with the addressed logical unit
            vendor id: LIO-ORG
            vendor specific: IBLOCK:ffde35ec-3092-4980-a820-917636ca54f1
      
      (v2: Fix parsing code to dereference + check for string terminator instead
           of null pointer to ensure a zeroed payload for vpd_unit_serial less
           than 100 bits of NAA DESIGNATOR VENDOR SPECIFIC area.  Also, remove
           the unnecessary bitwise assignment)
      Reported-by: default avatarMartin Svec <martin.svec@zoner.cz>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      784eb99e
    • Anton Blanchard's avatar
      ibmveth: Fix checksum offload failure handling · fb82fd20
      Anton Blanchard authored
      Fix a number of issues in ibmveth_set_csum_offload:
      
      - set_attr6 and clr_attr6 may be used uninitialised
      
      - We store the result of the IPV4 checksum change in ret but overwrite
        it in a couple of places before checking it again later. Add ret4
        to make it obvious what we are doing.
      
      - We weren't clearing the NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM flags
        if the enable of that hypervisor feature failed.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fb82fd20
    • Anton Blanchard's avatar
      ibmveth: Checksum offload is always disabled · 91aae1e5
      Anton Blanchard authored
      Commit b9367bf3 (net: ibmveth: convert to hw_features) reversed
      a check in ibmveth_set_csum_offload that results in checksum offload
      never being enabled.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: <stable@kernel.org> # 3.0+
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91aae1e5
    • Anton Blanchard's avatar
      ibmveth: Fix issue with DMA mapping failure · b93da27f
      Anton Blanchard authored
      descs[].fields.address is 32bit which truncates any dma mapping
      errors so dma_mapping_error() fails to catch it.
      
      Use a dma_addr_t to do the comparison. With this patch I was able
      to transfer many gigabytes of data with IOMMU fault injection set
      at 10% probability.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: <stable@kernel.org> # v2.6.37+
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b93da27f
    • Brian King's avatar
      ibmveth: Fix DMA unmap error · 33a48ab1
      Brian King authored
      Commit 6e8ab30e (ibmveth: Add scatter-gather support) introduced a
      DMA mapping API inconsistency resulting in dma_unmap_page getting
      called on memory mapped via dma_map_single. This was seen when
      CONFIG_DMA_API_DEBUG was enabled. Fix up this API usage inconsistency.
      Signed-off-by: default avatarBrian King <brking@linux.vnet.ibm.com>
      Acked-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: <stable@kernel.org> # v2.6.37+
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      33a48ab1
    • Linus Torvalds's avatar
      Merge branch 'stable/bug.fixes' of git://oss.oracle.com/git/kwilk/xen · abbe0d3c
      Linus Torvalds authored
      * 'stable/bug.fixes' of git://oss.oracle.com/git/kwilk/xen:
        xen/i386: follow-up to "replace order-based range checking of M2P table by linear one"
        xen/irq: Alter the locking to use a mutex instead of a spinlock.
        xen/e820: if there is no dom0_mem=, don't tweak extra_pages.
        xen: disable PV spinlocks on HVM
      abbe0d3c
    • Christoph Hellwig's avatar
      tcm_fc: Work queue based approach instead of managing own thread and event based mechanism · 58fc73d1
      Christoph Hellwig authored
      Problem: Changed from wake_up_interruptible -> wake_up_process and
      wait_event_interruptible-> schedule_timeout_interruptible broke the FCoE
      target.  Earlier approach of wake_up_interruptible was also looking at
      'queue_cnt' which is not necessary, because it increment of 'queue_cnt'
      with wake_up_inetrriptible / waker_up_process introduces race condition.
      
      Fix: Instead of fixing the code which used wake_up_process and remove
      'queue_cnt', using work_queue based approach is cleaner and acheives
      same result. As well, work queue based approach has less programming
      overhead and OS manages threads which processes work queues.
      
      This patch is developed by Christoph Hellwig and reviwed+validated by
      Kiran Patil.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarKiran Patil <kiran.patil@intel.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      58fc73d1
    • Kiran Patil's avatar
      tcm_fc: Invalidation of DDP context for FCoE target in error conditions · 079587b4
      Kiran Patil authored
      Problem: HW DDP context wasn;t invalidated in case of ABORTS, etc...
      This leads to the problem where memory pages which are used for DDP
      as user descriptor could get reused for some other purpose (such as to
      satisfy new memory allocation request either by kernel or user mode threads)
      and since HW DDP context was not invalidated, HW continue to write to
      those pages, hence causing memory corruption.
      
      Fix: Either on incoming ABORTS or due to exchange time out, allowed the
      target to cleanup HW DDP context if it was setup for respective ft_cmd.
      Added new function to perform this cleanup, furthur it can be enhanced
      for other cleanup activity.
      
      Additinal Notes: To avoid calling ddp_done from multiple places, composed
      the functionality in helper function "ft_invl_hw_context" and it is being
      called from multiple places. Cleaned up code in function "ft_recv_write_data"
      w.r.t DDP.
      Signed-off-by: default avatarKiran Patil <kiran.patil@intel.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      079587b4
    • Roland Dreier's avatar
      target: Fix race between multiple invocations of target_qf_do_work() · bcac364a
      Roland Dreier authored
      When work is scheduled with schedule_work(), the work can end up
      running on multiple CPUs at the same time -- this happens if
      the work is already running on one CPU and schedule_work() is called
      on another CPU.  This leads to list corruption with target_qf_do_work(),
      which is roughly doing:
      
      	spin_lock(...);
      	list_for_each_entry_safe(...) {
      		list_del(...);
      		spin_unlock(...);
      
      		// do stuff
      
      		spin_lock(...);
      	}
      
      With multiple CPUs running this code, one CPU can end up deleting the
      list entry that the other CPU is about to work on.
      
      Fix this by splicing the list entries onto a local list and then
      operating on that in the work function.  This way, each invocation of
      target_qf_do_work() operates on its own local list and so multiple
      invocations don't corrupt each other's list.  This also avoids dropping
      and reacquiring the lock for each list entry.
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      bcac364a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://github.com/tiwai/sound · c455ea4f
      Linus Torvalds authored
      * 'for-linus' of git://github.com/tiwai/sound:
        ALSA: pcm - fix race condition in wait_for_avail()
        ALSA: HDA: Cirrus - fix "Surround Speaker" volume control name
        ALSA: hda - Terminate the recursive connection search properly
        ASoC: Fix trivial build regression in Kirkwood I2S
        ASoC: Blackfin: bf5xx-ad193x: Fix codec device name
        ASoC: Fix reporting of partial jack updates
        ASoC: imx: Fix build warning of unused 'card' variable
        ASoC: Fix register cache sync register_writable WARN_ONs
        ASoC: snd_soc_codec_{readable,writable}_register change default to true
        ASoC: soc-dapm: Fix parameter comment for snd_soc_dapm_free
        MAINTAINERS: Add some missed Wolfson files
        ASoC: MPC5200: replace of_device with platform_device
      c455ea4f
    • David S. Miller's avatar
      Merge branch 'master' of ../netdev/ · 52b9aca7
      David S. Miller authored
      52b9aca7
  4. 15 Sep, 2011 14 commits