1. 01 7月, 2012 3 次提交
  2. 30 6月, 2012 10 次提交
  3. 29 6月, 2012 27 次提交
    • D
      ipv4: Elide fib_validate_source() completely when possible. · 7a9bc9b8
      David S. Miller 提交于
      If rpfilter is off (or the SKB has an IPSEC path) and there are not
      tclassid users, we don't have to do anything at all when
      fib_validate_source() is invoked besides setting the itag to zero.
      
      We monitor tclassid uses with a counter (modified only under RTNL and
      marked __read_mostly) and we protect the fib_validate_source() real
      work with a test against this counter and whether rpfilter is to be
      done.
      
      Having a way to know whether we need no tclassid processing or not
      also opens the door for future optimized rpfilter algorithms that do
      not perform full FIB lookups.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7a9bc9b8
    • E
      net: l2tp_eth: provide tx_dropped counter · b8c84307
      Eric Dumazet 提交于
      Change l2tp_xmit_skb() to return NET_XMIT_DROP in case skb is dropped.
      
      Use kfree_skb() instead dev_kfree_skb() for drop_monitor pleasure.
      
      Support tx_dropped counter for l2tp_eth
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: James Chapman <jchapman@katalix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b8c84307
    • M
      netxen_nic: restrict force firmware dump when dump is disabled. · a777c892
      Manish chopra 提交于
      o Set the ethtool_dump flag (=ETH_FW_DUMP_DISABLE) when dump is disabled.
      o update driver version to 4.0.80
      Signed-off-by: NManish chopra <manish.chopra@qlogic.com>
      Signed-off-by: NRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a777c892
    • V
      ipv6_tunnel: Allow receiving packets on the fallback tunnel if they pass sanity checks · d0087b29
      Ville Nuorvala 提交于
      At Facebook, we do Layer-3 DSR via IP-in-IP tunneling. Our load balancers wrap
      an extra IP header on incoming packets so they can be routed to the backend.
      In the v4 tunnel driver, when these packets fall on the default tunl0 device,
      the behavior is to decapsulate them and drop them back on the stack. So our
      setup is that tunl0 has the VIP and eth0 has (obviously) the backend's real
      address.
      
      In IPv6 we do the same thing, but the v6 tunnel driver didn't have this same
      behavior - if you didn't have an explicit tunnel setup, it would drop the
      packet.
      
      This patch brings that v4 feature to the v6 driver.
      
      The same IPv6 address checks are performed as with any normal tunnel,
      but as the fallback tunnel endpoint addresses are unspecified, the checks
      must be performed on a per-packet basis, rather than at tunnel
      configuration time.
      
      [Patch description modified by phil@ipom.com]
      Signed-off-by: NVille Nuorvala <ville.nuorvala@gmail.com>
      Tested-by: NPhil Dibowitz <phil@ipom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d0087b29
    • A
      xen/netback: only non-freed SKB is queued into tx_queue · 1e0b6eac
      Annie Li 提交于
      After SKB is queued into tx_queue, it will be freed if request_gop is NULL.
      However, no dequeue action is called in this situation, it is likely that
      tx_queue constains freed SKB. This patch should fix this issue, and it is
      based on 3.5.0-rc4+.
      
      This issue is found through code inspection, no bug is seen with it currently.
      I run netperf test for several hours, and no network regression was found.
      Signed-off-by: NAnnie Li <annie.li@oracle.com>
      Acked-by: NIan Campbell <ian.campbell@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1e0b6eac
    • S
      caif-hsi: Fix merge issues. · 7fa8ad6d
      Sjur Brændeland 提交于
      Fix the failing merge in net-next by reverting the last
      net-next merge for caif_hsi.c and then merge in the commit:
      "caif-hsi: Bugfix - Piggyback'ed embedded CAIF frame lost"
      from the net repository.
      
      The commit:"caif-hsi: Add missing return in error path" from
      net repository was dropped, as it changed code previously removed in the
      net-next repository.
      Signed-off-by: NSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7fa8ad6d
    • D
      ipv4: Remove extraneous assignment of dst->tclassid. · 3085a4b7
      David S. Miller 提交于
      We already set it several lines above.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3085a4b7
    • D
      ipv4: Adjust in_dev handling in fib_validate_source() · 9e56e380
      David S. Miller 提交于
      Checking for in_dev being NULL is pointless.
      
      In fact, all of our callers have in_dev precomputed already,
      so just pass it in and remove the NULL checking.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9e56e380
    • D
      ipv4: Fix bugs in fib_compute_spec_dst(). · a207a4b2
      David S. Miller 提交于
      Based upon feedback from Julian Anastasov.
      
      1) Use route flags to determine multicast/broadcast, not the
         packet flags.
      
      2) Leave saddr unspecified in flow key.
      
      3) Adjust how we invoke inet_select_addr().  Pass ip_hdr(skb)->saddr as
         second arg, and if it was zeronet use link scope.
      
      4) Use loopback as input interface in flow key.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a207a4b2
    • T
      net: Use NLMSG_DEFAULT_SIZE in combination with nlmsg_new() · 58050fce
      Thomas Graf 提交于
      Using NLMSG_GOODSIZE results in multiple pages being used as
      nlmsg_new() will automatically add the size of the netlink
      header to the payload thus exceeding the page limit.
      
      NLMSG_DEFAULT_SIZE takes this into account.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Cc: Jiri Pirko <jpirko@redhat.com>
      Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      Cc: Sergey Lapin <slapin@ossfans.org>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
      Cc: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Reviewed-by: NJiri Pirko <jpirko@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      58050fce
    • N
      tcp: plug dst leak in tcp_v6_conn_request() · 9f10d3f6
      Neal Cardwell 提交于
      The code in tcp_v6_conn_request() was implicitly assuming that
      tcp_v6_send_synack() would take care of dst_release(), much as
      tcp_v4_send_synack() already does. This resulted in
      tcp_v6_conn_request() leaking a dst if sysctl_tw_recycle is enabled.
      
      This commit restructures tcp_v6_send_synack() so that it accepts a dst
      pointer and takes care of releasing the dst that is passed in, to plug
      the leak and avoid future surprises by bringing the IPv6 behavior in
      line with the IPv4 side.
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f10d3f6
    • N
      tcp: use inet6_csk_route_req() in tcp_v6_send_synack() · 9494218f
      Neal Cardwell 提交于
      With the recent change (earlier in this patch series) to set
      flowi6_oif to treq->iif in inet6_csk_route_req(), the dst lookup in
      these two functions is now identical, so tcp_v6_send_synack() can now
      just call inet6_csk_route_req(), to reduce code duplication and keep
      things closer to the IPv4 side, which is structured this way.
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9494218f
    • N
      tcp: pass fl6 to inet6_csk_route_req() · 3840a06e
      Neal Cardwell 提交于
      This commit changes inet_csk_route_req() so that it uses a pointer to
      a struct flowi6, rather than allocating its own on the stack. This
      brings its behavior in line with its IPv4 cousin,
      inet_csk_route_req(), and allows a follow-on patch to fix a dst leak.
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3840a06e
    • N
      tcp: fix inet6_csk_route_req() for link-local addresses · 9247869e
      Neal Cardwell 提交于
      Fix inet6_csk_route_req() to use as the flowi6_oif the treq->iif,
      which is correctly fixed up in tcp_v6_conn_request() to handle the
      case of link-local addresses. This brings it in line with the
      tcp_v6_send_synack() code, which is already correctly using the
      treq->iif in this way.
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9247869e
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b26d344c
      David S. Miller 提交于
      Conflicts:
      	drivers/net/caif/caif_hsi.c
      	drivers/net/usb/qmi_wwan.c
      
      The qmi_wwan merge was trivial.
      
      The caif_hsi.c, on the other hand, was not.  It's a conflict between
      1c385f1f ("caif-hsi: Replace platform
      device with ops structure.") in the net-next tree and commit
      39abbaef ("caif-hsi: Postpone init of
      HIS until open()") in the net tree.
      
      I did my best with that one and will ask Sjur to check it out.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b26d344c
    • D
      davinci_cpdma: include linux/module.h · 76fbc247
      Daniel Mack 提交于
      This fixes a number of warnings such as:
      
        CC      drivers/net/ethernet/ti/davinci_cpdma.o
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: data definition
      has no type or storage class
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: type defaults to
      ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: parameter names
      (without types) in function declaration
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Christian Riesch <christian.riesch@omicron.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      76fbc247
    • D
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · ca33c00f
      David S. Miller 提交于
      John Linville says:
      
      ====================
      Amitkumar Karwar gives us two mwifiex fixes: one fixes some skb
      manipulations when handling some event messages; and another that
      does some similar fixing on an error path.
      
      Avinash Patil gives us a fix for for a memory leak in mwifiex.
      
      Dan Rosenberg offers an NFC NCI fix to enforce some message length
      limits to prevent buffer overflows.
      
      Eliad Peller provides a mac80211 fix to prevent some frames from
      being built with an invalid BSSID.
      
      Eric Dumazet sends an NFC fix to prevent a BUG caused by a NULL
      pointer dereference.
      
      Felix Fietkau has an ath9k fix for a regression causing
      LEAP-authenticated connection failures.
      
      Johannes Berg provides an iwlwifi fix that eliminates some log SPAM
      after an authentication/association timeout.  He also provides a
      mac80211 fix to prevent incorrectly addressing certain action frames
      (and in so doing, to comply with the 802.11 specs).
      
      Larry Finger provides a few USB IDs for the rtl8192cu driver --
      should be harmless.
      
      Panayiotis Karabassis provices a one-liner to fix kernel bug 42903
      (a system freeze).
      
      Randy Dunlap provides a one-line Kconfig change to prevent build
      failures with some configurations.
      
      Stone Piao provides an mwifiex sequence numbering fix and a fix
      to prevent mwifiex from attempting to include eapol frames in an
      aggregation frame.
      
      Finally, Tom Hughes provides an ath9k fix for a NULL pointer
      dereference.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ca33c00f
    • C
      gianfar: Fix RXICr/TXICr programming for multi-queue mode · 9740e001
      Claudiu Manoil 提交于
      The correct behavior is to program the interrupt coalescing regs
      (RXICr/TXICr) in accordance with the Rx/Tx Q's "rx/txcoalescing"
      flag. That is, if the coalescing flag is 0 for a given Rx/Tx queue
      then the corresponding coalescing register should be cleared.
      This behavior is correctly implemented for the single-queue mode
      (SQ_SG_MODE), but not for the multi-queue mode (MQ_MG_MODE).
      This fixes the later case.
      Signed-off-by: NClaudiu Manoil <claudiu.manoil@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9740e001
    • V
      net: Downgrade CAP_SYS_MODULE deprecated message from error to warning. · 7cecb523
      Vinson Lee 提交于
      Make logging level consistent with other deprecation messages in net
      subsystem.
      Signed-off-by: NVinson Lee <vlee@twitter.com>
      Cc: David Mackey <tdmackey@twitter.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7cecb523
    • B
      net: qmi_wwan: fix Oops while disconnecting · d9b87068
      Bjørn Mork 提交于
      usbnet_disconnect() will set intfdata to NULL before calling
      the minidriver unbind function.  The cdc_wdm subdriver cannot
      know that it is disconnecting until the qmi_wwan unbind
      function has called its disconnect function.  This means that
      we must be able to support the cdc_wdm subdriver operating
      normally while usbnet_disconnect() is running, and in
      particular that intfdata may be NULL.
      
      The only place this matters is in qmi_wwan_cdc_wdm_manage_power
      which is called from cdc_wdm.  Simply testing for NULL
      intfdata there is sufficient to allow it to continue working
      at all times.
      
      Fixes this Oops where a cdc-wdm device was closed while the
      USB device was disconnecting, causing wdm_release to call
      qmi_wwan_cdc_wdm_manage_power after intfdata was set to
      NULL by usbnet_disconnect:
      
      [41819.087460] BUG: unable to handle kernel NULL pointer dereference at 00000080
      [41819.087815] IP: [<f8640458>] qmi_wwan_manage_power+0x68/0x90 [qmi_wwan]
      [41819.088028] *pdpt = 000000000314f001 *pde = 0000000000000000
      [41819.088028] Oops: 0002 [#1] SMP
      [41819.088028] Modules linked in: qmi_wwan option usb_wwan usbserial usbnet
      cdc_wdm nls_iso8859_1 nls_cp437 vfat fat usb_storage bnep rfcomm bluetooth
      parport_pc ppdev binfmt_misc iptable_nat nf_nat nf_conntrack_ipv4
      nf_conntrack nf_defrag_ipv4 iptable_mangle iptable_filter ip_tables
      x_tables dm_crypt uvcvideo snd_hda_codec_realtek snd_hda_intel
      videobuf2_core snd_hda_codec joydev videodev videobuf2_vmalloc
      hid_multitouch snd_hwdep arc4 videobuf2_memops snd_pcm snd_seq_midi
      snd_rawmidi snd_seq_midi_event ath9k mac80211 snd_seq ath9k_common ath9k_hw
      ath snd_timer snd_seq_device sparse_keymap dm_multipath scsi_dh coretemp
      mac_hid snd soundcore cfg80211 snd_page_alloc psmouse serio_raw microcode
      lp parport dm_mirror dm_region_hash dm_log usbhid hid i915 drm_kms_helper
      drm r8169 i2c_algo_bit wmi video [last unloaded: qmi_wwan]
      [41819.088028]
      [41819.088028] Pid: 23292, comm: qmicli Not tainted 3.4.0-5-generic #11-Ubuntu GIGABYTE T1005/T1005
      [41819.088028] EIP: 0060:[<f8640458>] EFLAGS: 00010246 CPU: 1
      [41819.088028] EIP is at qmi_wwan_manage_power+0x68/0x90 [qmi_wwan]
      [41819.088028] EAX: 00000000 EBX: 00000000 ECX: 000000c3 EDX: 00000000
      [41819.088028] ESI: c3b27658 EDI: 00000000 EBP: c298bea4 ESP: c298be98
      [41819.088028]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      [41819.088028] CR0: 8005003b CR2: 00000080 CR3: 3605e000 CR4: 000007f0
      [41819.088028] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      [41819.088028] DR6: ffff0ff0 DR7: 00000400
      [41819.088028] Process qmicli (pid: 23292, ti=c298a000 task=f343b280 task.ti=c298a000)
      [41819.088028] Stack:
      [41819.088028]  00000000 c3b27658 e2a80d00 c298beb0 f864051a c3b27600 c298bec0 f9027099
      [41819.088028]  c2fd6000 00000008 c298bef0 c1147f96 00000001 00000000 00000000 f4e54790
      [41819.088028]  ecf43a00 ecf43a00 c2fd6008 c2fd6000 ebbd7600 ffffffb9 c298bf08 c1144474
      [41819.088028] Call Trace:
      [41819.088028]  [<f864051a>] qmi_wwan_cdc_wdm_manage_power+0x1a/0x20 [qmi_wwan]
      [41819.088028]  [<f9027099>] wdm_release+0x69/0x70 [cdc_wdm]
      [41819.088028]  [<c1147f96>] fput+0xe6/0x210
      [41819.088028]  [<c1144474>] filp_close+0x54/0x80
      [41819.088028]  [<c1046a65>] put_files_struct+0x75/0xc0
      [41819.088028]  [<c1046b56>] exit_files+0x46/0x60
      [41819.088028]  [<c1046f81>] do_exit+0x141/0x780
      [41819.088028]  [<c107248f>] ? wake_up_state+0xf/0x20
      [41819.088028]  [<c1053f48>] ? signal_wake_up+0x28/0x40
      [41819.088028]  [<c1054f3b>] ? zap_other_threads+0x6b/0x80
      [41819.088028]  [<c1047864>] do_group_exit+0x34/0xa0
      [41819.088028]  [<c10478e8>] sys_exit_group+0x18/0x20
      [41819.088028]  [<c15bb7df>] sysenter_do_call+0x12/0x28
      [41819.088028] Code: 04 83 e7 01 c1 e7 03 0f b6 42 18 83 e0 f7 09 f8 88 42
      18 8b 43 04 e8 48 9a dd c8 89 f0 8b 5d f4 8b 75 f8 8b 7d fc 89 ec 5d c3 90
      <f0> ff 88 80 00 00 00 0f 94 c0 84 c0 75 b7 31 f6 8b 5d f4 89 f0
      [41819.088028] EIP: [<f8640458>] qmi_wwan_manage_power+0x68/0x90 [qmi_wwan] SS:ESP 0068:c298be98
      [41819.088028] CR2: 0000000000000080
      [41819.149492] ---[ end trace 0944479ff8257f55 ]---
      Reported-by: NMarius Bjørnstad Kotsbak <marius.kotsbak@gmail.com>
      Cc: <stable@vger.kernel.org> # v3.4
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d9b87068
    • L
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 9acc7bde
      Linus Torvalds 提交于
      Pull hwmon changes from Guenter Roeck:
       "Just e-mail address updates"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: Update my e-mail address
        hwmon: (applesmc) correct email address for Jesper Juhl
      9acc7bde
    • L
      Merge git://www.linux-watchdog.org/linux-watchdog · ccce27c0
      Linus Torvalds 提交于
      Pull watchdog fixes from Wim Van Sebroeck:
       "This fixes:
         - the WDIOC_GETSTATUS return value
         - the unregister of all NMI events on exit
         - the loading of the iTCO_wdt driver after the conversion to the
           lpc_ich mfd model."
      
      * git://www.linux-watchdog.org/linux-watchdog:
        watchdog: core: fix WDIOC_GETSTATUS return value
        watchdog: hpwdt: Unregister NMI events on exit.
        watchdog: iTCO_wdt: add platform driver module alias
      ccce27c0
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 221d3ebf
      Linus Torvalds 提交于
      Pull UDF fixes from Jan Kara:
       "Make UDF more robust in presence of corrupted filesystem"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fortify loading of sparing table
        udf: Avoid run away loop when partition table length is corrupted
        udf: Use 'ret' instead of abusing 'i' in udf_load_logicalvol()
      221d3ebf
    • L
      Merge tag 'upstream-3.5-rc5' of git://git.infradead.org/linux-ubifs · 9a7c6b73
      Linus Torvalds 提交于
      Pull ubi/ubifs fixes from Artem Bityutskiy:
       "Fix the debugfs regression - we never enable it because incorrect
        'IS_ENABLED()' macro usage: should be 'IS_ENABLED(CONFIG_DEBUG_FS)',
        but we had 'IS_ENABLED(DEBUG_FS)'.  Also fix incorrect assertion."
      
      * tag 'upstream-3.5-rc5' of git://git.infradead.org/linux-ubifs:
        UBI: correct usage of IS_ENABLED()
        UBIFS: correct usage of IS_ENABLED()
        UBIFS: fix assertion
      9a7c6b73
    • W
      watchdog: core: fix WDIOC_GETSTATUS return value · 8b9468d4
      Wim Van Sebroeck 提交于
      In commit 7a879824 we added
      a wrapper for the WDIOC_GETSTATUS ioctl call. The code results
      however in a different behaviour: it returns an error if the
      driver doesn't support the status operation. This is not
      according to the API that says that when we don't support
      the status operation, that we just should return a 0 value.
      Only when the device isn't there anymore, we should return an
      error.
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      8b9468d4
    • M
      watchdog: hpwdt: Unregister NMI events on exit. · a089361c
      Mingarelli, Thomas 提交于
      This patch is to unregister for NMI events upon exit. Also we are now
      making the default setting for allow_kdump enabled.
      Signed-off-by: NThomas Mingarelli <thomas.mingarelli@hp.com>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      a089361c
    • J
      watchdog: iTCO_wdt: add platform driver module alias · e5de32e3
      Jan Beulich 提交于
      The recent conversion of iTCO_wdt resulted in the driver no longer
      getting loaded automatically, since it no longer has a
      MODULE_DEVICE_TABLE() included. As the lpc_ich driver now creates a
      platform device, auto-loading can easily be done by having a respective
      module alias in place.
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Cc: Aaron Sierra <asierra@xes-inc.com>
      Acked-by: NGuenter Roeck <linux@roeck-us.net>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      e5de32e3