1. 12 May, 2006 2 commits
    • Simon Kelley's avatar
      [NEIGH]: Fix IP-over-ATM and ARP interaction. · bd89efc5
      Simon Kelley authored
      The classical IP over ATM code maintains its own IPv4 <-> <ATM stuff>
      ARP table, using the standard neighbour-table code. The
      neigh_table_init function adds this neighbour table to a linked list
      of all neighbor tables which is used by the functions neigh_delete()
      neigh_add() and neightbl_set(), all called by the netlink code.
      
      Once the ATM neighbour table is added to the list, there are two
      tables with family == AF_INET there, and ARP entries sent via netlink
      go into the first table with matching family. This is indeterminate
      and often wrong.
      
      To see the bug, on a kernel with CLIP enabled, create a standard IPv4
      ARP entry by pinging an unused address on a local subnet. Then attempt
      to complete that entry by doing
      
      ip neigh replace <ip address> lladdr <some mac address> nud reachable
      
      Looking at the ARP tables by using 
      
      ip neigh show
      
      will reveal two ARP entries for the same address. One of these can be
      found in /proc/net/arp, and the other in /proc/net/atm/arp.
      
      This patch adds a new function, neigh_table_init_no_netlink() which
      does everything the neigh_table_init() does, except add the table to
      the netlink all-arp-tables chain. In addition neigh_table_init() has a
      check that all tables on the chain have a distinct address family.
      The init call in clip.c is changed to call
      neigh_table_init_no_netlink().
      
      Since ATM ARP tables are rather more complicated than can currently be
      handled by the available rtattrs in the netlink protocol, no
      functionality is lost by this patch, and non-ATM ARP manipulation via
      netlink is rescued. A more complete solution would involve a rtattr
      for ATM ARP entries and some way for the netlink code to give
      neigh_add and friends more information than just address family with
      which to find the correct ARP table.
      
      [ I've changed the assertion checking in neigh_table_init() to not
        use BUG_ON() while holding neigh_tbl_lock.  Instead we remember that
        we found an existing tbl with the same family, and after dropping
        the lock we'll give a diagnostic kernel log message and a stack dump.
        -DaveM ]
      Signed-off-by: default avatarSimon Kelley <simon@thekelleys.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd89efc5
    • Karsten Keil's avatar
      [TG3]: ethtool always report port is TP. · ef348144
      Karsten Keil authored
      Even with fiber cards ethtool reports that the connected port is TP,
      the patch fix this.
      Signed-off-by: default avatarKarsten Keil <kkeil@suse.de>
      Acked-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef348144
  2. 11 May, 2006 7 commits
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · d649dafd
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 3508/1: Update collie defconfig
        [ARM] Fix thread struct allocator for SMP case
        [ARM] Update mach-types
        [ARM] Update versatile_defconfig
      d649dafd
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-serial · 2bf9d6d0
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-serial:
        [SERIAL] 8250: add locking to console write function
        [SERIAL] Remove unconditional enable of TX irq for console
        [SERIAL] 8250: set divisor register correctly for AMD Alchemy SoC uart
        [SERIAL] AMD Alchemy UART: claim memory range
        [SERIAL] Clean up serial locking when obtaining a reference to a port
      2bf9d6d0
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 6572b206
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels()
        [IPV6]: skb leakage in inet6_csk_xmit
        [BRIDGE]: Do sysfs registration inside rtnl.
        [NET]: Do sysfs registration as part of register_netdevice.
        [TG3]: Fix possible NULL deref in tg3_run_loopback().
        [NET] linkwatch: Handle jiffies wrap-around
        [IRDA]: Switching to a workqueue for the SIR work
        [IRDA]: smsc-ircc: Minimal hotplug support.
        [IRDA]: Removing unused EXPORT_SYMBOLs
        [IRDA]: New maintainer.
        [NET]: Make netdev_chain a raw notifier.
        [IPV4]: ip_options_fragment() has no effect on fragmentation
        [NET]: Add missing operstates documentation.
      6572b206
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · f7a014af
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (25 commits)
        [SCSI] mptfc: race between mptfc_register_dev and mptfc_target_alloc
        [SCSI] lpfc 8.1.6 : Fix Data Corruption in Bus Reset Path
        [SCSI] mptspi: revalidate negotiation parameters after host reset and resume
        [SCSI] srp.h: avoid padding of structs
        [SCSI] ibmvscsi: fix leak when failing to send srp event
        [SCSI] qla2xxx: Correct eh_abort recovery logic.
        [SCSI] megaraid_{mm,mbox}: fix a bug in reset handler
        [SCSI] fusion - bug fix stack overflow in mptbase
        [SCSI] scsi: Add IBM 2104-DU3 to blist
        [SCSI] Fix DVD burning issues.
        [SCSI] SCSI: aic7xxx_osm_pci resource leak fix.
        [SCSI] - fusion - mptfc bug fix's to prevent deadlock situations
        [SCSI] mptfusion: bug fix's for raid components adding/deleting
        [SCSI] aic7xxx: ahc_pci_write_config() fix
        [SCSI] megaraid: unused variable
        [SCSI] qla2xxx: only free_irq() after request_irq() succeeds
        [SCSI] Overrun in drivers/scsi/sim710.c
        [SCSI] lpfc 8.1.5 : Change version number to 8.1.5
        [SCSI] lpfc 8.1.5 : Misc small fixes
        [SCSI] lpfc 8.1.5 : Additional fixes to LOGO, PLOGI, and RSCN processing
        ...
      f7a014af
    • Jens Axboe's avatar
      [BLOCK] limit request_fn recursion · dac07ec1
      Jens Axboe authored
      Don't recurse back into the driver even if the unplug threshold is met,
      when the driver asks for a requeue. This is both silly from a logical
      point of view (requeues typically happen due to driver/hardware
      shortage), and also dangerous since we could hit an endless request_fn
      -> requeue -> unplug -> request_fn loop and crash on stack overrun.
      
      Also limit blk_run_queue() to one level of recursion, similar to how
      blk_start_queue() works.
      
      This patch fixed a real problem with SLES10 and lpfc, and it could hit
      any SCSI lld that returns non-zero from it's ->queuecommand() handler.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      dac07ec1
    • Patrick McHardy's avatar
      [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels() · 210525d6
      Patrick McHardy authored
      When deleting the last child the level of a class should drop to zero.
      
      Noticed by Andreas Mueller <andreas@stapelspeicher.org>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      210525d6
    • Linus Torvalds's avatar
      ptrace_attach: fix possible deadlock schenario with irqs · f358166a
      Linus Torvalds authored
      Eric Biederman points out that we can't take the task_lock while holding
      tasklist_lock for writing, because another CPU that holds the task lock
      might take an interrupt that then tries to take tasklist_lock for writing.
      
      Which would be a nasty deadlock, with one CPU spinning forever in an
      interrupt handler (although admittedly you need to really work at
      triggering it ;)
      
      Since the ptrace_attach() code is special and very unusual, just make it
      be extra careful, and use trylock+repeat to avoid the possible deadlock.
      
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Roland McGrath <roland@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f358166a
  3. 10 May, 2006 14 commits
  4. 09 May, 2006 17 commits