Skip to content
  1. Jan 27, 2015
    • David S. Miller's avatar
      Merge branch 'sh_eth' · 9d08da96
      David S. Miller authored
      
      
      Ben Hutchings says:
      
      ====================
      Fixes for sh_eth #2
      
      I'm continuing review and testing of Ethernet support on the R-Car H2
      chip.  This series fixes more of the issues I've found, but it won't be
      the last set.
      
      These are not tested on any of the other supported chips.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d08da96
    • Ben Hutchings's avatar
      sh_eth: Fix serialisation of interrupt disable with interrupt & NAPI handlers · 283e38db
      Ben Hutchings authored
      
      
      In order to stop the RX path accessing the RX ring while it's being
      stopped or resized, we clear the interrupt mask (EESIPR) and then call
      free_irq() or synchronise_irq().  This is insufficient because the
      interrupt handler or NAPI poller may set EESIPR again after we clear
      it.  Also, in sh_eth_set_ringparam() we currently don't disable NAPI
      polling at all.
      
      I could easily trigger a crash by running the loop:
      
         while ethtool -G eth0 rx 128 && ethtool -G eth0 rx 64; do echo -n .; done
      
      and 'ping -f' toward the sh_eth port from another machine.
      
      To fix this:
      - Add a software flag (irq_enabled) to signal whether interrupts
        should be enabled
      - In the interrupt handler, if the flag is clear then clear EESIPR
        and return
      - In the NAPI poller, if the flag is clear then don't set EESIPR
      - Set the flag before enabling interrupts in sh_eth_dev_init() and
        sh_eth_set_ringparam()
      - Clear the flag and serialise with the interrupt and NAPI
        handlers before clearing EESIPR in sh_eth_close() and
        sh_eth_set_ringparam()
      
      After this, I could run the loop for 100,000 iterations successfully.
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      283e38db
    • Ben Hutchings's avatar
      sh_eth: Fix crash or memory leak when resizing rings on device that is down · 084236d8
      Ben Hutchings authored
      
      
      If the device is down then no packet buffers should be allocated.
      We also must not touch its registers as it may be powered off.
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      084236d8
    • Ben Hutchings's avatar
      sh_eth: Detach net device when stopping queue to resize DMA rings · bd888916
      Ben Hutchings authored
      
      
      We must only ever stop TX queues when they are full or the net device
      is not 'ready' so far as the net core, and specifically the watchdog,
      is concerned.  Otherwise, the watchdog may fire *immediately* if no
      packets have been added to the queue in the last 5 seconds.
      
      What's more, sh_eth_tx_timeout() will likely crash if called while
      we're resizing the TX ring.
      
      I could easily trigger this by running the loop:
      
         while ethtool -G eth0 rx 128 && ethtool -G eth0 rx 64; do echo -n .; done
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd888916
    • Ben Hutchings's avatar
      sh_eth: Fix padding of short frames on TX · eebfb643
      Ben Hutchings authored
      
      
      If an skb to be transmitted is shorter than the minimum Ethernet frame
      length, we currently set the DMA descriptor length to the minimum but
      do not add zero-padding.  This could result in leaking sensitive
      data.  We also pass different lengths to dma_map_single() and
      dma_unmap_single().
      
      Use skb_padto() to pad properly, before calling dma_map_single().
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eebfb643
    • Mugunthan V N's avatar
      drivers: net: cpsw: discard dual emac default vlan configuration · 02a54164
      Mugunthan V N authored
      In Dual EMAC, the default VLANs are used to segregate Rx packets between
      the ports, so adding the same default VLAN to the switch will affect the
      normal packet transfers. So returning error on addition of dual EMAC
      default VLANs.
      
      Even if EMAC 0 default port VLAN is added to EMAC 1, it will lead to
      break dual EMAC port separations.
      
      Fixes: d9ba8f9e
      
       (driver: net: ethernet: cpsw: dual emac interface implementation)
      Cc: <stable@vger.kernel.org> # v3.9+
      Reported-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02a54164
    • David S. Miller's avatar
      Merge branch 'cls_bpf' · b6663ad7
      David S. Miller authored
      
      
      Daniel Borkmann says:
      
      ====================
      Two cls_bpf fixes
      
      Found them while doing a review on act_bpf and going over the
      cls_bpf code again. Will also address the first issue in act_bpf
      as it needs to be fixed there, too.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6663ad7
    • Daniel Borkmann's avatar
      net: cls_bpf: fix auto generation of per list handles · 3f2ab135
      Daniel Borkmann authored
      When creating a bpf classifier in tc with priority collisions and
      invoking automatic unique handle assignment, cls_bpf_grab_new_handle()
      will return a wrong handle id which in fact is non-unique. Usually
      altering of specific filters is being addressed over major id, but
      in case of collisions we result in a filter chain, where handle ids
      address individual cls_bpf_progs inside the classifier.
      
      Issue is, in cls_bpf_grab_new_handle() we probe for head->hgen handle
      in cls_bpf_get() and in case we found a free handle, we're supposed
      to use exactly head->hgen. In case of insufficient numbers of handles,
      we bail out later as handle id 0 is not allowed.
      
      Fixes: 7d1d65cb
      
       ("net: sched: cls_bpf: add BPF-based classifier")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3f2ab135
    • Daniel Borkmann's avatar
      net: cls_bpf: fix size mismatch on filter preparation · 7913ecf6
      Daniel Borkmann authored
      In cls_bpf_modify_existing(), we read out the number of filter blocks,
      do some sanity checks, allocate a block on that size, and copy over the
      BPF instruction blob from user space, then pass everything through the
      classic BPF checker prior to installation of the classifier.
      
      We should reject mismatches here, there are 2 scenarios: the number of
      filter blocks could be smaller than the provided instruction blob, so
      we do a partial copy of the BPF program, and thus the instructions will
      either be rejected from the verifier or a valid BPF program will be run;
      in the other case, we'll end up copying more than we're supposed to,
      and most likely the trailing garbage will be rejected by the verifier
      as well (i.e. we need to fit instruction pattern, ret {A,K} needs to be
      last instruction, load/stores must be correct, etc); in case not, we
      would leak memory when dumping back instruction patterns. The code should
      have only used nla_len() as Dave noted to avoid this from the beginning.
      Anyway, lets fix it by rejecting such load attempts.
      
      Fixes: 7d1d65cb
      
       ("net: sched: cls_bpf: add BPF-based classifier")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7913ecf6
    • David S. Miller's avatar
      Merge tag 'linux-can-fixes-for-3.19-20150121' of... · 9e79ce66
      David S. Miller authored
      
      Merge tag 'linux-can-fixes-for-3.19-20150121' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2015-01-21
      
      this is a pull request for v3.19, net/master, which consists of a single patch.
      
      Viktor Babrian fixes the issue in the c_can dirver, that the CAN interface
      might continue to send frames after the interface has been shut down.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e79ce66
  2. Jan 26, 2015
    • David S. Miller's avatar
      Merge branch 's390' · 03a60580
      David S. Miller authored
      
      
      Ursula Braun says:
      
      ====================
      s390/qeth patches for net
      
      here are two s390/qeth patches built for net.
      One patch is quite large, but we would like to fix the locking warning
      seen in recent kernels as soon as possible. But if you want me to submit
      these patches for net-next, I will do.
      Or Gerlitz says:
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03a60580
    • Thomas Richter's avatar
      390/qeth: Fix locking warning during qeth device setup · 1aec42bc
      Thomas Richter authored
      
      
      Do not wait for channel command buffers in IPA commands.
      The potential wait could be done while holding a spin lock and causes
      in recent kernels such a bug if kernel lock debugging is enabled:
      
      kernel: BUG: sleeping function called from invalid context at drivers/s390/net/qeth_core_main.c:
      794
      kernel: in_atomic(): 1, irqs_disabled(): 0, pid: 2031, name: NetworkManager
      kernel: 2 locks held by NetworkManager/2031:
      kernel:  #0:  (rtnl_mutex){+.+.+.}, at: [<00000000006e0d7a>] rtnetlink_rcv+0x32/0x50
      kernel:  #1:  (_xmit_ETHER){+.....}, at: [<00000000006cfe90>] dev_set_rx_mode+0x30/0x50
      kernel: CPU: 0 PID: 2031 Comm: NetworkManager Not tainted 3.18.0-rc5-next-20141124 #1
      kernel:        00000000275fb1f0 00000000275fb280 0000000000000002 0000000000000000
                     00000000275fb320 00000000275fb298 00000000275fb298 00000000007e326a
                     0000000000000000 000000000099ce2c 00000000009b4988 000000000000000b
                     00000000275fb2e0 00000000275fb280 0000000000000000 0000000000000000
                     0000000000000000 00000000001129c8 00000000275fb280 00000000275fb2e0
      kernel: Call Trace:
      kernel: ([<00000000001128b0>] show_trace+0xf8/0x158)
      kernel:  [<000000000011297a>] show_stack+0x6a/0xe8
      kernel:  [<00000000007e995a>] dump_stack+0x82/0xb0
      kernel:  [<000000000017d668>] ___might_sleep+0x170/0x228
      kernel:  [<000003ff80026f0e>] qeth_wait_for_buffer+0x36/0xd0 [qeth]
      kernel:  [<000003ff80026fe2>] qeth_get_ipacmd_buffer+0x3a/0xc0 [qeth]
      kernel:  [<000003ff80105078>] qeth_l3_send_setdelmc+0x58/0xf8 [qeth_l3]
      kernel:  [<000003ff8010b1fe>] qeth_l3_set_ip_addr_list+0x2c6/0x848 [qeth_l3]
      kernel:  [<000003ff8010bbb4>] qeth_l3_set_multicast_list+0x434/0xc48 [qeth_l3]
      kernel:  [<00000000006cfe9a>] dev_set_rx_mode+0x3a/0x50
      kernel:  [<00000000006cff90>] __dev_open+0xe0/0x140
      kernel:  [<00000000006d02a0>] __dev_change_flags+0xa0/0x178
      kernel:  [<00000000006d03a8>] dev_change_flags+0x30/0x70
      kernel:  [<00000000006e14ee>] do_setlink+0x346/0x9a0
      ...
      
      The device driver has plenty of command buffers available
      per channel for channel command communication.
      In the extremely rare case when there is no command buffer
      available, return a NULL pointer and issue a warning
      in the kernel log. The caller handles the case when
      a NULL pointer is encountered and returns an error.
      
      In the case the wait for command buffer is possible
      (because no lock is held as in the OSN case), still wait
      until a channel command buffer is available.
      
      Signed-off-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Reviewed-by: default avatarEugene Crosser <Eugene.Crosser@ru.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1aec42bc
    • Eugene Crosser's avatar
      qeth: clean up error handling · efbbc1d5
      Eugene Crosser authored
      
      
      In the functions that are registering and unregistering MAC
      addresses in the qeth-handled hardware, remove callback functions
      that are unnesessary, as only the return code is analyzed.
      Translate hardware response codes to semi-standard 'errno'-like
      codes for readability.
      
      Add kernel-doc description to the internal API function
      qeth_send_control_data().
      
      Signed-off-by: default avatarEugene Crosser <Eugene.Crosser@ru.ibm.com>
      Signed-off-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Reviewed-by: default avatarThomas-Mich Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efbbc1d5
    • Martin KaFai Lau's avatar
      ipv6: Fix __ip6_route_redirect · b0a1ba59
      Martin KaFai Lau authored
      In my last commit (a3c00e46: ipv6: Remove BACKTRACK macro), the changes in
      __ip6_route_redirect is incorrect.  The following case is missed:
      1. The for loop tries to find a valid gateway rt. If it fails to find
         one, rt will be NULL.
      2. When rt is NULL, it is set to the ip6_null_entry.
      3. The newly added 'else if', from a3c00e46
      
      , will stop the backtrack from
         happening.
      
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0a1ba59
    • Vivien Didelot's avatar
      net: dsa: set slave MII bus PHY mask · 24df8986
      Vivien Didelot authored
      
      
      When registering a mdio bus, Linux assumes than every port has a PHY and tries
      to scan it. If a switch port has no PHY registered, DSA will fail to register
      the slave MII bus. To fix this, set the slave MII bus PHY mask to the switch
      PHYs mask.
      
      As an example, if we use a Marvell MV88E6352 (which is a 7-port switch with no
      registered PHYs for port 5 and port 6), with the following declared names:
      
      	static struct dsa_chip_data switch_cdata = {
      		[...]
      		.port_names[0] = "sw0",
      		.port_names[1] = "sw1",
      		.port_names[2] = "sw2",
      		.port_names[3] = "sw3",
      		.port_names[4] = "sw4",
      		.port_names[5] = "cpu",
      	};
      
      DSA will fail to create the switch instance. With the PHY mask set for the
      slave MII bus, only the PHY for ports 0-4 will be scanned and the instance will
      be successfully created.
      
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Tested-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      24df8986
  3. Jan 25, 2015
  4. Jan 24, 2015
  5. Jan 22, 2015
  6. Jan 20, 2015
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 06efe0e5
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Here is a (hopefully final) slew of pin control fixes for the v3.19
        series.  The deadlock fix is kind of serious and tagged for stable,
        the rest is business as usual.
      
         - Fix two deadlocks around the pin control mutexes, a long-standing
           issue that manifest itself in plug/unplug of pin controllers.
           (Tagged for stable.)
      
         - Handle an error path with zero functions in the Qualcomm pin
           controller.
      
         - Drop a bogus second GPIO chip added in the Lantiq driver.
      
         - Fix sudden IRQ loss on Rockchip pin controllers.
      
         - Register the GIT tree in MAINTAINERS"
      
      * tag 'pinctrl-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: MAINTAINERS: add git tree reference
        pinctrl: qcom: Don't iterate past end of function array
        pinctrl: lantiq: remove bogus of_gpio_chip_add
        pinctrl: Fix two deadlocks
        pinctrl: rockchip: Avoid losing interrupts when supporting both edges
      06efe0e5
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · eef8f4c2
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Socket addresses returned in the error queue need to be fully
          initialized before being passed on to userspace, fix from Willem de
          Bruijn.
      
       2) Interrupt handling fixes to davinci_emac driver from Tony Lindgren.
      
       3) Fix races between receive packet steering and cpu hotplug, from Eric
          Dumazet.
      
       4) Allowing netlink sockets to subscribe to unknown multicast groups
          leads to crashes, don't allow it.  From Johannes Berg.
      
       5) One to many socket races in SCTP fixed by Daniel Borkmann.
      
       6) Put in a guard against the mis-use of ipv6 atomic fragments, from
          Hagen Paul Pfeifer.
      
       7) Fix promisc mode and ethtool crashes in sh_eth driver, from Ben
          Hutchings.
      
       8) NULL deref and double kfree fix in sxgbe driver from Girish K.S and
          Byungho An.
      
       9) cfg80211 deadlock fix from Arik Nemtsov.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (36 commits)
        s2io: use snprintf() as a safety feature
        r8152: remove sram_read
        r8152: remove generic_ocp_read before writing
        bgmac: activate irqs only if there is nothing to poll
        bgmac: register napi before the device
        sh_eth: Fix ethtool operation crash when net device is down
        sh_eth: Fix promiscuous mode on chips without TSU
        ipv6: stop sending PTB packets for MTU < 1280
        net: sctp: fix race for one-to-many sockets in sendmsg's auto associate
        genetlink: synchronize socket closing and family removal
        genetlink: disallow subscribing to unknown mcast groups
        genetlink: document parallel_ops
        net: rps: fix cpu unplug
        net: davinci_emac: Add support for emac on dm816x
        net: davinci_emac: Fix ioremap for devices with MDIO within the EMAC address space
        net: davinci_emac: Fix incomplete code for getting the phy from device tree
        net: davinci_emac: Free clock after checking the frequency
        net: davinci_emac: Fix runtime pm calls for davinci_emac
        net: davinci_emac: Fix hangs with interrupts
        ip: zero sockaddr returned on error queue
        ...
      eef8f4c2
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 22628890
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a regression that arose from the change to add a crypto
        prefix to module names which was done to prevent the loading of
        arbitrary modules through the Crypto API.
      
        In particular, a number of modules were missing the crypto prefix
        which meant that they could no longer be autoloaded"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: add missing crypto module aliases
      22628890
    • Dan Carpenter's avatar
      s2io: use snprintf() as a safety feature · a8c1d28a
      Dan Carpenter authored
      
      
      "sp->desc[i]" has 25 characters.  "dev->name" has 15 characters.  If we
      used all 15 characters then the sprintf() would overflow.
      
      I changed the "sprintf(sp->name, "%s Neterion %s"" to snprintf(), as
      well, even though it can't overflow just to be consistent.
      
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a8c1d28a
    • David S. Miller's avatar
      Merge branch 'r8152' · ef5a1ba1
      David S. Miller authored
      
      
      Hayes Wang says:
      
      ====================
      r8152: couldn't read OCP_SRAM_DATA
      
      Read OCP_SRAM_DATA would read additional bytes and may let
      the hw abnormal.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef5a1ba1
    • hayeswang's avatar
      r8152: remove sram_read · b4d99def
      hayeswang authored
      
      
      Read OCP register 0xa43a~0xa43b would clear some flags which the hw
      would use, and it may let the device lost. However, the unit of
      reading is 4 bytes. That is, it would read 0xa438~0xa43b when calling
      sram_read() to read OCP_SRAM_DATA.
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4d99def
    • hayeswang's avatar
      r8152: remove generic_ocp_read before writing · 8cb3db24
      hayeswang authored
      
      
      For ocp_write_word() and ocp_write_byte(), there is a generic_ocp_read()
      which is used to read the whole 4 byte data, keep the unchanged bytes,
      and modify the expected bytes. However, the "byen" could be used to
      determine which bytes of the 4 bytes to write, so the action could be
      removed.
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8cb3db24
    • David S. Miller's avatar
      Merge branch 'bgmac' · e60bf806
      David S. Miller authored
      
      
      Hauke Mehrtens says:
      
      ====================
      bgmac: some fixes to napi usage
      
      I compared the napi documentation with the bgmac driver and found some
      problems in that driver. These two patches should fix the problems.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e60bf806
    • Hauke Mehrtens's avatar
      bgmac: activate irqs only if there is nothing to poll · 43f159c6
      Hauke Mehrtens authored
      
      
      IRQs should only get activated when there is nothing to poll in the
      queue any more and to after every poll.
      
      Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      43f159c6
    • Hauke Mehrtens's avatar
      bgmac: register napi before the device · 6216642f
      Hauke Mehrtens authored
      
      
      napi should get registered before the netdev and not after.
      
      Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6216642f
    • David S. Miller's avatar
      Merge branch 'sh_eth' · 852c5d9c
      David S. Miller authored
      
      
      Ben Hutchings says:
      
      ====================
      sh_eth fixes
      
      I'm currently looking at Ethernet support on the R-Car H2 chip,
      reviewing and testing the sh_eth driver.  Here are fixes for two fairly
      obvious bugs in the driver; I will probably have some more later.
      
      These are not tested on any of the other supported chips.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      852c5d9c
    • Ben Hutchings's avatar
      sh_eth: Fix ethtool operation crash when net device is down · 4f9dce23
      Ben Hutchings authored
      
      
      The driver connects and disconnects the PHY device whenever the
      net device is brought up and down.  The ethtool get_settings,
      set_settings and nway_reset operations will dereference a null
      or dangling pointer if called while it is down.
      
      I think it would be preferable to keep the PHY connected, but there
      may be good reasons not to.
      
      As an immediate fix for this bug:
      - Set the phydev pointer to NULL after disconnecting the PHY
      - Change those three operations to return -ENODEV while the PHY is
        not connected
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4f9dce23
    • Ben Hutchings's avatar
      sh_eth: Fix promiscuous mode on chips without TSU · b37feed7
      Ben Hutchings authored
      
      
      Currently net_device_ops::set_rx_mode is only implemented for
      chips with a TSU (multiple address table).  However we do need
      to turn the PRM (promiscuous) flag on and off for other chips.
      
      - Remove the unlikely() from the TSU functions that we may safely
        call for chips without a TSU
      - Make setting of the MCT flag conditional on the tsu capability flag
      - Rename sh_eth_set_multicast_list() to sh_eth_set_rx_mode() and plumb
        it into both net_device_ops structures
      - Remove the previously-unreachable branch in sh_eth_rx_mode() that
        would otherwise reset the flags to defaults for non-TSU chips
      
      Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b37feed7
    • Hagen Paul Pfeifer's avatar
      ipv6: stop sending PTB packets for MTU < 1280 · 9d289715
      Hagen Paul Pfeifer authored
      
      
      Reduce the attack vector and stop generating IPv6 Fragment Header for
      paths with an MTU smaller than the minimum required IPv6 MTU
      size (1280 byte) - called atomic fragments.
      
      See IETF I-D "Deprecating the Generation of IPv6 Atomic Fragments" [1]
      for more information and how this "feature" can be misused.
      
      [1] https://tools.ietf.org/html/draft-ietf-6man-deprecate-atomfrag-generation-00
      
      Signed-off-by: default avatarFernando Gont <fgont@si6networks.com>
      Signed-off-by: default avatarHagen Paul Pfeifer <hagen@jauu.net>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d289715
  7. Jan 19, 2015