03 Jan, 2009

40 commits

  • Impact: cleanup, reduce kernel size a bit

    The current kernel build warns:

    WARNING: vmlinux.o(.text+0x11458): Section mismatch in reference from the function swiotlb_alloc_boot() to the function .init.text:__alloc_bootmem_low()
    The function swiotlb_alloc_boot() references
    the function __init __alloc_bootmem_low().
    This is often because swiotlb_alloc_boot lacks a __init
    annotation or the annotation of __alloc_bootmem_low is wrong.

    WARNING: vmlinux.o(.text+0x1011f2): Section mismatch in reference from the function swiotlb_late_init_with_default_size() to the function .init.text:__alloc_bootmem_low()
    The function swiotlb_late_init_with_default_size() references
    the function __init __alloc_bootmem_low().
    This is often because swiotlb_late_init_with_default_size lacks a __init
    annotation or the annotation of __alloc_bootmem_low is wrong.

    and indeed the functions calling __alloc_bootmem_low() can be marked
    __init as well.

    Signed-off-by: Roland Dreier
    Signed-off-by: Ingo Molnar

    Roland Dreier
     
  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds
     
  • * 'kvm-updates/2.6.29' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (140 commits)
    KVM: MMU: handle large host sptes on invlpg/resync
    KVM: Add locking to virtual i8259 interrupt controller
    KVM: MMU: Don't treat a global pte as such if cr4.pge is cleared
    MAINTAINERS: Maintainership changes for kvm/ia64
    KVM: ia64: Fix kvm_arch_vcpu_ioctl_[gs]et_regs()
    KVM: x86: Rework user space NMI injection as KVM_CAP_USER_NMI
    KVM: VMX: Fix pending NMI-vs.-IRQ race for user space irqchip
    KVM: fix handling of ACK from shared guest IRQ
    KVM: MMU: check for present pdptr shadow page in walk_shadow
    KVM: Consolidate userspace memory capability reporting into common code
    KVM: Advertise the bug in memory region destruction as fixed
    KVM: use cpumask_var_t for cpus_hardware_enabled
    KVM: use modern cpumask primitives, no cpumask_t on stack
    KVM: Extract core of kvm_flush_remote_tlbs/kvm_reload_remote_mmus
    KVM: set owner of cpu and vm file operations
    anon_inodes: use fops->owner for module refcount
    x86: KVM guest: kvm_get_tsc_khz: return khz, not lpj
    KVM: MMU: prepopulate the shadow on invlpg
    KVM: MMU: skip global pgtables on sync due to cr3 switch
    KVM: MMU: collapse remote TLB flushes on root sync
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (32 commits)
    ide-atapi: start dma in a drive-specific way
    ide-atapi: put the rest of non-ide-cd code into the else-clause of ide_transfer_pc
    ide-atapi: remove timeout arg to ide_issue_pc
    ide-cd: remove handler wrappers
    ide-cd: remove xferlen arg to cdrom_start_packet_command
    ide-atapi: split drive-specific functionality in ide_issue_pc
    ide-atapi: assign expiry and timeout based on device type
    ide-atapi: compute cmd_len based on device type in ide_transfer_pc
    ide: remove the last ide-scsi remnants
    ide-atapi: remove ide-scsi remnants from ide_pc_intr()
    ide-atapi: remove ide-scsi remnants from ide_transfer_pc()
    ide-atapi: remove ide-scsi remnants from ide_issue_pc
    ide-cd: move cdrom_timer_expiry to ide-atapi.c
    ide-atapi: teach ide atapi about drive->waiting_for_dma
    ide-atapi: accomodate transfer length calculation for ide-cd
    ide-atapi: setup dma for ide-cd
    ide-atapi: combine drive-specific assignments
    ide-atapi: add a dev_is_idecd-inline
    remove ide-scsi
    ide-floppy: allocate only toplevel packet commands
    ...

    Linus Torvalds
     
  • * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb: (31 commits)
    uwb: remove beacon cache entry after calling uwb_notify()
    uwb: remove unused include/linux/uwb/debug.h
    uwb: use print_hex_dump()
    uwb: use dev_dbg() for debug messages
    uwb: fix memory leak in uwb_rc_notif()
    wusb: fix oops when terminating a non-existant reservation
    uwb: fix oops when terminating an already terminated reservation
    uwb: improved MAS allocator and reservation conflict handling
    wusb: add debug files for ASL, PZL and DI to the whci-hcd driver
    uwb: fix oops in debug PAL's reservation callback
    uwb: clean up whci_wait_for() timeout error message
    wusb: whci-hcd shouldn't do ASL/PZL updates while channel is inactive
    uwb: remove unused beacon group join/leave events
    wlp: start/stop radio on network interface up/down
    uwb: add basic radio manager
    uwb: add pal parameter to new reservation callback
    uwb: fix races between events and neh timers
    uwb: don't unbind the radio controller driver when resetting
    uwb: per-radio controller event thread and beacon cache
    uwb: add commands to add/remove IEs to the debug interface
    ...

    Linus Torvalds
     
  • Ben Herrenschmidt is taking over as the primary powerpc architecture
    maintainer. I'll still be around as his backup/deputy.

    Signed-off-by: Paul Mackerras
    Acked-by: Grant Likely
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • * i8k-updates:
    i8k: Add Dell Vostro systems
    i8k: Enable i8k on Dell Precision Systems

    Linus Torvalds
     
  • This trivial patch adds support for i8k on the new Dell Vostro models.
    I tested it on my Vostro 1400, and it works. It does print a warning
    when loading the module:

    i8k: unable to get SMM BIOS version

    But I couldn't figure out how to fix that. The module seems to work fine,
    anyway...

    Signed-off-by: Federico Heinz
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Federico Heinz
     
  • Patch to enable i8k on Dell Precisions.

    Signed-off-by: Andy Spencer
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andy Spencer
     
  • Signed-off-by: Ingo Brueckl
    Signed-off-by: Linus Torvalds

    Ingo Brueckl
     
  • * tty-updates: (75 commits)
    serial_8250: support for Sealevel Systems Model 7803 COMM+8
    hso maintainers update patch
    hso modem detect fix patch against Alan Cox'es tty tree
    tty: Fix an ircomm warning and note another bug
    drivers/char/cyclades.c: cy_pci_probe: fix error path
    Serial: UART driver changes for Cavium OCTEON.
    Serial: Allow port type to be specified when calling serial8250_register_port.
    8250: Serial driver changes to support future Cavium OCTEON serial patches.
    8250: Don't clobber spinlocks.
    fix for tty-serial-move-port
    tty: We want the port object to be persistent
    __FUNCTION__ is gcc-specific, use __func__
    serial: RS485 ioctl structure uses __u32 include linux/types.h
    tty: Drop the lock_kernel in the private ioctl hook
    synclink_cs: Convert to tty_port
    tty: use port methods for the rocket driver
    tty: kref the rocket driver
    tty: make rocketport use standard port->flags
    tty: Redo the rocket driver locking
    tty: Make epca use the port helpers
    ...

    Linus Torvalds
     
  • Add support for Sealevel Systems Model 7803 COMM+8

    Signed-off-by: Flavio Leitner
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Flavio Leitner
     
  • Added D.J. Barrow as maintainer of hso driver.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Fixed incorrect check for the modem port, this prevents
    crashes caused by issueing a tiocmget_submit_urb
    on endpoints which don't exist for non modem devices.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Roel Kluin noted that line is unsigned so one test is unneccessary. Also
    add a warning for another flaw I noticed while making this change.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We forgot to release resources in one case.

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12137

    Reported-by: Florian Lohoff
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Cavium UART implementation is not covered by existing uart_configS.
    Define a new uart_config (PORT_OCTEON) which is specified by OCTEON
    platform device registration code.

    Signed-off-by: Tomaso Paoletti
    Signed-off-by: David Daney
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • Add flag value UPF_FIXED_TYPE which specifies that the UART type is
    known and should not be probed. For this case the UARTs properties
    are just copied out of the uart_config entry.

    This allows us to keep SOC specific 8250 probe code out of 8250.c. In
    this case we know the serial hardware will not be changing as it is on
    the same silicon as the CPU, and we can specify it with certainty in
    the board/cpu setup code.

    The alternative is to load up 8250.c with a bunch of OCTEON specific
    special cases in the probing code.

    Signed-off-by: David Daney
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • In order to use Cavium OCTEON specific serial i/o drivers, we first
    patch the 8250 driver to use replaceable I/O functions. Compatible
    I/O functions are added for existing iotypeS.

    An added benefit of this change is that it makes it easy to factor
    some of the existing special cases out to board/SOC specific support
    code.

    The alternative is to load up 8250.c with a bunch of OCTEON specific
    iotype code and bug work-arounds.

    Signed-off-by: David Daney
    Signed-off-by: Tomaso Paoletti
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • In serial8250_isa_init_ports(), the port's lock is initialized. We
    should not overwrite it. In early_serial_setup(), only copy in the
    fields we need. Since the early console code only uses a subset of
    the fields, these are sufficient.

    Signed-off-by: David Daney
    Signed-off-by: Tomaso Paoletti
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • Hi Alan

    next-20081204 crashes with the following message:

    BUG: unable to handle kernel paging request at ffff88007d320248
    IP: [] uart_remove_one_port+0xef/0x111
    kfree(info);
    393: 49 8d 7d 10 lea 0x10(%r13),%rdi
    397: e8 00 00 00 00 callq 39c

    Signed-off-by: Alexander Beregalov
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alexander Beregalov
     
  • Move the tty_port and uart_info bits around a little. By embedding the uart_info
    into the uart_port we get rid of lots of corner case testing and also get the
    ability to go portstateinfo which is a bit more elegant than the current
    data structures.

    Downsides - we allocate a tiny bit more memory for unused ports, upside we've
    removed as much code as it saved for most users..

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • In the commit below a new struct serial_rs485 was introduced for a new
    ioctl:

    commit c26c56c0f40e200e61d1390629c806f6adaffbcc
    Author: Alan Cox
    Date: Mon Oct 13 10:37:48 2008 +0100

    tty: Cris has a nice RS485 ioctl so we should steal it

    This structure uses the __u32 types for some of its members, which leads
    to the following compile error:

    $ cc -I.../include -c X.c
    In file included from X.c:2: .../include/linux/serial.h:185:
    error: expected specifier-qualifier-list before ‘__u32’
    $

    It seems that these types are appropriate for this structure as it is
    to be exposed to userspace. These types are available via linux/types.h
    so move the include of that outside the __KERNEL__ section.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • We don't need the BKL here any more so it can go. In a couple of spots the
    driver requirements are not clear so push the lock down into the driver.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Use the tty port operations, add refcounting, and refactor a bit to make the
    refcounting work cleanly.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Now we have our ducks in order we can begin switching to the port
    operations

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We will need this kref fitted to make full use of the port operations.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We need to this ready for using the standard helpers

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Bring this driver into the port locking model

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Now the locking is straight and the port kref usage is straight we can
    replace lots of chunks of code with the standard port helpers

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Bring epca into line with the port locking.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Makes TIOCM ioctls for Data Carrier Detect & related functions
    work like /drivers/serial/serial-core.c potentially needed
    for pppd & similar user programs.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Init the tty structure once
    Don't set ->low_latency twice in a row
    Don't force bits we should be leaving to the user
    Don't allocate termios arrays as these are in fact allocated by the tty layer
    for you and just overwrite the ones allocated in the driver

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Checking tty == NULL doesn't help us unless we have a clear semantic for
    the locking of the tty object in the driver. Use the tty kref objects so that
    we can take references to the tty in the USB event handling paths.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Update the nozomi driver to use krefs

    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • disc_data and driver_data are void *

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The write wakeup is done anyway for the poll while DO_WRITE_WAKUP is
    cleared, set and managed by the ldisc layer and is no business of the pty
    code.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The N_TTY ldisc layer does not send SIGIO POLL_OUTs correctly when output is
    possible due to flawed handling of the TTY_DO_WRITE_WAKEUP bit. It will
    either send no SIGIOs at all or on every tty wakeup.

    The fix is to set the bit when the tty driver write would block and test
    and clear it on write wakeup.

    [Merged with existing N_TTY patches and a small buglet fixed -- Alan]

    Signed-off-by: Thomas Pfaff
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Thomas Pfaff