1. 13 5月, 2006 18 次提交
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 18552b8f
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [NEIGH]: Fix IP-over-ATM and ARP interaction.
        [TG3]: ethtool always report port is TP.
      18552b8f
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · faa88df8
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC]: Fix warning on prom_getproperty in openprom.c
        [SPARC]: Handle UNWIND_INFO properly.
        [SPARC64]: Update defconfig.
        [SPARC]: show device name in /proc/dvma_map
        [SPARC]: Remove duplicate symbol exports
      faa88df8
    • S
      IB: refcount race fixes · 1b52fa98
      Sean Hefty 提交于
      Fix race condition during destruction calls to avoid possibility of
      accessing object after it has been freed.  Instead of waking up a wait
      queue directly, which is susceptible to a race where the object is
      freed between the reference count going to 0 and the wake_up(), use a
      completion to wait in the function doing the freeing.
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1b52fa98
    • R
      IB/ipath: Properly terminate PCI ID table · 6f4bb3d8
      Roland Dreier 提交于
      The ipath driver's table of PCI IDs needs a { 0, } entry at the end.
      This makes all of the device aliases visible to userspace so hotplug
      loads the module for all supported devices.  Without the patch,
      modinfo ipath_core only shows:
      
          alias:          pci:v00001FC1d0000000Dsv*sd*bc*sc*i*
      
      instead of the correct:
      
          alias:          pci:v00001FC1d00000010sv*sd*bc*sc*i*
          alias:          pci:v00001FC1d0000000Dsv*sd*bc*sc*i*
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      Signed-off-by: NBryan O'Sullivan <bos@pathscale.com>
      6f4bb3d8
    • S
      [NEIGH]: Fix IP-over-ATM and ARP interaction. · bd89efc5
      Simon Kelley 提交于
      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: NSimon Kelley <simon@thekelleys.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bd89efc5
    • M
    • K
      [TG3]: ethtool always report port is TP. · ef348144
      Karsten Keil 提交于
      Even with fiber cards ethtool reports that the connected port is TP,
      the patch fix this.
      Signed-off-by: NKarsten Keil <kkeil@suse.de>
      Acked-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ef348144
    • D
      [SPARC]: Handle UNWIND_INFO properly. · 06a1be16
      David S. Miller 提交于
      For sparc32 we need R_SPARC_UA32 relocation support, for
      sparc64 we need the handle R_SPARC_DISP32 relocations.
      
      Based upon reports and initial patch by Martin Habets.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      06a1be16
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 · be1fd94f
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6:
        [PATCH] scx200_acb: Fix for the CS5535 errata
        [PATCH] scx200_acb: Fix resource name use after free
        [PATCH] scx200_acb: Fix return on init error
      be1fd94f
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 0d38edda
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        [PATCH] USB: fix omninet driver bug
        [PATCH] USB: add ark3116 usb to serial driver
        [PATCH] usbserial: Fixes leak in serial_open() error path.
        [PATCH] usbserial: Fixes use-after-free in serial_open().
        [PATCH] USB: Emagic USB firmware loading fixes
        [PATCH] USB: add an IBM USB keyboard to the HID_QUIRK_NOGET blacklist
        [PATCH] USB: Add Sieraa Wireless 580 evdo card to airprime.c
        [PATCH] USB: ftdi_sio: add device id for ACT Solutions HomePro ZWave interface
        [PATCH] USB: ftdi_sio: Add support for HCG HF Dual ISO RFID Reader
        [PATCH] USB: ub oops in block_uevent
        [PATCH] USB: usbcore: don't check the device's power source
        [PATCH] USB: fix OHCI PM regression
        [PATCH] USB: pegasus fixes (logstorm, suspend)
        [PATCH] USBATM: fix modinfo output
        [PATCH] USBATM: change the default speedtouch iso altsetting
        [PATCH] USB: fix bug in ohci-hcd.c ohci_restart()
      0d38edda
    • L
      Revert "[BLOCK] Fix oops on removal of SD/MMC card" · 1a2acc9e
      Linus Torvalds 提交于
      This reverts commit 56cf6504.
      
      Both Erik Mouw and Andrew Vasquez independently pinpointed this commit
      as causing problems, where the slab cache for a driver is never released
      (most obviously causing problems when immediately re-loading that
      driver, resulting in a "kmem_cache_create: duplicate cache <xyz>"
      message, but it can also cause other trouble).
      
      James Bottomley dug into it, and reports:
      
        "OK, here's the scoop.  The problem patch adds a get of driverfs_dev in
         add_disk(), but doesn't put it again until disk_release() (which occurs
         on final put_disk() of the gendisk).
      
         However, in SCSI, the driverfs_dev is the sdev_gendev.  That means
         there's a reference held on sdev_gendev  until final disk put.
         Unfortunately, we use the driver model driver_remove to trigger
         del_gendisk (which removes the gendisk from visibility and decrements
         the refcount), so we've introduced an unbreakable deadlock in the
         reference counting with this.
      
         I suggest simply reversing this patch at the moment.  If Russell and
         Jens can tell me what they're trying to do I'll see if there's another
         way to do it."
      
      so hereby the patch gets reverted, waiting for a better fix.
      
      Cc: Jens Axboe <axboe@suse.de>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: James Bottomley <James.Bottomley@SteelEye.com>
      Cc: Erik Mouw <erik@harddisk-recovery.com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1a2acc9e
    • G
      [PATCH] USB: fix omninet driver bug · df3fccb1
      Greg Kroah-Hartman 提交于
      I introduced this way back in 2.6.13 when adding the port lock logic.
      This device talks out through different "ports" all at the same time, so
      the lock logic was wrong, preventing any data from ever being sent
      properly.
      
      Thanks a lot to Bernhard Reiter <bernhard@intevation.de> for being
      patient and helping with debugging this.
      
      Cc: Bernhard Reiter <bernhard@intevation.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      df3fccb1
    • G
      [PATCH] USB: add ark3116 usb to serial driver · 815ddc99
      Greg Kroah-Hartman 提交于
      Based on Simon's original driver, with some minor code cleanups and
      tidying by me.
      
      Cc: Simon Schulz <simon@auctionant.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      815ddc99
    • L
      [PATCH] usbserial: Fixes leak in serial_open() error path. · 71a84163
      Luiz Fernando Capitulino 提交于
      If serial_open() fails at the port assignment or mutex_lock_interruptible()
      is interrupted, the 'serial' object will never be freed.
      
      We should call kref_put() when those errors happens.
      Signed-off-by: NLuiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      71a84163
    • L
      [PATCH] usbserial: Fixes use-after-free in serial_open(). · 704936a2
      Luiz Fernando Capitulino 提交于
      If the device is disconnected while serial_open() is executing and
      either try_module_get() or the device specific open function fails, the
      kref_put() call in the 'bailout_kref_put' label will free the memory
      pointed out by 'port'.
      
      The subsequent dereferences in the 'bailout_kref_put' label will be
      invalid.
      
      The fix is just to assure kref_put() is called after any 'port' usage.
      Signed-off-by: NLuiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      704936a2
    • M
      [PATCH] USB: Emagic USB firmware loading fixes · 16c23f7d
      Monty 提交于
      It's become apparent as machines get faster that the emagic kernel firmware
      loaders (based on the ezusb loader) have a reset race.  a 400MHz TiBook
      never tripped it, but a 2GHz Pentium M seems to hit it about 30% of the
      time.  The bug is seen as a hung USB box and the kernel error:
      
      drivers/usb/misc/emi62.c: emi62_load_firmware - error loading firmware:
      error = -110
      
      The patch below inserts a delay after deasserting reset to allow the box to
      settle before a new command is issued.  This affects only device startup.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      16c23f7d
    • O
      [PATCH] USB: add an IBM USB keyboard to the HID_QUIRK_NOGET blacklist · 332bbf61
      Olaf Hering 提交于
      After recent changes, the USB keyboard as shipped with IBM pSeries systems
      does not work anymore, unless the keyboard is replugged after reboot.
      Adding this model to the blacklist fixes it.
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      332bbf61
    • K
      [PATCH] USB: Add Sieraa Wireless 580 evdo card to airprime.c · b68f7de0
      Ken Brush 提交于
      This adds the Sierra Wireless card to airprime.c.
      
      I tested this on my laptop.
      Signed-off-by: NKen Brush <ken@cgi101.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b68f7de0
  2. 12 5月, 2006 8 次提交
    • L
      Linux v2.6.17-rc4 · d8c3291c
      Linus Torvalds 提交于
      d8c3291c
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · d649dafd
      Linus Torvalds 提交于
      * 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
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-serial · 2bf9d6d0
      Linus Torvalds 提交于
      * 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
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 6572b206
      Linus Torvalds 提交于
      * 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
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · f7a014af
      Linus Torvalds 提交于
      * 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
    • J
      [BLOCK] limit request_fn recursion · dac07ec1
      Jens Axboe 提交于
      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: NJens Axboe <axboe@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      dac07ec1
    • P
      [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels() · 210525d6
      Patrick McHardy 提交于
      When deleting the last child the level of a class should drop to zero.
      
      Noticed by Andreas Mueller <andreas@stapelspeicher.org>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      210525d6
    • L
      ptrace_attach: fix possible deadlock schenario with irqs · f358166a
      Linus Torvalds 提交于
      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: NLinus Torvalds <torvalds@osdl.org>
      f358166a
  3. 11 5月, 2006 11 次提交
  4. 10 5月, 2006 3 次提交
    • M
      [SCSI] mptfc: race between mptfc_register_dev and mptfc_target_alloc · 6dd727da
      mdr@sgi.com 提交于
      A race condition exists in mptfc between the thread registering a device
      with the fc transport and the scan work generated by the transport.
      This race existed prior to the application of the mptfc bug fix patch.
      
      mptfc_register_dev() calls fc_remote_port_add() with the FC_RPORT_ROLE_TARGET
      bit set in the rport ids passed to the function.  Having this bit set causes
      fc_remote_port_add() to schedule a scan of the device.
      
      This scan can execute before mptfc_register_dev() can fill in the dd_data
      in the rport structure.  When this happens, mptfc_target_alloc() will fail
      because dd_data is null.
      
      Attached is a patch which fixes the problem.  The patch changes the rport ids
      passed to fc_remote_port_add() to not have the TARGET bit set.  This prevents
      the scan from being scheduled.  After mptfc_register_dev() fills in the rport
      dd_data field, fc_remote_port_rolechg() is called, changing the role of the
      rport to TARGET.  Thus, the scan is scheduled after dd_data is filled
      in which prevents the failure in mptfc_target_alloc().
      Signed-off-by: NMichael Reed <mdr@sgi.com>
      Signed-off-by: NEric Moore <Eric.Moore@lsil.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      6dd727da
    • J
      [TG3]: Fix possible NULL deref in tg3_run_loopback(). · a50bb7b9
      Jesper Juhl 提交于
      tg3_run_loopback doesn't check that dev_alloc_skb() returns anything
      useful.
      
      Even if dev_alloc_skb() fails to return an skb to us we'll happily go
      on and assume it did, so we risk dereferencing a NULL pointer.  Much
      better to fail gracefully by returning -ENOMEM than crashing here.
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a50bb7b9
    • R
      IPoIB: Free child interfaces properly · 5941d079
      Roland Dreier 提交于
      When deleting a child interface with a non-default P_Key via
      /sys/class/net/ibX/delete_child, the interface must be freed with
      free_netdev() (rather than kfree() on the private data).
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      5941d079