Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 21 Jul 2008 00:43:29 +0000 (17:43 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 21 Jul 2008 00:43:29 +0000 (17:43 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits)
  iucv: Fix bad merging.
  net_sched: Add size table for qdiscs
  net_sched: Add accessor function for packet length for qdiscs
  net_sched: Add qdisc_enqueue wrapper
  highmem: Export totalhigh_pages.
  ipv6 mcast: Omit redundant address family checks in ip6_mc_source().
  net: Use standard structures for generic socket address structures.
  ipv6 netns: Make several "global" sysctl variables namespace aware.
  netns: Use net_eq() to compare net-namespaces for optimization.
  ipv6: remove unused macros from net/ipv6.h
  ipv6: remove unused parameter from ip6_ra_control
  tcp: fix kernel panic with listening_get_next
  tcp: Remove redundant checks when setting eff_sacks
  tcp: options clean up
  tcp: Fix MD5 signatures for non-linear skbs
  sctp: Update sctp global memory limit allocations.
  sctp: remove unnecessary byteshifting, calculate directly in big-endian
  sctp: Allow only 1 listening socket with SO_REUSEADDR
  sctp: Do not leak memory on multiple listen() calls
  sctp: Support ipv6only AF_INET6 sockets.
  ...

1  2 
drivers/char/pcmcia/synclink_cs.c
drivers/char/synclink.c
drivers/char/synclink_gt.c
drivers/char/synclinkmp.c
drivers/net/Kconfig
drivers/net/hamradio/6pack.c
drivers/net/hamradio/mkiss.c
drivers/net/wan/pc300_tty.c
net/bluetooth/rfcomm/tty.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0a387f2eb7a96aa0b83014175153482d3a80ed8d,5d163571d3f7ce494fdc578914f3111f15c5403f..d3340dd52bcffd778f6604ed716cebf8f1577a42
@@@ -617,9 -643,40 +643,33 @@@ static void rfcomm_tty_wakeup(unsigned 
                return;
  
        BT_DBG("dev %p tty %p", dev, tty);
 -
 -      if (test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags) && tty->ldisc.write_wakeup)
 -              (tty->ldisc.write_wakeup)(tty);
 -
 -      wake_up_interruptible(&tty->write_wait);
 -#ifdef SERIAL_HAVE_POLL_WAIT
 -      wake_up_interruptible(&tty->poll_wait);
 -#endif
 +      tty_wakeup(tty);
  }
  
+ static void rfcomm_tty_copy_pending(struct rfcomm_dev *dev)
+ {
+       struct tty_struct *tty = dev->tty;
+       struct sk_buff *skb;
+       int inserted = 0;
+       if (!tty)
+               return;
+       BT_DBG("dev %p tty %p", dev, tty);
+       rfcomm_dlc_lock(dev->dlc);
+       while ((skb = skb_dequeue(&dev->pending))) {
+               inserted += tty_insert_flip_string(tty, skb->data, skb->len);
+               kfree_skb(skb);
+       }
+       rfcomm_dlc_unlock(dev->dlc);
+       if (inserted > 0)
+               tty_flip_buffer_push(tty);
+ }
  static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
  {
        DECLARE_WAITQUEUE(wait, current);