Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Fri, 22 Sep 2006 19:48:03 +0000 (12:48 -0700)]
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (114 commits)
  [POWERPC] Fix ohare IDE irq workaround on old powermacs
  [POWERPC] EEH: Power4 systems sometimes need multiple resets.
  [POWERPC] Include <asm/mmu.h> in arch/powerpc/sysdev/fsl_soc.h for phys_addr_t.
  [POWERPC] Demacrofy arch/powerpc/platforms/maple/pci.c
  [POWERPC] Maple U3 HT - reject inappropriate config space access
  [POWERPC] Fix IPIC pending register assignments
  [POWERPC] powerpc: fix building gdb against asm/ptrace.h
  [POWERPC] Remove DISCONTIGMEM cruft from page.h
  [POWERPC] Merge iSeries i/o operations with the rest
  [POWERPC] 40x: Fix debug status register defines
  [POWERPC] Fix compile error in sbc8560
  [POWERPC] EEH: support MMIO enable recovery step
  [POWERPC] EEH: enable MMIO/DMA on frozen slot
  [POWERPC] EEH: code comment cleanup
  [POWERPC] EEH: balance pcidev_get/put calls
  [POWERPC] PPC: Fix xmon stack frame address in backtrace
  [POWERPC] Add AT_PLATFORM value for Xilinx Virtex-4 FX
  [POWERPC] Start arch/powerpc/boot code reorganization
  [POWERPC] Define of_read_ulong helper
  [POWERPC] iseries: eliminate a couple of warnings
  ...

1  2 
MAINTAINERS
drivers/char/hvc_console.c

diff --combined MAINTAINERS
@@@ -416,7 -416,7 +416,7 @@@ S: Supporte
  ATM
  P:    Chas Williams
  M:    chas@cmf.nrl.navy.mil
 -L:    linux-atm-general@lists.sourceforge.net
 +L:    linux-atm-general@lists.sourceforge.net (subscribers-only)
  W:    http://linux-atm.sourceforge.net
  S:    Maintained
  
@@@ -1783,6 -1783,13 +1783,13 @@@ W:     http://www.penguinppc.org
  L:     linuxppc-embedded@ozlabs.org
  S:     Maintained
  
+ LINUX FOR POWERPC PA SEMI PWRFICIENT
+ P:    Olof Johansson
+ M:    olof@lixom.net
+ W:    http://www.pasemi.com/
+ L:    linuxppc-dev@ozlabs.org
+ S:    Supported
  LLC (802.2)
  P:    Arnaldo Carvalho de Melo
  M:    acme@conectiva.com.br
@@@ -2810,14 -2817,6 +2817,14 @@@ M:    hadi@cyberus.c
  L:    netdev@vger.kernel.org
  S:    Maintained
  
 +TCP LOW PRIORITY MODULE
 +P:    Wong Hoi Sing, Edison
 +M:    hswong3i@gmail.com
 +P:    Hung Hing Lun, Mike
 +M:    hlhung3i@gmail.com
 +W:    http://tcp-lp-mod.sourceforge.net/
 +S:    Maintained
 +
  TI OMAP RANDOM NUMBER GENERATOR SUPPORT
  P:    Deepak Saxena
  M:    dsaxena@plexity.net
@@@ -80,7 -80,8 +80,8 @@@ struct hvc_struct 
        struct tty_struct *tty;
        unsigned int count;
        int do_wakeup;
-       char outbuf[N_OUTBUF] __ALIGNED__;
+       char *outbuf;
+       int outbuf_size;
        int n_outbuf;
        uint32_t vtermno;
        struct hv_ops *ops;
@@@ -319,10 -320,8 +320,8 @@@ static int hvc_open(struct tty_struct *
        struct kobject *kobjp;
  
        /* Auto increments kobject reference if found. */
-       if (!(hp = hvc_get_by_index(tty->index))) {
-               printk(KERN_WARNING "hvc_console: tty open failed, no vty associated with tty.\n");
+       if (!(hp = hvc_get_by_index(tty->index)))
                return -ENODEV;
-       }
  
        spin_lock_irqsave(&hp->lock, flags);
        /* Check and then increment for fast path open. */
@@@ -505,7 -504,7 +504,7 @@@ static int hvc_write(struct tty_struct 
        if (hp->n_outbuf > 0)
                hvc_push(hp);
  
-       while (count > 0 && (rsize = N_OUTBUF - hp->n_outbuf) > 0) {
+       while (count > 0 && (rsize = hp->outbuf_size - hp->n_outbuf) > 0) {
                if (rsize > count)
                        rsize = count;
                memcpy(hp->outbuf + hp->n_outbuf, buf, rsize);
@@@ -538,7 -537,7 +537,7 @@@ static int hvc_write_room(struct tty_st
        if (!hp)
                return -1;
  
-       return N_OUTBUF - hp->n_outbuf;
+       return hp->outbuf_size - hp->n_outbuf;
  }
  
  static int hvc_chars_in_buffer(struct tty_struct *tty)
@@@ -668,7 -667,6 +667,7 @@@ int khvcd(void *unused
        do {
                poll_mask = 0;
                hvc_kicked = 0;
 +              try_to_freeze();
                wmb();
                if (cpus_empty(cpus_in_xmon)) {
                        spin_lock(&hvc_structs_lock);
@@@ -729,12 -727,13 +728,13 @@@ static struct kobj_type hvc_kobj_type 
  };
  
  struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq,
-                                       struct hv_ops *ops)
+                                       struct hv_ops *ops, int outbuf_size)
  {
        struct hvc_struct *hp;
        int i;
  
-       hp = kmalloc(sizeof(*hp), GFP_KERNEL);
+       hp = kmalloc(ALIGN(sizeof(*hp), sizeof(long)) + outbuf_size,
+                       GFP_KERNEL);
        if (!hp)
                return ERR_PTR(-ENOMEM);
  
        hp->vtermno = vtermno;
        hp->irq = irq;
        hp->ops = ops;
+       hp->outbuf_size = outbuf_size;
+       hp->outbuf = &((char *)hp)[ALIGN(sizeof(*hp), sizeof(long))];
  
        kobject_init(&hp->kobj);
        hp->kobj.ktype = &hvc_kobj_type;