06 Jan, 2011

2 commits

  • unix_release() can asynchornously set socket->sk to NULL, and
    it does so without holding the unix_state_lock() on "other"
    during stream connects.

    However, the reverse mapping, sk->sk_socket, is only transitioned
    to NULL under the unix_state_lock().

    Therefore make the security hooks follow the reverse mapping instead
    of the forward mapping.

    Reported-by: Jeremy Fitzhardinge
    Reported-by: Linus Torvalds
    Signed-off-by: David S. Miller

    David S. Miller
     
  • commit 57dbb2d83d100ea (sched: add head drop fifo queue)
    introduced pfifo_head_drop, and broke the invariant that
    sch->bstats.bytes and sch->bstats.packets are COUNTER (increasing
    counters only)

    This can break estimators because est_timer() handles unsigned deltas
    only. A decreasing counter can then give a huge unsigned delta.

    My mid term suggestion would be to change things so that
    sch->bstats.bytes and sch->bstats.packets are incremented in dequeue()
    only, not at enqueue() time. We also could add drop_bytes/drop_packets
    and provide estimations of drop rates.

    It would be more sensible anyway for very low speeds, and big bursts.
    Right now, if we drop packets, they still are accounted in byte/packets
    abolute counters and rate estimators.

    Before this mid term change, this patch makes pfifo_head_drop behavior
    similar to other qdiscs in case of drops :
    Dont decrement sch->bstats.bytes and sch->bstats.packets

    Signed-off-by: Eric Dumazet
    Acked-by: Hagen Paul Pfeifer
    Signed-off-by: David S. Miller

    Eric Dumazet
     

05 Jan, 2011

11 commits

  • David S. Miller
     
  • The preferred source address is currently ignored for local routes,
    which results in all local connections having a src address that is the
    same as the local dst address. Fix this by respecting the preferred source
    address when it is provided for local routes.

    This bug can be demonstrated as follows:

    # ifconfig dummy0 192.168.0.1
    # ip route show table local | grep local.*dummy0
    local 192.168.0.1 dev dummy0 proto kernel scope host src 192.168.0.1
    # ip route change table local local 192.168.0.1 dev dummy0 \
    proto kernel scope host src 127.0.0.1
    # ip route show table local | grep local.*dummy0
    local 192.168.0.1 dev dummy0 proto kernel scope host src 127.0.0.1

    We now establish a local connection and verify the source IP
    address selection:

    # nc -l 192.168.0.1 3128 &
    # nc 192.168.0.1 3128 &
    # netstat -ant | grep 192.168.0.1:3128.*EST
    tcp 0 0 192.168.0.1:3128 192.168.0.1:33228 ESTABLISHED
    tcp 0 0 192.168.0.1:33228 192.168.0.1:3128 ESTABLISHED

    Signed-off-by: Joel Sing
    Signed-off-by: David S. Miller

    Joel Sing
     
  • There are typos in comments in include/linux/igmp.h:

    83 #define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */
    84 #define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */
    [snip]
    88 #define IGMPV2_HOST_MEMBERSHIP_REPORT 0x16 /* V2 version of 0x11 */
    89 #define IGMP_HOST_LEAVE_MESSAGE 0x17
    90 #define IGMPV3_HOST_MEMBERSHIP_REPORT 0x22 /* V3 version of 0x11 */

    The line 88 and 90 are about REPORT messages.
    The IGMP_HOST_MEMBERSHIP_REPORT (IGMP V1) value is 0x12.
    So the comment on line 88 must be /* V2 version of 0x12 */,
    and the comment on line 90 must be /* V3 version of 0x12 */.

    Signed-off-by: Francois-Xavier Le Bail
    Signed-off-by: David S. Miller

    Francois-Xavier Le Bail
     
  • Adapted from version 8.019.00 of Realtek's r8168 driver

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Newer 8168 needs a slightly different rtl_csi_access_enable.
    This patch separates some noise from the real thing.

    No functional change.

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Adapted from version 8.019.00 of Realtek's r8168 driver.

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Bits from :
    - version 8.019.00 of Realtek's 8168 driver
    - version 1.019.00 of Realtek's 8101 driver

    Plain old 8169 (PCI) devices do not seem to need anything akin to it.

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Adapted from version 8.019.00 of Realtek's r8168 driver and
    amended per Hayes Wang's correction :
    - OCPDR_GPHY_REG_SHIFT must be 16, not 12
    - the reg should be at bit 16 ~ 22, whence OCPDR_REG_MASK

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Current mdio_{read/write} needs device specific information to work
    correctly with newer chipsets.

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • Documentation (sort of).

    The location are the same, the values are the same but it is
    just accidental. Note that the 810x could cope with a smaller
    value as it does not support jumbo frames.

    Signed-off-by: Francois Romieu
    Cc: Hayes
    Signed-off-by: David S. Miller

    françois romieu
     
  • The binary file of the firmware is moved to linux-firmware repository.
    The firmwares are rtl_nic/rtl8168d-1.fw and rtl_nic/rtl8168d-2.fw.
    The driver goes along if the firmware couldn't be found. However, it
    is suggested to be done with the suitable firmware.

    Some wrong PHY parameters are directly corrected in the driver.

    Simple firmware checking added per Ben Hutchings suggestion.

    Signed-off-by: Hayes Wang
    Signed-off-by: Francois Romieu
    Cc: Ben Hutchings
    Signed-off-by: David S. Miller

    françois romieu
     

04 Jan, 2011

18 commits

  • We should call bnx2i to send the iSCSI netlink message earlier in
    cnic_unregister_device(). By the time cnic_unregister_driver() is
    called, bnx2i may have freed data structures used by the upcalls.

    Update version to 2.2.12.

    Reviewed-by: Benjamin Li
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Because the hardware does not yet support these in this mode.

    Reviewed-by: Benjamin Li
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • net/bridge//br_stp_if.c:148:66: warning: conversion of
    net/bridge//br_stp_if.c:148:66: int to
    net/bridge//br_stp_if.c:148:66: int enum umh_wait

    net/bridge//netfilter/ebtables.c:1150:30: warning: Using plain integer as NULL pointer

    Signed-off-by: Tomas Winkler
    Signed-off-by: David S. Miller

    Tomas Winkler
     
  • This fixes the following warning:

    WARNING: drivers/net/depca.o(.data+0x0): Section mismatch in reference from the variable depca_isa_driver to the function .init.text:depca_isa_probe()
    The variable depca_isa_driver references
    the function __init depca_isa_probe()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    Tested with linux-next (next-20101231)

    Signed-off-by: Sedat Dilek
    Signed-off-by: David S. Miller

    Sedat Dilek
     
  • This fixes the following warning:

    drivers/net/irda/smsc-ircc2.o(.data+0x18): Section mismatch in reference from the variable smsc_ircc_pnp_driver to the function .init.text:smsc_ircc_pnp_probe()
    The variable smsc_ircc_pnp_driver references
    the function __init smsc_ircc_pnp_probe()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    Tested with linux-next (next-20101231)

    Signed-off-by: Sedat Dilek
    Signed-off-by: David S. Miller

    Sedat Dilek
     
  • This fixes the following warning:

    WARNING: drivers/net/ksz884x.o(.data+0x18): Section mismatch in reference from the variable pci_device_driver to the function .init.text:pcidev_init()
    The variable pci_device_driver references
    the function __init pcidev_init()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    Tested with linux-next (next-20101231)

    Signed-off-by: Sedat Dilek
    Signed-off-by: David S. Miller

    Sedat Dilek
     
  • Le lundi 03 janvier 2011 à 11:40 -0800, David Miller a écrit :
    > From: Jarek Poplawski
    > Date: Mon, 3 Jan 2011 20:37:03 +0100
    >
    > > On Sun, Jan 02, 2011 at 09:24:36PM +0100, Eric Dumazet wrote:
    > >> Le mercredi 29 décembre 2010 ?? 00:07 +0100, Jarek Poplawski a écrit :
    > >>
    > >> > Ingress is before vlans handler so these features and the
    > >> > NETIF_F_HW_VLAN_TX flag seem useful for ifb considering
    > >> > dev_hard_start_xmit() checks.
    > >>
    > >> OK, here is v2 of the patch then, thanks everybody.
    > >>
    > >>
    > >> [PATCH v2 net-next-2.6] ifb: add performance flags
    > >>
    > >> IFB can use the full set of features flags (NETIF_F_SG |
    > >> NETIF_F_FRAGLIST | NETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_HIGHDMA) to
    > >> avoid unnecessary split of some packets (GRO for example)
    > >>
    > >> Changli suggested to also set vlan_features,
    > >
    > > He also suggested more GSO flags of which especially NETIF_F_TSO6
    > > seems interesting (wrt GRO)?
    >
    > I think at least TSO6 would very much be appropriate here.

    Yes, why not, I am only wondering why loopback / dummy (and others ?)
    only set NETIF_F_TSO :)

    Since I want to play with ECN, I might also add NETIF_F_TSO_ECN ;)

    For other flags, I really doubt it can matter on ifb ?

    [PATCH v3 net-next-2.6] ifb: add performance flags

    IFB can use the full set of features flags (NETIF_F_SG |
    NETIF_F_FRAGLIST | NETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_HIGHDMA) to
    avoid unnecessary split of some packets (GRO for example)

    Changli suggested to also set vlan_features, NETIF_F_TSO6,
    NETIF_F_TSO_ECN.

    Jarek suggested to add NETIF_F_HW_VLAN_TX as well.

    Signed-off-by: Eric Dumazet
    Cc: Changli Gao
    Cc: Jarek Poplawski
    Cc: Pawel Staszewski
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Provide child qdisc backlog (byte count) information so that "tc -s
    qdisc" can report it to user.

    packet count is already correctly provided.

    qdisc red 11: parent 1:11 limit 60Kb min 15Kb max 45Kb ecn
    Sent 3116427684 bytes 1415782 pkt (dropped 8, overlimits 7866 requeues 0)
    rate 242385Kbit 13630pps backlog 13560b 8p requeues 0
    marked 7865 early 1 pdrop 7 other 0

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • More accurate return values for the following (new) dcbnl routines:
    dcbnl_getdcbx()
    dcbnl_setdcbx()
    dcbnl_getfeatcfg()
    dcbnl_setfeatcfg()

    Signed-off-by: Shmulik Ravid
    Signed-off-by: David S. Miller

    Shmulik Ravid
     
  • commit bf9ae5386bca8836c16e69ab8fdbe46767d7452a
    (llc: use dev_hard_header) removed the
    skb_reset_mac_header call from llc_mac_hdr_init.

    This seems fine itself, but br_send_bpdu() invokes ebtables LOCAL_OUT.

    We oops in ebt_basic_match() because it assumes eth_hdr(skb) returns
    a meaningful result.

    Cc: acme@ghostprotocols.net
    References: https://bugzilla.kernel.org/show_bug.cgi?id=24532
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • Replace __init by __devinit.

    Warning message:
    WARNING: vmlinux.o(.data+0xbc14): Section mismatch in reference from the variable
    temac_of_driver to the function .init.text:temac_of_probe()
    The variable temac_of_driver references
    the function __init temac_of_probe()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    Signed-off-by: Michal Simek
    Acked-by: Grant Likely
    Signed-off-by: David S. Miller

    Michal Simek
     
  • Signed-off-by: Michal Simek
    Signed-off-by: David S. Miller

    Michal Simek
     
  • Signed-off-by: Amit Kumar Salecha
    Signed-off-by: David S. Miller

    amit salecha
     
  • o Enable/disable LRO in device based on NETIF_F_LRO flag, instead of using
    driver private flag.
    o Disable LRO, if rx csum offloading is off.

    David Miller,
    You should use netdev_info() instead of dev_info().

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: Amit Kumar Salecha
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • use pskb_may_pull to access ipv6 header correctly for paged skbs
    It was omitted in the bridge code leading to crash in blind
    __skb_pull

    since the skb is cloned undonditionally we also simplify the
    the exit path

    this fixes bug https://bugzilla.kernel.org/show_bug.cgi?id=25202

    Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: authenticated
    Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: associated (aid 2)
    Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 RADIUS: starting accounting session 4D0608A3-00000005
    Dec 15 14:36:41 User-PC kernel: [175576.120287] ------------[ cut here ]------------
    Dec 15 14:36:41 User-PC kernel: [175576.120452] kernel BUG at include/linux/skbuff.h:1178!
    Dec 15 14:36:41 User-PC kernel: [175576.120609] invalid opcode: 0000 [#1] SMP
    Dec 15 14:36:41 User-PC kernel: [175576.120749] last sysfs file: /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/uevent
    Dec 15 14:36:41 User-PC kernel: [175576.121035] Modules linked in: approvals binfmt_misc bridge stp llc parport_pc ppdev arc4 iwlagn snd_hda_codec_realtek iwlcore i915 snd_hda_intel mac80211 joydev snd_hda_codec snd_hwdep snd_pcm snd_seq_midi drm_kms_helper snd_rawmidi drm snd_seq_midi_event snd_seq snd_timer snd_seq_device cfg80211 eeepc_wmi usbhid psmouse intel_agp i2c_algo_bit intel_gtt uvcvideo agpgart videodev sparse_keymap snd shpchp v4l1_compat lp hid video serio_raw soundcore output snd_page_alloc ahci libahci atl1c
    Dec 15 14:36:41 User-PC kernel: [175576.122712]
    Dec 15 14:36:41 User-PC kernel: [175576.122769] Pid: 0, comm: kworker/0:0 Tainted: G W 2.6.37-rc5-wl+ #3 1015PE/1016P
    Dec 15 14:36:41 User-PC kernel: [175576.123012] EIP: 0060:[] EFLAGS: 00010283 CPU: 1
    Dec 15 14:36:41 User-PC kernel: [175576.123193] EIP is at br_multicast_rcv+0xc95/0xe1c [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.123362] EAX: 0000001c EBX: f5626318 ECX: 00000000 EDX: 00000000
    Dec 15 14:36:41 User-PC kernel: [175576.123550] ESI: ec512262 EDI: f5626180 EBP: f60b5ca0 ESP: f60b5bd8
    Dec 15 14:36:41 User-PC kernel: [175576.123737] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Dec 15 14:36:41 User-PC kernel: [175576.123902] Process kworker/0:0 (pid: 0, ti=f60b4000 task=f60a8000 task.ti=f60b0000)
    Dec 15 14:36:41 User-PC kernel: [175576.124137] Stack:
    Dec 15 14:36:41 User-PC kernel: [175576.124181] ec556500 f6d06800 f60b5be8 c01087d8 ec512262 00000030 00000024 f5626180
    Dec 15 14:36:41 User-PC kernel: [175576.124181] f572c200 ef463440 f5626300 3affffff f6d06dd0 e60766a4 000000c4 f6d06860
    Dec 15 14:36:41 User-PC kernel: [175576.124181] ffffffff ec55652c 00000001 f6d06844 f60b5c64 c0138264 c016e451 c013e47d
    Dec 15 14:36:41 User-PC kernel: [175576.124181] Call Trace:
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? sched_clock+0x8/0x10
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? enqueue_entity+0x174/0x440
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? sched_clock_cpu+0x131/0x190
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? select_task_rq_fair+0x2ad/0x730
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? nf_iterate+0x71/0x90
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? br_handle_frame_finish+0x184/0x220 [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? br_handle_frame_finish+0x0/0x220 [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? br_handle_frame+0x189/0x230 [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? br_handle_frame_finish+0x0/0x220 [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? br_handle_frame+0x0/0x230 [bridge]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? __netif_receive_skb+0x1b6/0x5b0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? skb_copy_bits+0x110/0x210
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? netif_receive_skb+0x6f/0x80
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? ieee80211_deliver_skb+0x8c/0x1a0 [mac80211]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? ieee80211_rx_handlers+0xeb6/0x1aa0 [mac80211]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? __netif_receive_skb+0x380/0x5b0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? sched_clock_local+0xb2/0x190
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? default_spin_lock_flags+0x8/0x10
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? _raw_spin_lock_irqsave+0x2f/0x50
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? ieee80211_prepare_and_rx_handle+0x201/0xa90 [mac80211]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? ieee80211_rx+0x2a4/0x830 [mac80211]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? iwl_update_stats+0xa6/0x2a0 [iwlcore]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? iwlagn_rx_reply_rx+0x292/0x3b0 [iwlagn]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? _raw_spin_lock_irqsave+0x2f/0x50
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? iwl_rx_handle+0xe7/0x350 [iwlagn]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? iwl_irq_tasklet+0xf7/0x5c0 [iwlagn]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? __rcu_process_callbacks+0x201/0x2d0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? tasklet_action+0xc5/0x100
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? __do_softirq+0x97/0x1d0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? nmi_stack_correct+0x2f/0x34
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? __do_softirq+0x0/0x1d0
    Dec 15 14:36:41 User-PC kernel: [175576.124181]
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? irq_exit+0x65/0x70
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? do_IRQ+0x52/0xc0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? common_interrupt+0x30/0x38
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? intel_idle+0xc2/0x160
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? cpuidle_idle_call+0x6b/0x100
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? cpu_idle+0x8a/0xf0
    Dec 15 14:36:41 User-PC kernel: [175576.124181] [] ? start_secondary+0x1e8/0x1ee

    Cc: David Miller
    Cc: Johannes Berg
    Cc: Stephen Hemminger
    Signed-off-by: Tomas Winkler
    Signed-off-by: David S. Miller

    Tomas Winkler
     
  • With the original 8 bit ISA ne1000 card being over 20 years old, it
    only makes sense to consider ne.c and all the other toplevel 8390
    based driver files as legacy for obsolete hardware. The most
    recent thing made in large quantities that was 8390 based were
    those crazy PCI ne2k clones - and even they are now 10+ years old.

    Also remove myself as maintainer, since the only changes to these
    drivers going forward will be the generic API type changes that
    touch all drivers.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     
  • The drivers associated with the prototypes in this commit have
    been deleted some time ago, but the externs escaped detection.
    Using a simple "git grep" shows that these references are
    historical artefacts, only mentioned by the deleted lines.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     
  • Commit 3f5a2a713aad28480d86b0add00c68484b54febc zeroes out the statistics
    message block (SMB) and coalescing message block (CMB) when adapter ring
    resources are freed. This is desirable behavior, but, as a side effect,
    the commit leads to an oops when atl1_set_ringparam() attempts to alter
    the number of rx or tx elements in the ring buffer (by using ethtool
    -G, for example). We don't want SMB or CMB to change during this
    operation.

    Modify atl1_set_ringparam() to preserve SMB and CMB when changing ring
    parameters.

    Cc: stable@kernel.org
    Signed-off-by: Jay Cliburn
    Reported-by: Tõnu Raitviir
    Signed-off-by: David S. Miller

    J. K. Cliburn
     

02 Jan, 2011

9 commits